From 3219180e602c89db2ab68fcbd0f090e0af7a3f76 Mon Sep 17 00:00:00 2001 From: Tyler Wilding Date: Fri, 9 Jul 2021 21:44:48 -0400 Subject: [PATCH 01/63] decomp: finish `air` (#683) --- decompiler/config/all-types.gc | 80 +++---- .../jak1_ntsc_black_label/label_types.jsonc | 5 + .../stack_structures.jsonc | 14 +- goal_src/levels/beach/air.gc | 207 +++++++++++++++++ .../reference/engine/geometry/geometry_REF.gc | 5 - .../reference/levels/beach/air_REF.gc | 214 ++++++++++++++++++ 6 files changed, 474 insertions(+), 51 deletions(-) create mode 100644 test/decompiler/reference/levels/beach/air_REF.gc diff --git a/decompiler/config/all-types.gc b/decompiler/config/all-types.gc index c872859908..43a13e8642 100644 --- a/decompiler/config/all-types.gc +++ b/decompiler/config/all-types.gc @@ -23329,9 +23329,9 @@ ;; - Functions -(define-extern point-in-air? function) -(define-extern points-in-air? function) -(define-extern add-debug-air-box function) +(define-extern point-in-air? (function vector (inline-array air-box) int symbol)) ;; Not used +(define-extern points-in-air? (function vector vector (inline-array air-box) int symbol)) +(define-extern add-debug-air-box (function bucket-id air-box symbol)) ;; ---------------------- @@ -24349,47 +24349,37 @@ ;; - Types -; (deftype seagull (process-drawable) -; ((index int32 :offset-assert 176) -; (flock uint32 :offset-assert 180) -; (heading float :offset-assert 184) -; (tilt float :offset-assert 188) -; (max-tilt float :offset-assert 192) -; (angletan float :offset-assert 196) -; (target-dist float :offset-assert 200) -; (scared int32 :offset-assert 204) -; (temp-heading float :offset-assert 208) -; (temp-heading-time int32 :offset-assert 212) -; (part-time uint64 :offset-assert 216) -; (thrust float :offset-assert 224) -; (teleport basic :offset-assert 228) -; ) -; :method-count-assert 28 -; :size-assert #xe8 -; :flag-assert #x1c008000e8 -; ;; inherited inspect of process-drawable -; (:methods -; (dummy-9 () none 9) -; (dummy-10 () none 10) -; (dummy-11 () none 11) -; (dummy-12 () none 12) -; (dummy-13 () none 13) -; (dummy-14 () none 14) -; (dummy-15 () none 15) -; (dummy-16 () none 16) -; (dummy-17 () none 17) -; (dummy-18 () none 18) -; (dummy-19 () none 19) -; (dummy-20 () none 20) -; (dummy-21 () none 21) -; (dummy-22 () none 22) -; (dummy-23 () none 23) -; (dummy-24 () none 24) -; (dummy-25 () none 25) -; (dummy-26 () none 26) -; (dummy-27 () none 27) -; ) -; ) +(deftype seagull (process-drawable) + ((index int32 :offset-assert 176) + (flock uint32 :offset-assert 180) + (heading float :offset-assert 184) + (tilt float :offset-assert 188) + (max-tilt float :offset-assert 192) + (angletan float :offset-assert 196) + (target-dist float :offset-assert 200) + (scared int32 :offset-assert 204) + (temp-heading float :offset-assert 208) + (temp-heading-time int32 :offset-assert 212) + (part-time uint64 :offset-assert 216) + (thrust float :offset-assert 224) + (teleport basic :offset-assert 228) + ) + :method-count-assert 28 + :heap-base #x80 + :size-assert #xe8 + :flag-assert #x1c008000e8 + ;; inherited inspect of process-drawable + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + (dummy-24 () none 24) + (dummy-25 () none 25) + (dummy-26 () none 26) + (dummy-27 (_type_) none 27) + ) + ) ; (deftype seagullflock (process) ; ((path basic :offset-assert 112) @@ -24442,7 +24432,7 @@ ;;(define-extern seagull-soaring object) ;; unknown type ;;(define-extern seagull-flying object) ;; unknown type ;;(define-extern seagull-landing object) ;; unknown type -;;(define-extern *seagull-boxes* object) ;; unknown type +(define-extern *seagull-boxes* (inline-array air-box)) ;; unknown type ;;(define-extern seagull-takeoff object) ;; unknown type diff --git a/decompiler/config/jak1_ntsc_black_label/label_types.jsonc b/decompiler/config/jak1_ntsc_black_label/label_types.jsonc index 856e044138..7bc8a2b868 100644 --- a/decompiler/config/jak1_ntsc_black_label/label_types.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/label_types.jsonc @@ -1151,6 +1151,11 @@ ["L100", "(array level-hint-control)", true] ], + "air": [ + ["L38", "uint64", true], + ["L39", "uint64", true] + ], + // please do not add things after this entry! git is dumb. "object-file-that-doesnt-actually-exist-and-i-just-put-this-here-to-prevent-merge-conflicts-with-this-file": [] } diff --git a/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc b/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc index 2b59a2f189..926aed8c1d 100644 --- a/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc @@ -509,5 +509,17 @@ "curve-closest-point": [ [16, "vector"], [32, "vector"] - ] + ], + + "(method 27 seagull)": [ + [16, "vector"], + [32, "vector"] + ], + + "add-debug-air-box": [ + [16, "vector"], + [32, "vector"] + ], + + "placeholder-do-not-add-below!": [] } diff --git a/goal_src/levels/beach/air.gc b/goal_src/levels/beach/air.gc index d30c6d4679..88b56ca722 100644 --- a/goal_src/levels/beach/air.gc +++ b/goal_src/levels/beach/air.gc @@ -5,3 +5,210 @@ ;; name in dgo: air ;; dgos: BEA, L1 +;; definition for function point-in-air? +(defun point-in-air? ((arg0 vector) (arg1 (inline-array air-box)) (arg2 int)) + (local-vars (t0-0 symbol)) + (dotimes (v1-0 arg2) + (let ((t1-0 arg0) + (a3-1 (-> arg1 v1-0)) + ) + (set! t0-0 (when (< (-> a3-1 height-level) (-> t1-0 y)) + (let ((f0-2 (- (-> t1-0 x) (-> a3-1 x-pos))) + (f2-1 (- (-> t1-0 z) (-> a3-1 z-pos))) + ) + (set! t0-0 #f) + (let + ((f1-5 + (+ + (* f0-2 (-> a3-1 cos-angle)) + (* f2-1 (-> a3-1 sin-angle)) + ) + ) + (f0-4 + (- + (* f2-1 (-> a3-1 cos-angle)) + (* f0-2 (-> a3-1 sin-angle)) + ) + ) + ) + (if + (and + (>= f1-5 0.0) + (>= f0-4 0.0) + (< f1-5 (-> a3-1 x-length)) + (< f0-4 (-> a3-1 z-length)) + ) + (set! t0-0 #t) + ) + ) + ) + t0-0 + ) + ) + ) + (if t0-0 + (return #t) + ) + ) + #f + ) + +;; definition for function points-in-air? +(defun + points-in-air? + ((arg0 vector) (arg1 vector) (arg2 (inline-array air-box)) (arg3 int)) + (local-vars (t1-4 symbol)) + (dotimes (v1-0 arg3) + (let* ((t0-1 (-> arg2 v1-0)) + (f0-0 (-> t0-1 height-level)) + ) + (when (and (< f0-0 (-> arg0 y)) (< f0-0 (-> arg1 y))) + (let ((f2-0 (- (-> arg0 x) (-> t0-1 x-pos))) + (f4-0 (- (-> arg0 z) (-> t0-1 z-pos))) + (f0-4 (- (-> arg1 x) (-> t0-1 x-pos))) + (f1-6 (- (-> arg1 z) (-> t0-1 z-pos))) + (t2-0 t0-1) + (t1-3 #f) + ) + (let ((f3-3 (+ (* f2-0 (-> t2-0 cos-angle)) (* f4-0 (-> t2-0 sin-angle)))) + (f2-2 (- (* f4-0 (-> t2-0 cos-angle)) (* f2-0 (-> t2-0 sin-angle)))) + ) + (if + (and + (>= f3-3 0.0) + (>= f2-2 0.0) + (< f3-3 (-> t2-0 x-length)) + (< f2-2 (-> t2-0 z-length)) + ) + (set! t1-3 #t) + ) + ) + (set! t1-4 (and t1-3 (begin + (set! t1-4 #f) + (let + ((f2-5 + (+ + (* f0-4 (-> t0-1 cos-angle)) + (* f1-6 (-> t0-1 sin-angle)) + ) + ) + (f0-6 + (- + (* f1-6 (-> t0-1 cos-angle)) + (* f0-4 (-> t0-1 sin-angle)) + ) + ) + ) + (if + (and + (>= f2-5 0.0) + (>= f0-6 0.0) + (< f2-5 (-> t0-1 x-length)) + (< f0-6 (-> t0-1 z-length)) + ) + (set! t1-4 #t) + ) + ) + t1-4 + ) + ) + ) + ) + (if t1-4 + (return #t) + ) + ) + ) + ) + #f + ) + +;; definition (debug) for function add-debug-air-box +;; Used lq/sq +(defun-debug add-debug-air-box ((arg0 bucket-id) (arg1 air-box)) + (local-vars (a0-1 symbol)) + (let ((a1-1 (camera-pos)) + (s5-0 (new 'stack-no-clear 'vector)) + (s4-0 (new 'stack-no-clear 'vector)) + ) + (-> arg1 cos-angle) + (-> arg1 sin-angle) + (let ((s2-0 (the-as uint #x800000ff))) + (let ((v1-0 arg1)) + (set! a0-1 (when (< (-> v1-0 height-level) (-> a1-1 y)) + (let ((f0-4 (- (-> a1-1 x) (-> v1-0 x-pos))) + (f2-1 (- (-> a1-1 z) (-> v1-0 z-pos))) + ) + (set! a0-1 #f) + (let + ((f1-5 + (+ + (* f0-4 (-> v1-0 cos-angle)) + (* f2-1 (-> v1-0 sin-angle)) + ) + ) + (f0-6 + (- + (* f2-1 (-> v1-0 cos-angle)) + (* f0-4 (-> v1-0 sin-angle)) + ) + ) + ) + (if + (and + (>= f1-5 0.0) + (>= f0-6 0.0) + (< f1-5 (-> v1-0 x-length)) + (< f0-6 (-> v1-0 z-length)) + ) + (set! a0-1 #t) + ) + ) + ) + a0-1 + ) + ) + ) + (if a0-1 + (set! s2-0 (the-as uint #x8000ff00)) + ) + (set! (-> s5-0 y) (-> arg1 height-level)) + (set! (-> s4-0 y) (-> arg1 height-level)) + (set! (-> s5-0 w) 1.0) + (set! (-> s4-0 w) 1.0) + (set! (-> s5-0 x) (-> arg1 x-pos)) + (set! (-> s5-0 z) (-> arg1 z-pos)) + (set! + (-> s4-0 x) + (+ (-> arg1 x-pos) (* (-> arg1 cos-angle) (-> arg1 x-length))) + ) + (set! + (-> s4-0 z) + (+ (-> arg1 z-pos) (* (-> arg1 sin-angle) (-> arg1 x-length))) + ) + (add-debug-line #t arg0 s5-0 s4-0 (the-as rgba s2-0) #f (the-as rgba -1)) + (set! (-> s5-0 quad) (-> s4-0 quad)) + (set! + (-> s4-0 x) + (+ (-> s5-0 x) (* (- (-> arg1 sin-angle)) (-> arg1 z-length))) + ) + (set! + (-> s4-0 z) + (+ (-> s5-0 z) (* (-> arg1 cos-angle) (-> arg1 z-length))) + ) + (add-debug-line #t arg0 s5-0 s4-0 (the-as rgba s2-0) #f (the-as rgba -1)) + (set! + (-> s5-0 x) + (+ (-> arg1 x-pos) (* (- (-> arg1 sin-angle)) (-> arg1 z-length))) + ) + (set! + (-> s5-0 z) + (+ (-> arg1 z-pos) (* (-> arg1 cos-angle) (-> arg1 z-length))) + ) + (add-debug-line #t arg0 s5-0 s4-0 (the-as rgba s2-0) #f (the-as rgba -1)) + (set! (-> s4-0 x) (-> arg1 x-pos)) + (set! (-> s4-0 z) (-> arg1 z-pos)) + (add-debug-line #t arg0 s5-0 s4-0 (the-as rgba s2-0) #f (the-as rgba -1)) + ) + ) + ) diff --git a/test/decompiler/reference/engine/geometry/geometry_REF.gc b/test/decompiler/reference/engine/geometry/geometry_REF.gc index f9c065dd51..deed2f32f7 100644 --- a/test/decompiler/reference/engine/geometry/geometry_REF.gc +++ b/test/decompiler/reference/engine/geometry/geometry_REF.gc @@ -1411,7 +1411,6 @@ ;; WARN: Stack slot offset 48 signed mismatch ;; WARN: Stack slot offset 48 signed mismatch ;; WARN: Stack slot offset 48 signed mismatch -;; INFO: Return type mismatch float vs object. (defun curve-closest-point ((arg0 curve) (arg1 vector) (arg2 float) (arg3 float) (arg4 int) (arg5 float)) @@ -1482,7 +1481,3 @@ arg2 ) ) - - - - diff --git a/test/decompiler/reference/levels/beach/air_REF.gc b/test/decompiler/reference/levels/beach/air_REF.gc new file mode 100644 index 0000000000..8037459286 --- /dev/null +++ b/test/decompiler/reference/levels/beach/air_REF.gc @@ -0,0 +1,214 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for function point-in-air? +(defun point-in-air? ((arg0 vector) (arg1 (inline-array air-box)) (arg2 int)) + (local-vars (t0-0 symbol)) + (dotimes (v1-0 arg2) + (let ((t1-0 arg0) + (a3-1 (-> arg1 v1-0)) + ) + (set! t0-0 (when (< (-> a3-1 height-level) (-> t1-0 y)) + (let ((f0-2 (- (-> t1-0 x) (-> a3-1 x-pos))) + (f2-1 (- (-> t1-0 z) (-> a3-1 z-pos))) + ) + (set! t0-0 #f) + (let + ((f1-5 + (+ + (* f0-2 (-> a3-1 cos-angle)) + (* f2-1 (-> a3-1 sin-angle)) + ) + ) + (f0-4 + (- + (* f2-1 (-> a3-1 cos-angle)) + (* f0-2 (-> a3-1 sin-angle)) + ) + ) + ) + (if + (and + (>= f1-5 0.0) + (>= f0-4 0.0) + (< f1-5 (-> a3-1 x-length)) + (< f0-4 (-> a3-1 z-length)) + ) + (set! t0-0 #t) + ) + ) + ) + t0-0 + ) + ) + ) + (if t0-0 + (return #t) + ) + ) + #f + ) + +;; definition for function points-in-air? +(defun + points-in-air? + ((arg0 vector) (arg1 vector) (arg2 (inline-array air-box)) (arg3 int)) + (local-vars (t1-4 symbol)) + (dotimes (v1-0 arg3) + (let* ((t0-1 (-> arg2 v1-0)) + (f0-0 (-> t0-1 height-level)) + ) + (when (and (< f0-0 (-> arg0 y)) (< f0-0 (-> arg1 y))) + (let ((f2-0 (- (-> arg0 x) (-> t0-1 x-pos))) + (f4-0 (- (-> arg0 z) (-> t0-1 z-pos))) + (f0-4 (- (-> arg1 x) (-> t0-1 x-pos))) + (f1-6 (- (-> arg1 z) (-> t0-1 z-pos))) + (t2-0 t0-1) + (t1-3 #f) + ) + (let ((f3-3 (+ (* f2-0 (-> t2-0 cos-angle)) (* f4-0 (-> t2-0 sin-angle)))) + (f2-2 (- (* f4-0 (-> t2-0 cos-angle)) (* f2-0 (-> t2-0 sin-angle)))) + ) + (if + (and + (>= f3-3 0.0) + (>= f2-2 0.0) + (< f3-3 (-> t2-0 x-length)) + (< f2-2 (-> t2-0 z-length)) + ) + (set! t1-3 #t) + ) + ) + (set! t1-4 (and t1-3 (begin + (set! t1-4 #f) + (let + ((f2-5 + (+ + (* f0-4 (-> t0-1 cos-angle)) + (* f1-6 (-> t0-1 sin-angle)) + ) + ) + (f0-6 + (- + (* f1-6 (-> t0-1 cos-angle)) + (* f0-4 (-> t0-1 sin-angle)) + ) + ) + ) + (if + (and + (>= f2-5 0.0) + (>= f0-6 0.0) + (< f2-5 (-> t0-1 x-length)) + (< f0-6 (-> t0-1 z-length)) + ) + (set! t1-4 #t) + ) + ) + t1-4 + ) + ) + ) + ) + (if t1-4 + (return #t) + ) + ) + ) + ) + #f + ) + +;; definition (debug) for function add-debug-air-box +;; Used lq/sq +(defun-debug add-debug-air-box ((arg0 bucket-id) (arg1 air-box)) + (local-vars (a0-1 symbol)) + (let ((a1-1 (camera-pos)) + (s5-0 (new 'stack-no-clear 'vector)) + (s4-0 (new 'stack-no-clear 'vector)) + ) + (-> arg1 cos-angle) + (-> arg1 sin-angle) + (let ((s2-0 (the-as uint #x800000ff))) + (let ((v1-0 arg1)) + (set! a0-1 (when (< (-> v1-0 height-level) (-> a1-1 y)) + (let ((f0-4 (- (-> a1-1 x) (-> v1-0 x-pos))) + (f2-1 (- (-> a1-1 z) (-> v1-0 z-pos))) + ) + (set! a0-1 #f) + (let + ((f1-5 + (+ + (* f0-4 (-> v1-0 cos-angle)) + (* f2-1 (-> v1-0 sin-angle)) + ) + ) + (f0-6 + (- + (* f2-1 (-> v1-0 cos-angle)) + (* f0-4 (-> v1-0 sin-angle)) + ) + ) + ) + (if + (and + (>= f1-5 0.0) + (>= f0-6 0.0) + (< f1-5 (-> v1-0 x-length)) + (< f0-6 (-> v1-0 z-length)) + ) + (set! a0-1 #t) + ) + ) + ) + a0-1 + ) + ) + ) + (if a0-1 + (set! s2-0 (the-as uint #x8000ff00)) + ) + (set! (-> s5-0 y) (-> arg1 height-level)) + (set! (-> s4-0 y) (-> arg1 height-level)) + (set! (-> s5-0 w) 1.0) + (set! (-> s4-0 w) 1.0) + (set! (-> s5-0 x) (-> arg1 x-pos)) + (set! (-> s5-0 z) (-> arg1 z-pos)) + (set! + (-> s4-0 x) + (+ (-> arg1 x-pos) (* (-> arg1 cos-angle) (-> arg1 x-length))) + ) + (set! + (-> s4-0 z) + (+ (-> arg1 z-pos) (* (-> arg1 sin-angle) (-> arg1 x-length))) + ) + (add-debug-line #t arg0 s5-0 s4-0 (the-as rgba s2-0) #f (the-as rgba -1)) + (set! (-> s5-0 quad) (-> s4-0 quad)) + (set! + (-> s4-0 x) + (+ (-> s5-0 x) (* (- (-> arg1 sin-angle)) (-> arg1 z-length))) + ) + (set! + (-> s4-0 z) + (+ (-> s5-0 z) (* (-> arg1 cos-angle) (-> arg1 z-length))) + ) + (add-debug-line #t arg0 s5-0 s4-0 (the-as rgba s2-0) #f (the-as rgba -1)) + (set! + (-> s5-0 x) + (+ (-> arg1 x-pos) (* (- (-> arg1 sin-angle)) (-> arg1 z-length))) + ) + (set! + (-> s5-0 z) + (+ (-> arg1 z-pos) (* (-> arg1 cos-angle) (-> arg1 z-length))) + ) + (add-debug-line #t arg0 s5-0 s4-0 (the-as rgba s2-0) #f (the-as rgba -1)) + (set! (-> s4-0 x) (-> arg1 x-pos)) + (set! (-> s4-0 z) (-> arg1 z-pos)) + (add-debug-line #t arg0 s5-0 s4-0 (the-as rgba s2-0) #f (the-as rgba -1)) + ) + ) + ) + + + + From d09088b8ed6f88586a092460103193b2dd2c6db4 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 10 Jul 2021 01:46:04 +0000 Subject: [PATCH 02/63] Updated github pages site --- docs/gh-pages-proj/src/config/progress.json | 2 +- docs/index.html | 2 +- docs/js/{about.e0804d29.js => about.cfbc2b74.js} | 4 ++-- docs/js/{about.e0804d29.js.map => about.cfbc2b74.js.map} | 2 +- docs/js/{app.5583d13c.js => app.c8ce51d9.js} | 4 ++-- docs/js/{app.5583d13c.js.map => app.c8ce51d9.js.map} | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) rename docs/js/{about.e0804d29.js => about.cfbc2b74.js} (99%) rename docs/js/{about.e0804d29.js.map => about.cfbc2b74.js.map} (99%) rename docs/js/{app.5583d13c.js => app.c8ce51d9.js} (97%) rename docs/js/{app.5583d13c.js.map => app.c8ce51d9.js.map} (98%) diff --git a/docs/gh-pages-proj/src/config/progress.json b/docs/gh-pages-proj/src/config/progress.json index 9e742cda58..d80538f0bd 100644 --- a/docs/gh-pages-proj/src/config/progress.json +++ b/docs/gh-pages-proj/src/config/progress.json @@ -1,7 +1,7 @@ { "jak1": { "locPercentage": { - "value": 100632, + "value": 100839, "label": "Lines of Code" } } diff --git a/docs/index.html b/docs/index.html index 70fe301cd1..559069ee70 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1 +1 @@ -OpenGOAL Tooling
\ No newline at end of file +OpenGOAL Tooling
\ No newline at end of file diff --git a/docs/js/about.e0804d29.js b/docs/js/about.cfbc2b74.js similarity index 99% rename from docs/js/about.e0804d29.js rename to docs/js/about.cfbc2b74.js index d0d6a4bb77..50205ee1ee 100644 --- a/docs/js/about.e0804d29.js +++ b/docs/js/about.cfbc2b74.js @@ -1,2 +1,2 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":100632,"label":"Lines of Code"}}}')}}]); -//# sourceMappingURL=about.e0804d29.js.map \ No newline at end of file +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":100839,"label":"Lines of Code"}}}')}}]); +//# sourceMappingURL=about.cfbc2b74.js.map \ No newline at end of file diff --git a/docs/js/about.e0804d29.js.map b/docs/js/about.cfbc2b74.js.map similarity index 99% rename from docs/js/about.e0804d29.js.map rename to docs/js/about.cfbc2b74.js.map index 5effa3b263..0d8d78629e 100644 --- a/docs/js/about.e0804d29.js.map +++ b/docs/js/about.cfbc2b74.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?10d5","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.e0804d29.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?b24d","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.cfbc2b74.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/js/app.5583d13c.js b/docs/js/app.c8ce51d9.js similarity index 97% rename from docs/js/app.5583d13c.js rename to docs/js/app.c8ce51d9.js index 556ca45e5e..cf995c1b68 100644 --- a/docs/js/app.5583d13c.js +++ b/docs/js/app.c8ce51d9.js @@ -1,2 +1,2 @@ -(function(e){function t(t){for(var n,o,i=t[0],c=t[1],l=t[2],s=0,p=[];s\n \n \n \n \n \n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?7eb4","webpack:///src/App.vue","webpack:///./src/App.vue?1160","webpack:///./src/App.vue","webpack:///./src/plugins/vuetify.js","webpack:///./src/router/index.js","webpack:///./src/main.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_h","$createElement","_c","_self","staticRenderFns","components","component","VApp","VMain","Vue","use","Vuetify","theme","dark","VueRouter","routes","path","router","base","process","config","productionTip","vuetify","render","h","App","$mount"],"mappings":"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","file":"js/app.c8ce51d9.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"cfbc2b74\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"about\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"8d0e9591\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/jak-project/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[_c('v-main',[_c('router-view')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file From 1898c7c52a1abb30d6a4c6066d42d1d13ddb41b6 Mon Sep 17 00:00:00 2001 From: water111 <48171810+water111@users.noreply.github.com> Date: Fri, 9 Jul 2021 22:20:37 -0400 Subject: [PATCH 03/63] [decomp] texture (#684) * temp * more cleanup * fix merge issue * handle no texture correctly --- common/goos/PrettyPrinter.cpp | 4 +- decompiler/Function/CfgVtx.cpp | 4 + decompiler/IR2/AtomicOpForm.cpp | 9 +- decompiler/IR2/AtomicOpTypeAnalysis.cpp | 12 +- decompiler/IR2/Form.cpp | 28 +- decompiler/IR2/Form.h | 4 +- decompiler/IR2/FormExpressionAnalysis.cpp | 63 +- decompiler/IR2/bitfields.cpp | 1 + decompiler/analysis/atomic_op_builder.cpp | 34 + decompiler/analysis/insert_lets.cpp | 36 +- decompiler/config/all-types.gc | 138 +- .../anonymous_function_types.jsonc | 5 + .../config/jak1_ntsc_black_label/hacks.jsonc | 55 +- .../jak1_ntsc_black_label/label_types.jsonc | 18 +- .../stack_structures.jsonc | 8 + .../jak1_ntsc_black_label/type_casts.jsonc | 131 + .../jak1_ntsc_black_label/var_names.jsonc | 144 +- game/kernel/klink.cpp | 16 +- game/kernel/klink.h | 2 +- game/kernel/kmachine.cpp | 27 + game/kernel/kscheme.cpp | 8 +- goal_src/engine/debug/memory-usage-h.gc | 4 +- goal_src/engine/debug/stats-h.gc | 2 +- goal_src/engine/dma/dma-bucket.gc | 5 + goal_src/engine/dma/dma-buffer.gc | 2 +- goal_src/engine/dma/dma-disasm.gc | 6 + goal_src/engine/dma/dma-h.gc | 12 +- goal_src/engine/dma/dma.gc | 115 +- goal_src/engine/geometry/geometry.gc | 4 +- goal_src/engine/gfx/font-h.gc | 2 +- goal_src/engine/gfx/hw/display-h.gc | 35 +- goal_src/engine/gfx/hw/display.gc | 47 +- goal_src/engine/gfx/hw/gs.gc | 43 +- goal_src/engine/gfx/hw/video-h.gc | 35 +- goal_src/engine/gfx/texture-h.gc | 252 +- goal_src/engine/gfx/texture.gc | 1621 ++++++- goal_src/engine/level/level-h.gc | 6 +- goal_src/engine/level/level.gc | 27 +- goal_src/engine/load/file-io.gc | 6 + goal_src/engine/load/loader-h.gc | 3 + goal_src/engine/math/vector-h.gc | 3 + goal_src/engine/ps2/pad.gc | 5 + goal_src/engine/ps2/timer-h.gc | 46 +- goal_src/engine/ps2/timer.gc | 53 +- goal_src/engine/sound/gsound-h.gc | 8 +- goal_src/engine/ui/text-h.gc | 1 + goal_src/engine/util/types-h.gc | 8 + goal_src/kernel-defs.gc | 4 + goal_src/kernel/gkernel-h.gc | 5 +- goal_src/kernel/gkernel.gc | 11 +- goal_src/kernel/gstring-h.gc | 4 +- goal_src/levels/common/texture-upload.gc | 29 + .../engine/debug/memory-usage-h_REF.gc | 6 +- .../reference/engine/debug/stats-h_REF.gc | 5 +- .../engine/entity/actor-link-h_REF.gc | 58 +- .../engine/game/task/task-control_REF.gc | 222 +- .../reference/engine/gfx/hw/display-h_REF.gc | 4 +- .../reference/engine/gfx/texture-h_REF.gc | 38 +- .../reference/engine/gfx/texture_REF.gc | 3712 +++++++++++++++++ .../reference/engine/gfx/tie/prototype_REF.gc | 16 +- .../reference/engine/level/level-h_REF.gc | 6 +- .../reference/engine/math/quaternion_REF.gc | 23 +- .../reference/engine/nav/navigate-h_REF.gc | 176 +- .../reference/kernel/gkernel_REF.gc | 382 +- test/offline/offline_test_main.cpp | 4 + 65 files changed, 6900 insertions(+), 903 deletions(-) create mode 100644 test/decompiler/reference/engine/gfx/texture_REF.gc diff --git a/common/goos/PrettyPrinter.cpp b/common/goos/PrettyPrinter.cpp index 5e35b4edc8..a753a87e3c 100644 --- a/common/goos/PrettyPrinter.cpp +++ b/common/goos/PrettyPrinter.cpp @@ -596,12 +596,12 @@ void insertSpecialBreaks(NodePool& pool, PrettyPrinterNode* node) { } } - if (name == "begin") { + if (name == "begin" || name == "with-pp") { breakList(pool, node->paren); } if (name == "defun" || name == "defmethod" || name == "defun-debug" || name == "let" || - name == "let*" || name == "rlet" || name == "defbehavior") { + name == "let*" || name == "rlet" || name == "defbehavior" || name == "lambda") { auto* first_list = getNextListOrEmptyListOnLine(node); if (first_list) { if (first_list->tok->kind == FormToken::TokenKind::EMPTY_PAIR) { diff --git a/decompiler/Function/CfgVtx.cpp b/decompiler/Function/CfgVtx.cpp index 5fa13eddcb..4c7b6d1542 100644 --- a/decompiler/Function/CfgVtx.cpp +++ b/decompiler/Function/CfgVtx.cpp @@ -1462,6 +1462,10 @@ bool ControlFlowGraph::find_seq_top_level(bool allow_self_loops) { auto* b0 = vtx; auto* b1 = vtx->next; + // if (b1 && b1->end_branch.asm_branch) { + // return true; + // } + if (is_sequence_of_non_sequences(b0, b1, allow_self_loops)) { // todo, avoid nesting sequences. replaced = true; diff --git a/decompiler/IR2/AtomicOpForm.cpp b/decompiler/IR2/AtomicOpForm.cpp index 577a3fc8ec..dd441d6255 100644 --- a/decompiler/IR2/AtomicOpForm.cpp +++ b/decompiler/IR2/AtomicOpForm.cpp @@ -421,7 +421,8 @@ FormElement* StoreOp::get_as_form(FormPool& pool, const Env& env) const { auto addr = pool.alloc_element(source, rd.addr_of, tokens); return pool.alloc_element( - addr, m_value.as_expr(), m_my_idx, ro.var, std::nullopt, + pool.alloc_single_form(nullptr, addr), m_value.as_expr(), m_my_idx, ro.var, + std::nullopt, get_typecast_for_atom(m_value, env, coerce_to_reg_type(rd.result_type), m_my_idx), m_size); } @@ -466,9 +467,9 @@ FormElement* StoreOp::get_as_form(FormPool& pool, const Env& env) const { nullptr, TypeSpec("pointer", {TypeSpec(cast_type)}), source); auto deref = pool.alloc_element(cast_source, false, std::vector()); - return pool.alloc_element(deref, m_value.as_expr(), m_my_idx, ro.var, - TypeSpec("pointer", {TypeSpec(cast_type)}), - std::nullopt, m_size); + return pool.alloc_element( + pool.alloc_single_form(nullptr, deref), m_value.as_expr(), m_my_idx, ro.var, + TypeSpec("pointer", {TypeSpec(cast_type)}), std::nullopt, m_size); } } } diff --git a/decompiler/IR2/AtomicOpTypeAnalysis.cpp b/decompiler/IR2/AtomicOpTypeAnalysis.cpp index 72c22fb753..4c7d073fbf 100644 --- a/decompiler/IR2/AtomicOpTypeAnalysis.cpp +++ b/decompiler/IR2/AtomicOpTypeAnalysis.cpp @@ -378,8 +378,13 @@ TP_Type SimpleExpression::get_type_int2(const TypeState& input, } break; case Kind::MUL_UNSIGNED: { - // unsigned multiply will always return a unsigned number. - return TP_Type::make_from_ts("uint"); + if (arg0_type.is_integer_constant() && is_int_or_uint(dts, arg1_type)) { + return TP_Type::make_from_product(arg0_type.get_integer_constant(), + is_signed(dts, arg0_type)); + } else if (is_int_or_uint(dts, arg0_type) && is_int_or_uint(dts, arg1_type)) { + // unsigned multiply will always return a unsigned number. + return TP_Type::make_from_ts("uint"); + } } break; case Kind::DIV_SIGNED: @@ -415,6 +420,9 @@ TP_Type SimpleExpression::get_type_int2(const TypeState& input, } break; + case Kind::MIN_SIGNED: + return TP_Type::make_from_ts("int"); + default: break; } diff --git a/decompiler/IR2/Form.cpp b/decompiler/IR2/Form.cpp index b5959f974d..8c56a3b8fc 100644 --- a/decompiler/IR2/Form.cpp +++ b/decompiler/IR2/Form.cpp @@ -528,6 +528,9 @@ void AtomicOpElement::get_modified_regs(RegSet& regs) const { AsmBranchElement::AsmBranchElement(AsmBranchOp* branch_op, Form* branch_delay, bool likely) : m_branch_op(branch_op), m_branch_delay(branch_delay), m_likely(likely) { m_branch_delay->parent_element = this; + for (auto& elt : m_branch_delay->elts()) { + assert(elt->parent_form == m_branch_delay); + } } goos::Object AsmBranchElement::to_form_internal(const Env& env) const { @@ -605,6 +608,12 @@ goos::Object TranslatedAsmBranch::to_form_internal(const Env& env) const { assert(block_id >= 0); if (m_branch_delay) { + if (m_branch_delay->parent_element != this) { + fmt::print("bad ptr. Parent is {}\n", m_branch_delay->parent_element->to_string(env)); + assert(false); + } + + assert(m_branch_delay->parent_element->parent_form); std::vector list = { pretty_print::to_symbol("b!"), m_branch_condition->to_form(env), pretty_print::to_symbol(fmt::format("cfg-{}", block_id)), @@ -640,6 +649,15 @@ void TranslatedAsmBranch::collect_vars(RegAccessSet& vars, bool recursive) const if (recursive) { m_branch_condition->collect_vars(vars, recursive); if (m_branch_delay) { + if (m_branch_delay->parent_element != this) { + fmt::print("bad ptr. Parent is {}\n", (void*)m_branch_delay->parent_element); + assert(false); + } + + for (auto& elt : m_branch_delay->elts()) { + assert(elt->parent_form == m_branch_delay); + } + m_branch_delay->collect_vars(vars, recursive); } } @@ -2162,7 +2180,7 @@ goos::Object ConstantFloatElement::to_form_internal(const Env&) const { // StorePlainDeref ///////////////////////////// -StorePlainDeref::StorePlainDeref(DerefElement* dst, +StorePlainDeref::StorePlainDeref(Form* dst, SimpleExpression expr, int my_idx, RegisterAccess base_var, @@ -2175,7 +2193,9 @@ StorePlainDeref::StorePlainDeref(DerefElement* dst, m_base_var(base_var), m_dst_cast_type(std::move(dst_cast_type)), m_src_cast_type(std::move(src_cast_type)), - m_size(size) {} + m_size(size) { + m_dst->parent_element = this; +} goos::Object StorePlainDeref::to_form_internal(const Env& env) const { std::vector lst = {pretty_print::to_symbol("set!")}; @@ -2202,7 +2222,9 @@ void StorePlainDeref::apply(const std::function& f) { m_dst->apply(f); } -void StorePlainDeref::apply_form(const std::function&) {} +void StorePlainDeref::apply_form(const std::function& f) { + m_dst->apply_form(f); +} void StorePlainDeref::collect_vars(RegAccessSet& vars, bool recursive) const { m_expr.collect_vars(vars); diff --git a/decompiler/IR2/Form.h b/decompiler/IR2/Form.h index 825be58966..0c8f2f8957 100644 --- a/decompiler/IR2/Form.h +++ b/decompiler/IR2/Form.h @@ -1260,7 +1260,7 @@ class ConstantFloatElement : public FormElement { class StorePlainDeref : public FormElement { public: - StorePlainDeref(DerefElement* dst, + StorePlainDeref(Form* dst, SimpleExpression expr, int my_idx, RegisterAccess base_var, @@ -1277,7 +1277,7 @@ class StorePlainDeref : public FormElement { int size() const { return m_size; } private: - DerefElement* m_dst = nullptr; + Form* m_dst = nullptr; SimpleExpression m_expr; int m_my_idx = -1; RegisterAccess m_base_var; diff --git a/decompiler/IR2/FormExpressionAnalysis.cpp b/decompiler/IR2/FormExpressionAnalysis.cpp index ae0b889f48..44689124a5 100644 --- a/decompiler/IR2/FormExpressionAnalysis.cpp +++ b/decompiler/IR2/FormExpressionAnalysis.cpp @@ -660,6 +660,7 @@ void SimpleExpressionElement::update_from_stack_add_i(const Env& env, } bool arg0_ptr = is_ptr_or_child(env, m_my_idx, m_expr.get_arg(0).var(), true); + bool arg1_ptr = false; // Look for getting an address inside of an object. // (+ process). array style access with a stride of 1. @@ -668,6 +669,7 @@ void SimpleExpressionElement::update_from_stack_add_i(const Env& env, // lookup types. auto arg1_type = env.get_types_before_op(m_my_idx).get(m_expr.get_arg(1).var().reg()); auto arg0_type = env.get_types_before_op(m_my_idx).get(m_expr.get_arg(0).var().reg()); + arg1_ptr = is_ptr_or_child(env, m_my_idx, m_expr.get_arg(1).var(), true); // try to find symbol to string stuff auto arg0_int = get_goal_integer_constant(args.at(0), env); @@ -753,11 +755,13 @@ void SimpleExpressionElement::update_from_stack_add_i(const Env& env, args.at(0)->to_string(env))); } } else { - auto arg0_matcher = - Matcher::op(addition_matcher, - {Matcher::op(GenericOpMatcher::fixed(FixedOperatorKind::MULTIPLICATION), - {Matcher::integer(input.stride), Matcher::any(0)}), - Matcher::integer(input.offset)}); + auto int_matcher = Matcher::integer(input.stride); + auto arg0_matcher = Matcher::op( + addition_matcher, + {Matcher::op(GenericOpMatcher::fixed(FixedOperatorKind::MULTIPLICATION), + {Matcher::match_or({Matcher::cast("uint", int_matcher), int_matcher}), + Matcher::any(0)}), + Matcher::integer(input.offset)}); auto match_result = match(arg0_matcher, args.at(0)); if (match_result.matched) { bool used_index = false; @@ -878,6 +882,7 @@ void SimpleExpressionElement::update_from_stack_add_i(const Env& env, } } + auto arg0_type = env.get_types_before_op(m_my_idx).get(m_expr.get_arg(0).var().reg()); if ((arg0_i && arg1_i) || (arg0_u && arg1_u)) { auto new_form = pool.alloc_element( GenericOperator::make_fixed(FixedOperatorKind::ADDITION), args.at(0), args.at(1)); @@ -886,10 +891,15 @@ void SimpleExpressionElement::update_from_stack_add_i(const Env& env, auto new_form = pool.alloc_element( GenericOperator::make_fixed(FixedOperatorKind::ADDITION_PTR), args.at(0), args.at(1)); result->push_back(new_form); + } else if (arg1_ptr && arg0_type.is_integer_constant()) { + // this is a bit weird, but (&+ thing ) sometimes becomes (&+ thing). + // in these cases, we flip the argument order. + auto new_form = pool.alloc_element( + GenericOperator::make_fixed(FixedOperatorKind::ADDITION_PTR), args.at(1), args.at(0)); + result->push_back(new_form); } else { auto casted0 = args.at(0); - auto arg0_type = env.get_types_before_op(m_my_idx).get(m_expr.get_arg(0).var().reg()); if (!arg0_i && !arg0_u && arg0_type.typespec() != TypeSpec("binteger")) { casted0 = pool.alloc_single_element_form( nullptr, TypeSpec(arg0_i ? "int" : "uint"), args.at(0)); @@ -1371,21 +1381,11 @@ void SimpleExpressionElement::update_from_stack_left_shift(const Env& env, auto arg0_i = is_int_type(env, m_my_idx, m_expr.get_arg(0).var()); auto arg0_u = is_uint_type(env, m_my_idx, m_expr.get_arg(0).var()); if (!arg0_i && !arg0_u) { - auto bti = dynamic_cast(env.dts->ts.lookup_type(arg0_type)); - if (bti) { - auto new_form = pool.alloc_element( - GenericOperator::make_fixed(FixedOperatorKind::SHL), args.at(0), - cast_form( - pool.alloc_single_element_form(nullptr, m_expr.get_arg(1)), - arg0_type, pool, env)); - result->push_back(new_form); - } else { - auto new_form = pool.alloc_element( - GenericOperator::make_fixed(FixedOperatorKind::SHL), - pool.alloc_single_element_form(nullptr, TypeSpec("int"), args.at(0)), - pool.alloc_single_element_form(nullptr, m_expr.get_arg(1))); - result->push_back(new_form); - } + auto new_form = pool.alloc_element( + GenericOperator::make_fixed(FixedOperatorKind::SHL), + pool.alloc_single_element_form(nullptr, TypeSpec("int"), args.at(0)), + pool.alloc_single_element_form(nullptr, m_expr.get_arg(1))); + result->push_back(new_form); } else { auto new_form = pool.alloc_element( GenericOperator::make_fixed(FixedOperatorKind::SHL), args.at(0), @@ -1586,7 +1586,8 @@ void SimpleExpressionElement::update_from_stack_float_to_int(const Env& env, if (type == TypeSpec("float")) { result->push_back(pool.alloc_element(TypeSpec("int"), arg, true)); } else { - throw std::runtime_error("Used float to int on a " + type.print()); + throw std::runtime_error( + fmt::format("Used float to int on a {}: {}", type.print(), to_string(env))); } } @@ -2063,26 +2064,26 @@ void StorePlainDeref::push_to_stack(const Env& env, FormPool& pool, FormStack& s if (size() == 16) { std::swap(popped.at(0), popped.at(1)); } - m_dst->set_base(make_optional_cast(m_dst_cast_type, popped.at(1), pool, env)); + m_dst->try_as_element()->set_base( + make_optional_cast(m_dst_cast_type, popped.at(1), pool, env)); m_dst->mark_popped(); - m_dst->inline_nested(); + m_dst->try_as_element()->inline_nested(); auto fr = pool.alloc_element( - pool.alloc_single_form(nullptr, m_dst), - make_optional_cast(m_src_cast_type, popped.at(0), pool, env)); + m_dst, make_optional_cast(m_src_cast_type, popped.at(0), pool, env)); // so the bitfield set check can run fr->mark_popped(); fr->push_to_stack(env, pool, stack); } else { auto vars = std::vector({m_base_var}); auto popped = pop_to_forms(vars, env, pool, stack, true); - m_dst->set_base(make_optional_cast(m_dst_cast_type, popped.at(0), pool, env)); + m_dst->try_as_element()->set_base( + make_optional_cast(m_dst_cast_type, popped.at(0), pool, env)); m_dst->mark_popped(); - m_dst->inline_nested(); + m_dst->try_as_element()->inline_nested(); auto val = pool.alloc_single_element_form(nullptr, m_expr, m_my_idx); val->mark_popped(); - auto fr = - pool.alloc_element(pool.alloc_single_form(nullptr, m_dst), - make_optional_cast(m_src_cast_type, val, pool, env)); + auto fr = pool.alloc_element( + m_dst, make_optional_cast(m_src_cast_type, val, pool, env)); fr->mark_popped(); stack.push_form_element(fr, true); } diff --git a/decompiler/IR2/bitfields.cpp b/decompiler/IR2/bitfields.cpp index be354be131..569f400e00 100644 --- a/decompiler/IR2/bitfields.cpp +++ b/decompiler/IR2/bitfields.cpp @@ -28,6 +28,7 @@ BitfieldStaticDefElement::BitfieldStaticDefElement( : m_type(type) { for (auto& x : field_defs) { m_field_defs.push_back(BitFieldDef::from_constant(x, pool)); + m_field_defs.back().value->parent_element = this; } } diff --git a/decompiler/analysis/atomic_op_builder.cpp b/decompiler/analysis/atomic_op_builder.cpp index b8802092c2..7fcbf3fdcf 100644 --- a/decompiler/analysis/atomic_op_builder.cpp +++ b/decompiler/analysis/atomic_op_builder.cpp @@ -443,6 +443,20 @@ std::unique_ptr make_asm_branch_no_delay(const IR2_Condition& conditio return std::make_unique(likely, condition, dest_label, nullptr, my_idx); } +std::unique_ptr make_asm_branch(const IR2_Condition& condition, + const Instruction& delay, + bool likely, + int dest_label, + int my_idx) { + assert(!likely); + auto delay_op = std::shared_ptr(convert_1_allow_asm(delay, my_idx)); + if (!delay_op) { + throw std::runtime_error( + fmt::format("Failed to convert branch delay slot instruction for branch at {}", my_idx)); + } + return std::make_unique(likely, condition, dest_label, delay_op, my_idx); +} + /////////////////////// // OP 1 Conversions ////////////////////// @@ -1090,6 +1104,22 @@ std::unique_ptr convert_slt_2(const Instruction& i0, return result; } +std::unique_ptr convert_bltz_2(const Instruction& i0, const Instruction& i1, int idx) { + // bltz is never emitted outside of inline asm. + auto dest = i0.get_src(1).get_label(); + return make_asm_branch(IR2_Condition(IR2_Condition::Kind::LESS_THAN_ZERO_SIGNED, + make_src_atom(i0.get_src(0).get_reg(), idx)), + i1, false, dest, idx); +} + +std::unique_ptr convert_bgez_2(const Instruction& i0, const Instruction& i1, int idx) { + // bgez is never emitted outside of inline asm. + auto dest = i0.get_src(1).get_label(); + return make_asm_branch(IR2_Condition(IR2_Condition::Kind::GEQ_ZERO_SIGNED, + make_src_atom(i0.get_src(0).get_reg(), idx)), + i1, false, dest, idx); +} + std::unique_ptr convert_2(const Instruction& i0, const Instruction& i1, int idx) { switch (i0.kind) { case InstructionKind::DIV: @@ -1112,6 +1142,10 @@ std::unique_ptr convert_2(const Instruction& i0, const Instruction& i1 return convert_slt_2(i0, i1, idx, false); case InstructionKind::CLTS: return convert_fp_branch_asm(i0, i1, IR2_Condition::Kind::FLOAT_LESS_THAN, idx); + case InstructionKind::BLTZ: + return convert_bltz_2(i0, i1, idx); + case InstructionKind::BGEZ: + return convert_bgez_2(i0, i1, idx); default: return nullptr; } diff --git a/decompiler/analysis/insert_lets.cpp b/decompiler/analysis/insert_lets.cpp index 67f5650f0d..aba26c6830 100644 --- a/decompiler/analysis/insert_lets.cpp +++ b/decompiler/analysis/insert_lets.cpp @@ -36,20 +36,20 @@ If the previous let variables appear in the definition of new one, make the let */ namespace { -std::vector path_up_tree(Form* in) { +std::vector path_up_tree(Form* in, const Env& env) { std::vector path; while (in) { path.push_back(in); - // lg::warn("In: {}", in->to_string(env)); + // lg::warn("In: {}", in->to_string(env)); if (in->parent_element) { - // lg::warn(" {}", in->parent_element->to_string(env)); + // lg::warn(" {}", in->parent_element->to_string(env)); in = in->parent_element->parent_form; } else { in = nullptr; } } - // lg::warn("DONE\n"); + // lg::warn("DONE\n"); return path; } @@ -58,12 +58,12 @@ Form* lca_form(Form* a, Form* b, const Env& env) { if (!a) { return b; } + // + // fmt::print("lca {} ({}) and {} ({})\n", a->to_string(env), (void*)a, b->to_string(env), + // (void*)b); - // fmt::print("lca {} ({}) and {} ({})\n", a->to_string(env), (void*)a, b->to_string(env), - // (void*)b); - - auto a_up = path_up_tree(a); - auto b_up = path_up_tree(b); + auto a_up = path_up_tree(a, env); + auto b_up = path_up_tree(b, env); int ai = a_up.size() - 1; int bi = b_up.size() - 1; @@ -78,6 +78,10 @@ Form* lca_form(Form* a, Form* b, const Env& env) { ai--; bi--; } + if (!result) { + auto* bad = b->parent_element; + fmt::print("bad form is {} {}\n", bad->to_string(env), (void*)bad); + } assert(result); // fmt::print("{}\n\n", result->to_string(env)); @@ -544,6 +548,20 @@ LetStats insert_lets(const Function& func, Env& env, FormPool& pool, Form* top_l RegAccessSet reg_accesses; elt->collect_vars(reg_accesses, false); + // if (!reg_accesses.empty()) { + // Form* f = elt->parent_form; + // while (f && f != top_level_form) { + // auto pe = f->parent_element; + // if (pe) { + // f = pe->parent_form; + // } else { + // f = nullptr; + // } + // } + // + // assert(f); + // } + // and add it. for (auto& access : reg_accesses) { if (register_can_hold_var(access.reg())) { diff --git a/decompiler/config/all-types.gc b/decompiler/config/all-types.gc index 43a13e8642..7e52a48b35 100644 --- a/decompiler/config/all-types.gc +++ b/decompiler/config/all-types.gc @@ -759,6 +759,7 @@ :type uint32 :bitfield #f (zero 0) + (pause #x109) (sfx-volume #x10a) (music-volume #x10b) (speech-volume #x10c) @@ -4255,7 +4256,7 @@ (define-extern set-display (function display int int int int int display)) (define-extern put-draw-env (function (pointer gif-tag) none)) (define-extern *pre-draw-hook* (function none)) ;; unknown type -(define-extern *post-draw-hook* (function none)) ;; unknown type +(define-extern *post-draw-hook* (function dma-buffer none)) ;; unknown type ;; ---------------------- @@ -4539,7 +4540,7 @@ (new (symbol type) _type_ 0) (initialize! (_type_) _type_ 9) (print-usage (_type_) _type_ 10) - (dummy-11 (_type_) none 11) + (setup-font-texture! (_type_) none 11) (allocate-defaults! (_type_) none 12) (login-level-textures (_type_ level int (pointer texture-id)) none 13) ;; loading level... (add-tex-to-dma! (_type_ level int) none 14) ;; very mysterious arg types. @@ -4548,7 +4549,7 @@ (dummy-17 () none 17) (dummy-18 () none 18) (dummy-19 () none 19) - (dummy-20 (_type_ texture-page) int 20) + (unload! (_type_ texture-page) int 20) (upload-one-common! (_type_) symbol 21) (lookup-boot-common-id (_type_ int) int 22) ) @@ -4556,7 +4557,9 @@ (deftype texture (basic) ((w int16 :offset-assert 4) + (wu uint16 :offset 4) (h int16 :offset-assert 6) + (hu uint16 :offset 6) (num-mips uint8 :offset-assert 8) (tex1-control uint8 :offset-assert 9) ;; each level has a dest and a width (psm gs-psm :offset-assert 10) @@ -4587,7 +4590,7 @@ ) (deftype texture-page (basic) - ((info basic :offset-assert 4) + ((info file-info :offset-assert 4) (name basic :offset-assert 8) (id uint32 :offset-assert 12) (length int32 :offset-assert 16) ;; number of texture @@ -4606,7 +4609,7 @@ (get-leftover-block-count (_type_ int int) int 10) (dummy-11 () none 11) (relocate-dests! (_type_ int int) none 12) - (add-to-dma-buffer (_type_ dma-buffer int) none 13) + (add-to-dma-buffer (_type_ dma-buffer int) int 13) (upload-now! (_type_ int) none 14) ) ) @@ -4644,7 +4647,7 @@ ) (:methods (relocate (_type_ kheap (pointer uint8)) none :replace 7) - (dummy-9 (_type_ kheap) int 9) + (unlink-textures-in-heap! (_type_ kheap) int 9) ) :flag-assert #xa00000014 ) @@ -4662,17 +4665,24 @@ :flag-assert #x90000001c ) +(defenum link-test-flags + :type uint32 + :bitfield #t + (needs-log-in 8) + (bit-9 9) + ) + (deftype adgif-shader (structure) - ((quad qword 5 :inline :offset 0) - (prims uint64 10 :offset 0) - (tex0 uint64 :offset 0) - (tex1 uint64 :offset 16) - (miptbp1 uint64 :offset 32) - (clamp uint64 :offset 48) - (clamp-reg uint64 :offset 56) - (alpha uint64 :offset 64) - (link-test uint32 :offset 8) - (texture-id uint32 :offset 24) + ((quad qword 5 :score -100 :inline :offset 0) + (prims gs-reg64 10 :score -100 :offset 0) + (tex0 gs-tex0 :offset 0) + (tex1 gs-tex1 :offset 16) + (miptbp1 gs-miptbp :offset 32) + (clamp gs-clamp :offset 48) + (clamp-reg gs-reg64 :offset 56) + (alpha gs-miptbp :offset 64) + (link-test link-test-flags :offset 8) + (texture-id texture-id :offset 24) (next shader-ptr :offset 40) ) :method-count-assert 9 @@ -4830,7 +4840,7 @@ (vis-self-index int32 :offset-assert 440) (vis-adj-index int32 :offset-assert 444) (vis-buffer uint8 2048 :offset-assert 448) - (mem-usage-block basic :offset-assert 2496) + (mem-usage-block memory-usage-block :offset-assert 2496) (mem-usage int32 :offset-assert 2500) (code-memory-start pointer :offset-assert 2504) (code-memory-end pointer :offset-assert 2508) ;; NOTE - usually a texture-page @@ -4844,10 +4854,10 @@ (:methods (deactivate (_type_) _type_ 9) (dummy-10 (_type_ int) symbol 10) - (dummy-11 (_type_) none 11) + (add-irq-to-tex-buckets! (_type_) none 11) (unload! (_type_) _type_ 12) (bsp-name (_type_) symbol 13) - (dummy-14 (_type_) none 14) + (dummy-14 (_type_ object) none 14) (dummy-15 (_type_ vector) symbol 15) (dummy-16 (_type_) none 16) (load-continue (_type_) _type_ 17) @@ -5507,7 +5517,7 @@ (:methods (reset! (_type_) _type_ 9) (calculate-total (_type_) int 10) - (dummy-11 () none 11) + (print-mem-usage (_type_ level object) none 11) ) ) @@ -5515,7 +5525,7 @@ (define-extern *mem-usage* memory-usage-block) (define-extern *dma-mem-usage* memory-usage-block) -(define-extern *temp-mem-usage* symbol) +(define-extern *temp-mem-usage* memory-usage-block) ;; ---------------------- @@ -5526,17 +5536,17 @@ ;; - Functions -(define-extern adgif-shader<-texture! function) -(define-extern adgif-shader<-texture-with-update! function) -(define-extern level-remap-texture function) -(define-extern link-texture-by-id (function adgif-shader texture-id int)) +(define-extern adgif-shader<-texture! (function adgif-shader texture adgif-shader)) +(define-extern adgif-shader<-texture-with-update! (function adgif-shader texture adgif-shader)) +(define-extern level-remap-texture (function texture-id texture-id)) +(define-extern link-texture-by-id (function texture-id adgif-shader texture-page-dir-entry)) (define-extern lookup-texture-by-id (function texture-id texture)) -(define-extern texture-page-login (function texture-id function kheap texture-page-dir-entry)) +(define-extern texture-page-login (function texture-id (function texture-pool texture-page kheap int texture-page) kheap texture-page-dir-entry)) ;; arg2 in these is not an int, but something else. Not sure what it is yet. ;; all these texture-page-segment might actually be texture-relocate-later! (define-extern texture-page-default-allocate (function texture-pool texture-page kheap int texture-page)) (define-extern loado (function string kheap object)) -(define-extern texture-relocate (function dma-buffer texture int int int int)) +(define-extern texture-relocate (function dma-buffer texture int gs-psm int dma-buffer)) (define-extern dma-buffer-add-ref-texture (function dma-buffer pointer int int gs-psm none)) (define-extern upload-vram-pages (function texture-pool texture-pool-segment texture-page int int int)) (define-extern upload-vram-pages-pris (function texture-pool texture-pool-segment texture-page int int int)) @@ -5561,13 +5571,13 @@ (define-extern texture-page-common-boot-allocate (function texture-pool texture-page kheap int texture-page)) (define-extern texture-page-level-allocate (function texture-pool texture-page kheap int texture-page)) (define-extern relocate-later (function symbol)) -(define-extern adgif-shader-update! (function int texture none)) ;; todo - unconfirmed -(define-extern adgif-shader-login (function adgif-shader none)) -(define-extern adgif-shader-login-no-remap (function adgif-shader none)) -(define-extern adgif-shader-login-fast function) -(define-extern adgif-shader-login-no-remap-fast function) +(define-extern adgif-shader-update! (function adgif-shader texture none)) ;; todo - unconfirmed +(define-extern adgif-shader-login (function adgif-shader texture)) +(define-extern adgif-shader-login-no-remap (function adgif-shader texture)) +(define-extern adgif-shader-login-fast (function adgif-shader texture)) +(define-extern adgif-shader-login-no-remap-fast (function adgif-shader texture)) ;;;; unknown type -(define-extern adgif-shader<-texture-simple! function) +(define-extern adgif-shader<-texture-simple! (function adgif-shader texture adgif-shader)) ;; - Symbols @@ -11531,7 +11541,7 @@ ) (deftype perf-stat-array (inline-array-class) - () + ((data perf-stat :inline :dynamic :offset-assert 16)) :method-count-assert 9 :size-assert #x10 :flag-assert #x900000010 @@ -14816,12 +14826,12 @@ (define-extern *subdivide-settings* subdivide-settings) (define-extern *tfrag-work* tfrag-work) ;; unknown type -;;(define-extern *perf-stats* object) ;; unknown type +(define-extern *perf-stats* perf-stat-array) ;; unknown type ;;(define-extern *merc-global-stats* object) ;; unknown type ;;(define-extern *stat-string-tfrag-near* object) ;; unknown type ;;(define-extern *stat-string-tfrag* object) ;; unknown type ;;(define-extern *stat-string-total* object) ;; unknown type -;;(define-extern *terrain-context* object) ;; unknown type +(define-extern *terrain-context* terrain-context) ;; unknown type ;;(define-extern GSH_ENABLE object) ;; unknown type ;;(define-extern GSH_BUCKET object) ;; unknown type ;;(define-extern GSH_WHICH_STAT object) ;; unknown type @@ -15062,7 +15072,7 @@ (define-extern internal-draw-debug-text-3d (function bucket-id string vector rgba vector2h pointer)) (define-extern get-debug-line (function debug-line)) (define-extern internal-draw-debug-line (function bucket-id vector vector rgba symbol rgba object)) -(define-extern draw-string (function string dma-buffer font-context int)) +(define-extern draw-string (function string dma-buffer font-context float)) (define-extern transform-float-point (function vector vector vector)) (define-extern add-debug-point (function symbol bucket-id vector symbol)) ;; unused (define-extern add-debug-outline-triangle (function symbol bucket-id vector vector vector rgba symbol)) @@ -15174,11 +15184,11 @@ (define-extern setup-blerc-chains-for-one-fragment function) (define-extern setup-blerc-chains function) (define-extern blerc-stats-init function) -(define-extern blerc-init function) +(define-extern blerc-init (function none)) (define-extern blerc-a-fragment function) (define-extern dma-from-spr function) (define-extern merc-dma-chain-to-spr function) -(define-extern blerc-execute function) +(define-extern blerc-execute (function none)) (define-extern merc-blend-shape function) ;; - Unknowns @@ -15202,7 +15212,7 @@ (define-extern merc-stats-display function) (define-extern merc-stats function) (define-extern merc-edge-stats function) -(define-extern merc-vu1-init-buffers function) +(define-extern merc-vu1-init-buffers (function none)) ;; - Unknowns @@ -15330,7 +15340,7 @@ (define-extern dump-mem function) (define-extern bone-list-init function) (define-extern texscroll-make-request function) -(define-extern texscroll-execute function) +(define-extern texscroll-execute (function none)) (define-extern bones-set-sqwc function) (define-extern bones-reset-sqwc function) (define-extern bones-init function) @@ -15650,7 +15660,7 @@ (define-extern depth-cue-set-stencil function) (define-extern depth-cue-draw-depth function) (define-extern depth-cue-calc-z function) -(define-extern depth-cue function) +(define-extern depth-cue (function display none)) ;; - Unknowns @@ -15959,7 +15969,7 @@ ;; - Functions -(define-extern tie-init-buffers function) +(define-extern tie-init-buffers (function dma-buffer none)) (define-extern tie-debug-between function) (define-extern tie-debug-one function) (define-extern walk-tie-generic-prototypes function) @@ -16122,8 +16132,8 @@ (define-extern sp-orbiter function) (define-extern memcpy function) (define-extern kill-all-particles-in-level (function int)) -(define-extern set-particle-frame-time function) -(define-extern process-particles function) +(define-extern set-particle-frame-time (function int none)) +(define-extern process-particles (function none)) ;; - Unknowns @@ -16505,7 +16515,7 @@ (define-extern game-save-elt->string (function game-save-elt string)) (define-extern progress-level-index->string (function int string)) (define-extern auto-save-post function) -(define-extern auto-save-check function) +(define-extern auto-save-check (function none)) ;; - Unknowns @@ -16963,7 +16973,7 @@ (define-extern start-time-of-day (function int)) (define-extern time-of-day-setup (function symbol int none)) ;; not confirmed (define-extern set-time-of-day function) -(define-extern init-time-of-day-context function) +(define-extern init-time-of-day-context (function time-of-day-context none)) (define-extern update-time-of-day function) ;; - Unknowns @@ -17303,7 +17313,7 @@ (define-extern set-font-color-alpha function) (define-extern load-game-text-info function) -(define-extern load-level-text-files function) +(define-extern load-level-text-files (function int none)) (define-extern draw-debug-text-box function) (define-extern print-game-text-scaled function) (define-extern disable-level-text-file-loading function) @@ -17501,7 +17511,7 @@ ;; - Unknowns -;;(define-extern *collide-vif0-init* object) ;; unknown type +(define-extern *collide-vif0-init* (array uint32)) ;; unknown type ;; ---------------------- @@ -18005,7 +18015,7 @@ (define-extern update-visible function) (define-extern set-point function) (define-extern plane-from-points function) -(define-extern update-camera function) +(define-extern update-camera (function none)) ;; - Unknowns @@ -18498,7 +18508,7 @@ ;;(define-extern level-hint-ambient-sound object) ;; unknown type ;;(define-extern level-hint-sidekick object) ;; unknown type ;;(define-extern level-hint-normal object) ;; unknown type -;;(define-extern *execute-ambients* object) ;; unknown type +(define-extern *execute-ambients* symbol) ;; unknown type ;; ---------------------- @@ -19338,13 +19348,13 @@ ;; - Functions -(define-extern display-frame-finish function) -(define-extern display-sync function) -(define-extern determine-pause-mode function) -(define-extern display-frame-start function) +(define-extern display-frame-finish (function display object)) +(define-extern display-sync (function display none)) +(define-extern determine-pause-mode (function int)) +(define-extern display-frame-start (function display int int none)) (define-extern toggle-pause (function int)) -(define-extern deactivate-progress function) -(define-extern debug-init-buffer function) +(define-extern deactivate-progress (function none)) +(define-extern debug-init-buffer (function bucket-id uint uint none)) (define-extern real-main-draw-hook function) (define-extern error-sphere function) (define-extern draw-instance-info function) @@ -19357,7 +19367,7 @@ (define-extern foreground-engine-execute function) (define-extern main-debug-hook function) (define-extern main-draw-hook function) -(define-extern swap-display function) +(define-extern swap-display (function display object)) (define-extern marks-cam-restore function) (define-extern eddie-cam-restore function) (define-extern gregs-jungle-cam-restore function) @@ -19373,10 +19383,10 @@ ;; - Unknowns -;;(define-extern syncv object) ;; unknown type -;;(define-extern put-display-env object) ;; unknown type -;;(define-extern *surrogate-dma-buffer* object) ;; unknown type -;;(define-extern *screen-shot* object) ;; unknown type +(define-extern syncv (function int int)) ;; unknown type +(define-extern put-display-env (function object none)) ;; unknown type +(define-extern *surrogate-dma-buffer* dma-buffer) ;; unknown type +(define-extern *screen-shot* symbol) ;; unknown type ;;(define-extern *hud-lights* object) ;; unknown type ;;(define-extern *instance-mem-usage* object) ;; unknown type ;;(define-extern *add-sphere* object) ;; unknown type @@ -19535,7 +19545,7 @@ ;; - Unknowns -;;(define-extern *max-dma* object) ;; unknown type +(define-extern *max-dma* int) ;; ---------------------- @@ -20691,7 +20701,7 @@ (define-extern make-levels-with-tasks-available-to-progress function) (define-extern progress-init-by-other function) (define-extern init-game-options function) -(define-extern make-current-level-available-to-progress function) +(define-extern make-current-level-available-to-progress (function none)) ;; - Unknowns diff --git a/decompiler/config/jak1_ntsc_black_label/anonymous_function_types.jsonc b/decompiler/config/jak1_ntsc_black_label/anonymous_function_types.jsonc index a7c0442d27..1d9207344e 100644 --- a/decompiler/config/jak1_ntsc_black_label/anonymous_function_types.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/anonymous_function_types.jsonc @@ -568,5 +568,10 @@ [90, "(function debug-menu debug-menu symbol)"] // not 100% sure about the debug-menu, but it has a string at offset 0 ], + "memory-usage": [ + [3, "(function basic symbol)"], + [2, "(function process symbol)"] + ], + "placeholder-do-not-add-below": [] } diff --git a/decompiler/config/jak1_ntsc_black_label/hacks.jsonc b/decompiler/config/jak1_ntsc_black_label/hacks.jsonc index 8480cdc103..a9b3fb733e 100644 --- a/decompiler/config/jak1_ntsc_black_label/hacks.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/hacks.jsonc @@ -26,7 +26,8 @@ "aggressively_reject_cond_to_value_rewrite": [ "(method 10 res-lump)", "(method 11 res-lump)", - "(method 12 res-lump)" + "(method 12 res-lump)", + "(method 7 texture-page)" ], // this provides a hint to the decompiler that these functions will have a lot of inline assembly. @@ -97,8 +98,8 @@ "vector=", // asm branching // texture - "adgif-shader<-texture-with-update!", // F: asm branching - "(method 9 texture-page-dir)", + // "adgif-shader<-texture-with-update!", // F: asm branching + // "(method 9 texture-page-dir)", // collide-mesh-h "(method 11 collide-mesh-cache)", @@ -378,7 +379,7 @@ "(method 32 collide-cache)", // memory-usage BUG - "(method 14 level)", + //"(method 14 level)", // navigate BUG "(method 32 nav-control)", @@ -478,7 +479,8 @@ "debug-menu-context-select-new-item", "debug-menu-send-msg", "debug-menu-find-from-template", - "build-continue-menu" + "build-continue-menu", + "(method 8 process-tree)" ], // If format is used with the wrong number of arguments, @@ -488,17 +490,54 @@ "bad_format_strings": { "ERROR: dma tag has data in reserved bits ~X~%": 0, "#: value of symbol ~A in task-controls is not a task-control~%": 0 + "ERROR: value of symbol ~A in task-controls is not a task-control~%": 0, + "~0K~10,'-S--~5,'-DK-of-~5,'-DK--~5,'-DK-of-~5,'-DK--": 5, + " bsp ~192H~5DK ~280Hdebug~456H~5DK~%": 2, + " bsp-leaf-vis-iop ~192H~5DK~%": 1, + " bsp-leaf-vis-adj ~192H~5DK~%": 1, + " level-code ~192H~5DK~%": 1, + " tfrag ~192H~5DK ~280Htfragment~456H~5DK~%": 2, + " tie-proto ~192H~5DK ~280Hsky~456H~5DK~%": 2, + " tie-instance ~192H~5DK ~280Htie-fragment~456H~5DK~%": 2, + " shrub-proto ~192H~5DK ~280Htie-near~456H~5DK~%": 2, + " shrub-instance ~192H~5DK ~280Hshrubbery~456H~5DK~%": 2, + " collision ~192H~5DK ~280Htie-generic~456H~5DK~%": 2, + " pris-geo ~192H~5DK ~280Hpris-fragment~456H~5DK~%": 2, + " pris-anim ~192H~5DK ~280Hpris-generic~456H~5DK~%": 2, + " textures ~192H~5DK ~280Htextures~456H~5DK~%": 2, + " entity ~192H~5DK~%":2, + " misc ~192H~5DK ~280Hsprite~456H~5DK~%":2 }, "blocks_ending_in_asm_branch": { "closest-pt-in-triangle": [17], // this one is all asm branches - "circle-circle-xz-intersect": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], + "circle-circle-xz-intersect": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14 + ], "find-knot-span": [0, 1, 2, 3, 5, 6, 7, 8, 9], - "curve-evaluate!": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] + "curve-evaluate!": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], + + "(method 9 texture-page-dir)": [4, 5], + + "adgif-shader<-texture-with-update!": [0, 1], + + "display-loop": [44, 49, 66, 96] } } diff --git a/decompiler/config/jak1_ntsc_black_label/label_types.jsonc b/decompiler/config/jak1_ntsc_black_label/label_types.jsonc index 7bc8a2b868..0c313ea2bd 100644 --- a/decompiler/config/jak1_ntsc_black_label/label_types.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/label_types.jsonc @@ -257,7 +257,16 @@ ["L349", "_auto_", true], ["L369", "uint64", true], ["L373", "uint64", true], - ["L371", "uint64", true] + ["L371", "uint64", true], + ["L364", "float", true], + ["L372", "uint64", true], + ["L375", "uint64", true], + ["L374", "uint64", true], + ["L365", "uint64", true], + ["L366", "uint64", true], + ["L370", "uint64", true], + ["L367", "uint64", true], + ["L368", "uint64", true] ], "fact-h": [ @@ -549,7 +558,7 @@ "entity-table": [["L8", "(array entity-info)", true]], - "main": [["L230", "_lambda_", true]], + "main": [["L230", "_lambda_", true], ["L309", "float", true]], "geometry": [["L125", "float", true], ["L126", "float", true], ["L112", "(pointer float)", true, 4]], @@ -1150,12 +1159,13 @@ ["L45", "(array task-hint-control-group)", true], ["L100", "(array level-hint-control)", true] ], - "air": [ ["L38", "uint64", true], ["L39", "uint64", true] ], - + "memory-usage": [ + ["L15", "_lambda_", true] + ], // please do not add things after this entry! git is dumb. "object-file-that-doesnt-actually-exist-and-i-just-put-this-here-to-prevent-merge-conflicts-with-this-file": [] } diff --git a/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc b/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc index 926aed8c1d..bb1130a4e0 100644 --- a/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc @@ -521,5 +521,13 @@ [32, "vector"] ], + "mem-size": [ + [16, "memory-usage-block"] + ], + + "display-loop": [ + [16, "sphere"] + ], + "placeholder-do-not-add-below!": [] } diff --git a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc index 51468f2dd1..6a8048bbe5 100644 --- a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc @@ -341,6 +341,127 @@ [[47, 62], "a2", "dma-packet"] ], + "(method 11 level)": [ + [[13, 18], "a1", "dma-packet"], + //[19, "a0", "(pointer uint32)"], + [[20, 26], "a0", "dma-packet"], + + [[50, 55], "a1", "dma-packet"], + // [56, "a0", "(pointer uint32)"], + [[60, 63], "a0", "dma-packet"], + + [[87, 92], "a1", "dma-packet"], + // [93, "a0", "(pointer uint32)"], + [[97, 100], "a0", "dma-packet"], + + [[124, 129], "a1", "dma-packet"], + // [130, "a0", "(pointer uint32)"], + [[134, 137], "a0", "dma-packet"], + + [[162, 167], "a1", "dma-packet"], + // [168, "a0", "(pointer uint32)"], + [[172, 175], "a0", "dma-packet"], + + [[199, 204], "a1", "dma-packet"], + // [205, "a0", "(pointer uint32)"], + [[209, 212], "a0", "dma-packet"], + + [[236, 241], "a1", "dma-packet"], + // [242, "a0", "(pointer uint32)"], + [[246, 249], "a0", "dma-packet"], + + [[273, 278], "a1", "dma-packet"], + // [279, "a0", "(pointer uint32)"], + [[283, 286], "a0", "dma-packet"] + ], + + "(method 14 texture-page)": [ + [[18, 22], "a0", "dma-packet"], + [[28, 31], "a0", "gs-gif-tag"], + [36, "a0", "(pointer uint64)"], + [38, "a0", "(pointer gs-reg64)"], + [[44, 45], "a0", "dma-packet"], + [45, "a0", "(pointer uint64)"] + ], + + "(method 13 texture-page)": [ + [[45, 49], "a0", "dma-packet"], + [[55, 58], "a0", "gs-gif-tag"], + [67, "a0", "(pointer gs-bitbltbuf)"], + [69, "a0", "(pointer gs-reg64)"], + [70, "a0", "(pointer gs-trxpos)"], + [72, "a0", "(pointer gs-reg64)"], + [76, "a0", "(pointer gs-trxreg)"], + [78, "a0", "(pointer gs-reg64)"], + [79, "a0", "(pointer gs-trxdir)"], + [81, "a0", "(pointer gs-reg64)"] + ], + + "link-texture-by-id": [[51, "s5", "uint"]], + + "adgif-shader-login-fast": [[57, "gp", "uint"]], + + "adgif-shader-login-no-remap-fast": [[52, "a0", "uint"]], + + "(method 9 texture-page-dir)": [[[27, 31], "t3", "adgif-shader"]], + + "adgif-shader<-texture-simple!": [[5, "v1", "uint"]], + + "display-frame-start": [ + [4, "v1", "(pointer uint32)"] + ], + + "display-loop": [ + [152, "v1", "(pointer int32)"], + [157, "a0", "(pointer process-drawable)"] + ], + + "texture-relocate": [ + [[17, 21], "t4", "dma-packet"], + [[27, 30], "t4", "gs-gif-tag"], + [60, "t4", "(pointer gs-bitbltbuf)"], + [62, "t4", "(pointer gs-reg64)"], + [63, "t4", "(pointer gs-trxpos)"], + [65, "t4", "(pointer gs-reg64)"], + [71, "t4", "(pointer gs-trxreg)"], + [73, "t4", "(pointer gs-reg64)"], + [75, "t4", "(pointer gs-trxdir)"], + [77, "t4", "(pointer gs-reg64)"], + [[98, 102], "a2", "dma-packet"], + [[108, 111], "a2", "gs-gif-tag"], + + [132, "a2", "(pointer gs-bitbltbuf)"], + [134, "a2", "(pointer gs-reg64)"], + [135, "a2", "(pointer gs-trxpos)"], + [137, "a2", "(pointer gs-reg64)"], + [139, "a2", "(pointer gs-trxreg)"], + [141, "a2", "(pointer gs-reg64)"], + [143, "a2", "(pointer gs-trxdir)"], + [145, "a2", "(pointer gs-reg64)"], + + [[157, 161], "a2", "dma-packet"], + [[167, 170], "a2", "gs-gif-tag"], + [191, "a2", "(pointer gs-bitbltbuf)"], + [193, "a2", "(pointer gs-reg64)"], + [194, "a2", "(pointer gs-trxpos)"], + [196, "a2", "(pointer gs-reg64)"], + [198, "a2", "(pointer gs-trxreg)"], + [200, "a2", "(pointer gs-reg64)"], + [202, "a2", "(pointer gs-trxdir)"], + [204, "a2", "(pointer gs-reg64)"] + ], + + "(method 11 texture-pool)": [ + [[119, 123], "a0", "dma-packet"], + [[129, 132], "a0", "gs-gif-tag"], + [137, "a0", "(pointer uint64)"], + [139, "a0", "(pointer gs-reg64)"], + [145, "a0", "dma-packet"], + [146, "a0", "(pointer uint64)"] + ], + + "texture-page-login": [[[34, 45], "s2", "texture-page"]], + "upload-vram-data": [ [[9, 15], "a0", "dma-packet"], [[18, 24], "a0", "gs-gif-tag"], @@ -1023,5 +1144,15 @@ [[0, 60], "f1", "float"] ], + "(anon-function 2 memory-usage)": [ + [[171, 415], "s5", "process-drawable"], + [[212, 213], "v1", "collide-shape"] + ], + + "(method 8 process-tree)": [ + [31, "v1", "symbol"], + [6, "a3", "symbol"] + ], + "placeholder-do-not-add-below": [] } diff --git a/decompiler/config/jak1_ntsc_black_label/var_names.jsonc b/decompiler/config/jak1_ntsc_black_label/var_names.jsonc index d9e5c76278..fb5d4f1bae 100644 --- a/decompiler/config/jak1_ntsc_black_label/var_names.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/var_names.jsonc @@ -1313,6 +1313,108 @@ } }, + "(method 13 texture-page)": { + "args": ["obj", "dma-buff", "mode"], + "vars": { + "sv-16": "total-size", + "v1-7": "start-segment", + "s5-0": "chunk-count", + "s4-0": "current-dest", + "s3-0": "current-data", + "a3-1": "chunks-now", + "a0-1": ["pkt", "dma-packet"], + "a0-3": ["gs-tag", "gs-gif-tag"], + "a0-5": "gs-reg-data" + } + }, + + "texture-relocate": { + "args": ["dma-buff", "tex", "dest-loc", "dest-fmt", "clut-dst"], + "vars": { + "v1-0": "mip-level", + "t1-1": "mip-w", + "t2-3": "mip-h", + "t4-0": ["dma-pkt", "dma-packet"], + "t4-2": ["gs-pkt", "gs-gif-tag"] + } + }, + + "(method 11 texture-pool)": { + "vars": { + "s3-0": "font-clut", + "sv-16": "heap-before-font-tex", + "sv-20": "clut-dest-addr", + "s4-0": "dma-buff", + "s5-0": "main-font-tx", + "s2-0": "font-tx-1", + "s1-0": "font-tx-1-dest", + "s0-0": "font-tx-1-fmt", + "s2-1": "font-tx-0", + "s1-1": "font-tx-0-dest", + "s0-1": "font-tx-0-fmt", + "s2-2": "font-tx-3", + "s1-2": "font-tx-3-dest", + "s0-2": "font-tx-3-fmt", + "s2-3": "font-tx-2", + "s1-3": "font-tx-2-dest", + "s0-3": "font-tx-2-fmt" + } + }, + + "link-texture-by-id": { + "vars": { + "s4-0": "dir-entry" + } + }, + + "(method 9 texture-page-dir)": { + "args": ["obj", "heap"], + "vars": { + "v1-0": "mem-start", + "a1-1": "mem-end", + "a2-0": "entry-idx", + "t1-0": "entry", + "t0-0": "tex-page", + "a3-4": "link-arr", + "t0-3": "tex-count", + "t1-4": "tex-idx", + "t2-0": "link-slot", + "t3-2": ["shader", "adgif-shader"], + "t4-1": "dist-past-end" + } + }, + + "display-loop": { + "vars": { + + } + }, + + "adgif-shader-login": { + "args":"shader", + "vars": { + "s5-0":"tex" + } + }, + + "adgif-shader-login-fast": { + "args":["shader"], + "vars":{ + "v1-4":"tex-id", + "a0-9":"dir-entry", + "s5-0":"tex" + } + }, + + "texture-page-login": { + "args": ["id", "alloc-func", "heap"], + "vars": { + "s5-0": "dir-entry", + "s4-0": "old-alloc-func", + "s3-0": "file-name" + } + }, + "(method 9 __assert-info-private-struct)": { "args": ["obj", "filename", "line-num", "column-num"] }, @@ -2151,34 +2253,34 @@ "(method 10 game-info)": { "args": ["obj", "item", "amount", "source"], "vars": { - "v1-10":"proc", - "s4-1":"level-idx", - "a0-35":"buzz-task", - "s4-2":"buzz-index", - "f30-0":"buzz-count", - "s3-0":"ctrl", - "s5-2":"buzz-bits" + "v1-10": "proc", + "s4-1": "level-idx", + "a0-35": "buzz-task", + "s4-2": "buzz-index", + "f30-0": "buzz-count", + "s3-0": "ctrl", + "s5-2": "buzz-bits" } }, "(method 14 game-info)": { - "args":["obj", "lev"], + "args": ["obj", "lev"], "vars": { - "s5-0":"perms", - "s4-0":"lev-entities", - "s3-0":"lev-entity-idx", - "s2-0":"lev-entity-perm", - "v1-8":"info-entity-perm" + "s5-0": "perms", + "s4-0": "lev-entities", + "s3-0": "lev-entity-idx", + "s2-0": "lev-entity-perm", + "v1-8": "info-entity-perm" } }, "(method 15 game-info)": { - "args":["obj", "lev"], + "args": ["obj", "lev"], "vars": { - "s5-0":"lev-entities", - "s4-0":"lev-entity-idx", - "s3-0":"lev-entity-perm", - "v1-7":"info-entity-perm" + "s5-0": "lev-entities", + "s4-0": "lev-entity-idx", + "s3-0": "lev-entity-perm", + "v1-7": "info-entity-perm" } }, @@ -2206,11 +2308,11 @@ "vars": { "s4-0": ["tag", "game-save-tag"], "s3-0": "tag-idx", - "s2-1":"prog-lev-idx", - "a2-13":"lev-name" + "s2-1": "prog-lev-idx", + "a2-13": "lev-name" } }, - + "debug-menu-func-decode": { "vars": { "v0-0": ["ret-val", "symbol"] diff --git a/game/kernel/klink.cpp b/game/kernel/klink.cpp index ae18304d82..2c4ceb662e 100644 --- a/game/kernel/klink.cpp +++ b/game/kernel/klink.cpp @@ -876,25 +876,23 @@ uint64_t link_resume() { * but it may use the scratchpad. It is implemented in GOAL, and falls back to normal C memcpy * if GOAL isn't loaded, or if the alignment isn't good enough. */ -void* ultimate_memcpy(void* dst, void* src, uint32_t size) { +void ultimate_memcpy(void* dst, void* src, uint32_t size) { // only possible if alignment is good. if (!(u64(dst) & 0xf) && !(u64(src) & 0xf) && !(u64(size) & 0xf) && size > 0xfff) { if (!gfunc_774.offset) { // GOAL function is unknown, lets see if its loaded: auto sym = find_symbol_from_c("ultimate-memcpy"); if (sym->value == 0) { - return memmove(dst, src, size); + memmove(dst, src, size); } gfunc_774.offset = sym->value; } - printf("Replacing goal ultimate-memcpy! with memmove\n"); - return memmove(dst, src, size); - // return Ptr(call_goal(gfunc_774, make_u8_ptr(dst).offset, make_u8_ptr(src).offset, - // size, - // s7.offset, g_ee_main_mem)) - // .c(); + + Ptr(call_goal(gfunc_774, make_u8_ptr(dst).offset, make_u8_ptr(src).offset, size, s7.offset, + g_ee_main_mem)) + .c(); } else { - return memmove(dst, src, size); + memmove(dst, src, size); } } diff --git a/game/kernel/klink.h b/game/kernel/klink.h index 47c5b245b4..d337d15966 100644 --- a/game/kernel/klink.h +++ b/game/kernel/klink.h @@ -109,7 +109,7 @@ uint64_t link_begin(uint64_t object_data, uint32_t flags); uint64_t link_resume(); -void* ultimate_memcpy(void* dst, void* src, uint32_t size); +void ultimate_memcpy(void* dst, void* src, uint32_t size); extern link_control saved_link_control; diff --git a/game/kernel/kmachine.cpp b/game/kernel/kmachine.cpp index 00af109793..ec4f172c31 100644 --- a/game/kernel/kmachine.cpp +++ b/game/kernel/kmachine.cpp @@ -29,6 +29,7 @@ #include "game/sce/libpad.h" #include "common/symbols.h" #include "common/log/log.h" +#include "common/util/Timer.h" #include "game/system/vm/vm.h" using namespace ee; @@ -48,11 +49,14 @@ u8 pad_dma_buf[2 * SCE_PAD_DMA_BUFFER_SIZE]; const char* init_types[] = {"fakeiso", "deviso", "iso_cd"}; +Timer ee_clock_timer; + void kmachine_init_globals() { isodrv = iso_cd; modsrc = 1; reboot = 1; memset(pad_dma_buf, 0, sizeof(pad_dma_buf)); + ee_clock_timer = Timer(); } /*! @@ -564,6 +568,27 @@ void PutDisplayEnv() { assert(false); } +/*! + * PC Port function to get a 300MHz timer value. + */ +u64 read_ee_timer() { + u64 ns = ee_clock_timer.getNs(); + return (ns * 3) / 10; +} + +/*! + * PC Port function to do a fast memory copy. + */ +void c_memmove(u32 dst, u32 src, u32 size) { + memmove(Ptr(dst).c(), Ptr(src).c(), size); +} + +void InitMachine_PCPort() { + // PC Port added functions + make_function_symbol_from_c("__read-ee-timer", (void*)read_ee_timer); + make_function_symbol_from_c("__mem-move", (void*)c_memmove); +} + /*! * Final initialization of the system after the kernel is loaded. * This is called from InitHeapAndSymbol at the very end. @@ -602,6 +627,8 @@ void InitMachineScheme() { make_function_symbol_from_c("dma-to-iop", (void*)dma_to_iop); // unused make_function_symbol_from_c("kernel-shutdown", (void*)KernelShutdown); // used make_function_symbol_from_c("aybabtu", (void*)sceCdMmode); // used + + InitMachine_PCPort(); InitSoundScheme(); intern_from_c("*stack-top*")->value = 0x07ffc000; intern_from_c("*stack-base*")->value = 0x07ffffff; diff --git a/game/kernel/kscheme.cpp b/game/kernel/kscheme.cpp index b1e80f2c1e..825664432f 100644 --- a/game/kernel/kscheme.cpp +++ b/game/kernel/kscheme.cpp @@ -1720,11 +1720,9 @@ s32 InitHeapAndSymbol() { set_fixed_symbol(FIX_SYM_GLOBAL_HEAP, "global", kglobalheap.offset); set_fixed_symbol(FIX_SYM_DEBUG_HEAP, "debug", kdebugheap.offset); set_fixed_symbol(FIX_SYM_STATIC, "static", (s7 + FIX_SYM_STATIC).offset); - set_fixed_symbol(FIX_SYM_LOADING_LEVEL, "loading-level", (s7 + FIX_SYM_LOADING_LEVEL).offset); - set_fixed_symbol(FIX_SYM_LOADING_PACKAGE, "loading-package", - (s7 + FIX_SYM_LOADING_PACKAGE).offset); - set_fixed_symbol(FIX_SYM_PROCESS_LEVEL_HEAP, "process-level-heap", - (s7 + FIX_SYM_PROCESS_LEVEL_HEAP).offset); + set_fixed_symbol(FIX_SYM_LOADING_LEVEL, "loading-level", kglobalheap.offset); + set_fixed_symbol(FIX_SYM_LOADING_PACKAGE, "loading-package", kglobalheap.offset); + set_fixed_symbol(FIX_SYM_PROCESS_LEVEL_HEAP, "process-level-heap", kglobalheap.offset); set_fixed_symbol(FIX_SYM_STACK, "stack", (s7 + FIX_SYM_STACK).offset); set_fixed_symbol(FIX_SYM_SCRATCH, "scratch", (s7 + FIX_SYM_SCRATCH).offset); set_fixed_symbol(FIX_SYM_SCRATCH_TOP, "*scratch-top*", 0x70000000); diff --git a/goal_src/engine/debug/memory-usage-h.gc b/goal_src/engine/debug/memory-usage-h.gc index 9f8ee8a2c5..13ed8b18ce 100644 --- a/goal_src/engine/debug/memory-usage-h.gc +++ b/goal_src/engine/debug/memory-usage-h.gc @@ -27,13 +27,13 @@ (:methods (reset! (_type_) _type_ 9) (calculate-total (_type_) int 10) - (dummy-11 () none 11) + (print-mem-usage (_type_ level object) none 11) ) ) (define *mem-usage* (new 'debug 'memory-usage-block)) (define *dma-mem-usage* (new 'debug 'memory-usage-block)) -(define *temp-mem-usage* #f) +(define *temp-mem-usage* (the-as memory-usage-block #f)) ;; Memory usage stats are organized by the type of object. diff --git a/goal_src/engine/debug/stats-h.gc b/goal_src/engine/debug/stats-h.gc index 3df795f6b2..7df7622dc8 100644 --- a/goal_src/engine/debug/stats-h.gc +++ b/goal_src/engine/debug/stats-h.gc @@ -59,7 +59,7 @@ ;; definition of type perf-stat-array (deftype perf-stat-array (inline-array-class) - () + ((data perf-stat :inline :dynamic :offset-assert 16)) :method-count-assert 9 :size-assert #x10 :flag-assert #x900000010 diff --git a/goal_src/engine/dma/dma-bucket.gc b/goal_src/engine/dma/dma-bucket.gc index e29e96dd59..9c6a39ccd2 100644 --- a/goal_src/engine/dma/dma-bucket.gc +++ b/goal_src/engine/dma/dma-bucket.gc @@ -13,6 +13,11 @@ ;; buckets live consecutively in the dma-buffer, and can mark the start of a DMA chain ;; location anywhere. +;; The bucket doesn't own the data, but rather is a beginning of a linked list of DMA data associated with that bucket +;; that's stored somewhere else. + +;; At the end, all the buckets are spliced together. + ;; The typical process is: ;; - empty buckets are allocated with add-buckets ;; - tags are put somewhere and added to the appropriate bucket with insert-tag, updating last as needed. diff --git a/goal_src/engine/dma/dma-buffer.gc b/goal_src/engine/dma/dma-buffer.gc index a84c66a76d..0c468aac09 100644 --- a/goal_src/engine/dma/dma-buffer.gc +++ b/goal_src/engine/dma/dma-buffer.gc @@ -164,7 +164,7 @@ (defun dma-buffer-send ((chan dma-bank) (buf dma-buffer)) - "Send the DMA buffer! DOES NOT TRANSFER TAG." + "Send the DMA buffer! DOES NOT TRANSFER TAG, you probably want dma-buffer-send-chain instead." (when (< (-> buf allocated-length) (&- (-> buf base) (-> buf data)) ) diff --git a/goal_src/engine/dma/dma-disasm.gc b/goal_src/engine/dma/dma-disasm.gc index 50e4358385..1cf639b61d 100644 --- a/goal_src/engine/dma/dma-disasm.gc +++ b/goal_src/engine/dma/dma-disasm.gc @@ -5,6 +5,8 @@ ;; name in dgo: dma-disasm ;; dgos: GAME, ENGINE +;; Debug tool to print out a DMA list. + (deftype vif-disasm-element (structure) ((mask uint32 :offset-assert 0) (tag vif-cmd-32 :offset-assert 4) @@ -400,6 +402,10 @@ ;; this is unused. (define *dma-disasm* #t) +(defmacro disasm-dma-buffer (buff) + `(disasm-dma-list (the dma-packet (-> ,buff data-buffer)) 'details #t #t 0) + ) + (defun disasm-dma-list ((data dma-packet) (mode symbol) (verbose symbol) (stream symbol) (expected-size int)) "Disassemble a dma list, starting from the given packet." (local-vars diff --git a/goal_src/engine/dma/dma-h.gc b/goal_src/engine/dma/dma-h.gc index eec49d8601..e210a9c51c 100644 --- a/goal_src/engine/dma/dma-h.gc +++ b/goal_src/engine/dma/dma-h.gc @@ -5,11 +5,16 @@ ;; name in dgo: dma-h ;; dgos: GAME, ENGINE -;; Constants/type for the PS2 DMA System. +;; Constants/type for the PS2 DMA hardware ;; There are a number of DMA channels. ;; The PS2 supports several types of DMA, including simple chunk transfer and more complicated ;; "chain" transfers, where the hardware can follow a linked data-structure. +;; The code is organized into dma, dma-buffer, and dma-bucket +;; - dma interacts with the hardware and actually sends the DMA data. +;; - dma-buffer is memory management for the data to be sent +;; - dma-bucket is organization of all the frame's DMA data in the correct order + ;; In OpenGOAL, "DMA" will be instant, meaning the game code will stop, wait until the ;; DMA is finished, and then continue. As a result, there is no need for DMA synchronization. ;; When this flag is set, all DMA syncs will be instantaneous. @@ -200,6 +205,10 @@ ) +;; DMA data is divided into buckets. +;; At the end of a frame, the buckets are all connected together and sent. +;; the buckets are organized by renderer. + (defenum bucket-id :type int32 :bitfield #f @@ -235,6 +244,7 @@ (water-tex1 60) ;; merc1 61 ;; generic1 62 + ;; common tex 65 ;; debug spheres? 67 (debug-draw0 67) ;; debug text 68 diff --git a/goal_src/engine/dma/dma.gc b/goal_src/engine/dma/dma.gc index e4350ae3a3..167f299f0f 100644 --- a/goal_src/engine/dma/dma.gc +++ b/goal_src/engine/dma/dma.gc @@ -222,9 +222,7 @@ "Due to a bug in the PS2 hardware, you must always disable the DMAtag mismatch error. This is done here." - ;; (declare (print-asm)) (#when PC_PORT - (format 0 "[dma.gc] skipping dma-initialize for PC port~%") (return 0) ) @@ -234,7 +232,8 @@ ) (defun clear-vu0-mem () - "Set the vu0 data memory to 0xabadbeef. This uses the slow EE mapping of VU memory." + "Set the vu0 data memory to 0xabadbeef. This uses the slow EE mapping of VU memory. + Will crash on PC Port." (let ((v1-0 VU0_DATA_MEM_MAP)) (dotimes (a0-0 1024) (set! (-> v1-0 a0-0) #xabadbeef) @@ -244,7 +243,8 @@ ) (defun clear-vu1-mem () - "Set the vu1 data memory to 0xabadbeef. This uses the slow EE mapping of VU memory." + "Set the vu1 data memory to 0xabadbeef. This uses the slow EE mapping of VU memory. + Will crash on PC Port." (let ((v1-0 VU1_DATA_MEM_MAP)) (dotimes (a0-0 4096) (set! (-> v1-0 a0-0) #xabadbeef) @@ -254,7 +254,8 @@ ) (defun dump-vu1-mem () - "Print VU1 memory to runtime stdout." + "Print VU1 memory to runtime stdout. + Will crash on PC Port." (local-vars (s5-0 int) (gp-0 (pointer uint32))) (set! gp-0 (the (pointer uint32) #x1100c000)) (set! s5-0 0) @@ -278,7 +279,8 @@ ) (defun dump-vu1-range ((start uint) (total-count uint)) - "Print part of VU1 memory to runtime stdout." + "Print part of VU1 memory to runtime stdout. + Will crash on PC Port." (local-vars (s3-0 int) (s2-0 int) (s4-0 (pointer uint32))) (set! s4-0 (the (pointer uint32) #x1100c000)) (set! s3-0 0) @@ -328,54 +330,63 @@ Memory is copied in ascending order, in 4 kB blocks. The size should be a multiple of 16 bytes." - ;; ultimate-memcpy works by DMAing to the scratchpad and back. - ;; surprisingly this seems to be the fastest memcpy on larger - ;; transfers. This is a nice example of how DMA is used from GOAL. - (let ((spr-to-bank (the-as dma-bank-spr #x1000d400)) - (spr-from-bank (the-as dma-bank-spr #x1000d000)) - (qwc-remaining (shr size-bytes 4)) - ) + (#cond + (PC_PORT + ;; on PC Port, just call C mem-move, it's the fastest. + (__mem-move dst src size-bytes) + ) + (else - ;; Flush all data in the dcache to main memory. DMA bypasses the dcache. - (flush-cache 0) - ;; Complete all pending DMA transfers using the spad. - ;; (this uses the Sony library DMA sync, which is bad) - (dma-sync (the-as pointer spr-to-bank) 0 0) - (dma-sync (the-as pointer spr-from-bank) 0 0) + ;; ultimate-memcpy works by DMAing to the scratchpad and back. + ;; surprisingly this seems to be the fastest memcpy on larger + ;; transfers. This is a nice example of how DMA is used from GOAL. + (let ((spr-to-bank (the-as dma-bank-spr #x1000d400)) + (spr-from-bank (the-as dma-bank-spr #x1000d000)) + (qwc-remaining (shr size-bytes 4)) + ) - ;; transfer loop - (while (> qwc-remaining 0) - ;; copy up to 1024 quadwords - limited by the 4kB spad size. - (let ((qwc-transferred-now (the-as int qwc-remaining))) - (if (< (the-as uint 1024) (the-as uint qwc-transferred-now)) - (set! qwc-transferred-now 1024) - ) - (set! qwc-remaining (- qwc-remaining (the-as uint qwc-transferred-now))) - ;; set up the "to spad" transfer - (.sync.l) - (set! (-> spr-to-bank madr) (the-as uint src)) - (set! (-> spr-to-bank sadr) (the-as uint 0)) - (set! (-> spr-to-bank qwc) (the-as uint qwc-transferred-now)) - (.sync.l) - ;; activate! - (set! (-> spr-to-bank chcr) (new 'static 'dma-chcr :str #x1)) - (.sync.l) - ;; wait for it to finish... - (dma-sync (the-as pointer spr-to-bank) 0 0) - (&+! src (shl qwc-transferred-now 4)) - ;; and copy back... - (set! (-> spr-from-bank madr) (the-as uint dst)) - (set! (-> spr-from-bank sadr) (the-as uint 0)) - (set! (-> spr-from-bank qwc) (the-as uint qwc-transferred-now)) - (.sync.l) - (set! (-> spr-from-bank chcr) (new 'static 'dma-chcr :str #x1)) - (.sync.l) - (dma-sync (the-as pointer spr-from-bank) 0 0) - (&+! dst (shl qwc-transferred-now 4)) - ) - ) - ) - (let ((v0-4 0)) + ;; Flush all data in the dcache to main memory. DMA bypasses the dcache. + (flush-cache 0) + ;; Complete all pending DMA transfers using the spad. + ;; (this uses the Sony library DMA sync, which is bad) + (dma-sync (the-as pointer spr-to-bank) 0 0) + (dma-sync (the-as pointer spr-from-bank) 0 0) + + ;; transfer loop + (while (> qwc-remaining 0) + ;; copy up to 1024 quadwords - limited by the 4kB spad size. + (let ((qwc-transferred-now (the-as int qwc-remaining))) + (if (< (the-as uint 1024) (the-as uint qwc-transferred-now)) + (set! qwc-transferred-now 1024) + ) + (set! qwc-remaining (- qwc-remaining (the-as uint qwc-transferred-now))) + ;; set up the "to spad" transfer + (.sync.l) + (set! (-> spr-to-bank madr) (the-as uint src)) + (set! (-> spr-to-bank sadr) (the-as uint 0)) + (set! (-> spr-to-bank qwc) (the-as uint qwc-transferred-now)) + (.sync.l) + ;; activate! + (set! (-> spr-to-bank chcr) (new 'static 'dma-chcr :str #x1)) + (.sync.l) + ;; wait for it to finish... + (dma-sync (the-as pointer spr-to-bank) 0 0) + (&+! src (shl qwc-transferred-now 4)) + ;; and copy back... + (set! (-> spr-from-bank madr) (the-as uint dst)) + (set! (-> spr-from-bank sadr) (the-as uint 0)) + (set! (-> spr-from-bank qwc) (the-as uint qwc-transferred-now)) + (.sync.l) + (set! (-> spr-from-bank chcr) (new 'static 'dma-chcr :str #x1)) + (.sync.l) + (dma-sync (the-as pointer spr-from-bank) 0 0) + (&+! dst (shl qwc-transferred-now 4)) + ) + ) + ) + (let ((v0-4 0)) + ) + ) ) (none) ) diff --git a/goal_src/engine/geometry/geometry.gc b/goal_src/engine/geometry/geometry.gc index 40ba57b42a..c4d479d81e 100644 --- a/goal_src/engine/geometry/geometry.gc +++ b/goal_src/engine/geometry/geometry.gc @@ -5,6 +5,9 @@ ;; name in dgo: geometry ;; dgos: GAME, ENGINE +;; Geometry functions are common vector/plane utilities + the "curve" stuff +;; The curves are likely bezier splines, but not 100% sure yet. + (defun vector-flatten! ((dst vector) (src vector) (plane-normal vector)) "Get the projection of src onto a plane with the given normal The normal should have magnitude 1.0." @@ -1036,7 +1039,6 @@ (let ((a2-3 (/ (+ a1-1 a0-1) 2))) (let ((t0-3 (&-> arg3 0 data a2-3))) - (print-type t0-3) (b! (>= arg2 (-> t0-3 0)) cfg-7) (b! #t cfg-5 :delay (set! a0-1 a2-3)) (label cfg-7) diff --git a/goal_src/engine/gfx/font-h.gc b/goal_src/engine/gfx/font-h.gc index b9534076c0..1f0510a0da 100644 --- a/goal_src/engine/gfx/font-h.gc +++ b/goal_src/engine/gfx/font-h.gc @@ -662,5 +662,5 @@ ) -(define-extern draw-string (function string dma-buffer font-context int)) +(define-extern draw-string (function string dma-buffer font-context float)) diff --git a/goal_src/engine/gfx/hw/display-h.gc b/goal_src/engine/gfx/hw/display-h.gc index d6c0973929..af0660fde0 100644 --- a/goal_src/engine/gfx/hw/display-h.gc +++ b/goal_src/engine/gfx/hw/display-h.gc @@ -5,6 +5,11 @@ ;; name in dgo: display-h ;; dgos: GAME, ENGINE +;; The display system takes care of managing the contexts for settings framebuffers/display settings +;; It also handles drawing the profile bars, game engine timing, and managing the two DMA buffers for +;; the double buffered rendering system. +;; The *display* global will hold the main display state, including the DMA buffers for each of the two frames + ;; display-env stores the GS settings for displaying a framebuffer on screen. ;; this is identical to the Sony sceGsDispEnv struct. ;; you can set one of these up with set-display-env, then use it with @@ -126,6 +131,7 @@ (none) ) +;; Per frame data that is used by the renderers. (deftype display-frame (basic) ((calc-buf dma-buffer :offset 8) (vu1-buf dma-buffer :offset 8) @@ -159,6 +165,7 @@ ) ) +;; unused? (deftype virtual-frame (structure) ((display display-env :offset-assert 0) (display-last display-env :offset-assert 4) @@ -174,7 +181,9 @@ ) +;; This tracks all of the display stuff in a single global (deftype display (basic) + ;; first, 3x environments. Not sure why we need 3. ((display-env0 display-env :inline :offset-assert 8) (display-env1 display-env :inline :offset-assert 48) (display-env2 display-env :inline :offset-assert 88) @@ -182,15 +191,19 @@ ;; the draw-env is actually just a+d data. (gif-tag0 gs-gif-tag :inline :offset-assert 128) (draw0 draw-env :inline :offset-assert 144) - (gif-tag1 gs-gif-tag :inline :offset-assert 272) (draw1 draw-env :inline :offset-assert 288) (gif-tag2 gs-gif-tag :inline :offset-assert 416) (draw2 draw-env :inline :offset-assert 432) + + ;; frame indices (on-screen int32 :offset-assert 560) (last-screen int32 :offset-assert 564) + ;; not sure why we have 6, it seems like only the first 2 actually + ;; have valid display-frames in them. (frames virtual-frame 6 :inline :offset-assert 568) (bg-clear-color rgba 4 :offset-assert 760) + ;; counters (why are there so many???) (real-frame-counter uint64 :offset-assert 776) (base-frame-counter uint64 :offset-assert 784) (game-frame-counter uint64 :offset-assert 792) @@ -199,6 +212,9 @@ (actual-frame-counter uint64 :offset-assert 816) (real-actual-frame-counter uint64 :offset-assert 824) (part-frame-counter uint64 :offset-assert 832) + + ;; the "old" counters are the values from the previous tick. + ;; the counters above may jump during a load. (old-real-frame-counter uint64 :offset-assert 840) (old-base-frame-counter uint64 :offset-assert 848) (old-game-frame-counter uint64 :offset-assert 856) @@ -207,11 +223,13 @@ (old-actual-frame-counter uint64 :offset-assert 880) (old-real-actual-frame-counter uint64 :offset-assert 888) (old-part-frame-counter uint64 :offset-assert 896) - (time-ratio float :offset-assert 904) - (seconds-per-frame float :offset-assert 908) - (frames-per-second float :offset-assert 912) - (time-factor float :offset-assert 916) - (time-adjust-ratio float :offset-assert 920) + + ;; timing stats for how fast the engine is currently running. + (time-ratio float :offset-assert 904) ;; engine speed, 1.0 = full speed + (seconds-per-frame float :offset-assert 908) ;; 1/fps + (frames-per-second float :offset-assert 912) ;; fps + (time-factor float :offset-assert 916) ;; 6 on PAL, 5 on NTSC, "ticks" / frame + (time-adjust-ratio float :offset-assert 920) ;; 1 on NTSC full speed, 1.2 PAL full speed. ) :method-count-assert 10 :size-assert #x39c @@ -229,7 +247,8 @@ (let ((obj (object-new allocation type-to-make (the-as int (-> type-to-make size))))) ;; set the display size, texture format, zbuffer format, etc. (set-display obj psm w h ztest zpsm) - ;; set up frames. + ;; set up frames. for the most part only the first 2 make sense, and + ;; the rest have repeats. (set! (-> obj frames 0 display) (-> obj display-env0)) (set! (-> obj frames 1 display) (-> obj display-env1)) (set! (-> obj frames 2 display) (-> obj display-env2)) @@ -280,4 +299,4 @@ ) (define *pre-draw-hook* nothing) -(define *post-draw-hook* nothing) +(define *post-draw-hook* (the-as (function dma-buffer none) nothing)) diff --git a/goal_src/engine/gfx/hw/display.gc b/goal_src/engine/gfx/hw/display.gc index 26f2cb9919..51bfae64f7 100644 --- a/goal_src/engine/gfx/hw/display.gc +++ b/goal_src/engine/gfx/hw/display.gc @@ -86,7 +86,7 @@ (new 'static 'gs-display-fb :psm psm :fbw (sar width 6) :fbp fbp) ) - ;; set up the display area. + ;; set up the display area (obscure PS2 video output junk) (set! (-> env display) (new 'static 'gs-display :dw #x9ff @@ -150,12 +150,12 @@ (set! (-> env xyoffset1addr) (gs-reg64 xyoffset-1)) (set! (-> env xyoffset1) (new 'static 'gs-xy-offset - :ofx #x7000 + :ofx #x7000 ;; = 1792 px = 2048 - 256, this will make 2048 the center of the screen. :ofy (shl (-> *video-parms* screen-miny) 4) ;; 12.4 fixed point. ) ) - ;; scissor to the given width/height (in WCS) + ;; scissor to the given width/height (in WCS pixels) (set! (-> env scissor1addr) (gs-reg64 scissor-1)) ;; the lower bound is set to 0: the origin of the WCS which is the xyoffset (set! (-> env scissor1) @@ -174,9 +174,11 @@ (defun set-draw-env-offset ((env draw-env) (x int) (y int) (arg3 int)) "Set the drawing offset (origin of the WCS). - The input x and y should be in pixels to the _center_ of the window. + The input x and y should be in pixels to the _center_ of the scissoring area The width/height of the window are taken from the scissoring settings. - It is assumed that scax0 and scay0 are set to 0." + It is assumed that scax0 and scay0 are set to 0. + To center things in the usual way, call with 2048, 2048, even/odd + " (set! (-> env xyoffset1) (new 'static 'gs-xy-offset :ofx (shl (- x @@ -335,10 +337,9 @@ "Draw the bar! The bar pos shouldn't be changed." ;; recompute y stuff based on the current relative-y-scale. - ;; I don't know what would change it. (let ((height (the int (* 8.0 (-> *video-parms* relative-y-scale))))) - (set! *profile-y* (+ (-> *video-parms* screen-miny) height)) - (set! *profile-h* height) + (set! *profile-y* (+ (-> *video-parms* screen-miny) height)) ;; px + (set! *profile-h* height) ;; px ) (let ((block-idx 1) ;; block to draw (0 is 'start) (block-count (-> obj profile-frame-count)) ;; total number of blocks @@ -409,20 +410,20 @@ ) ;; draw sprite (alpha blend enable) (set! (-> (the-as (pointer gs-prim) t3-8) 0) - (new 'static 'gs-prim :prim (gs-prim-type sprite) :abe #x1) - ) + (new 'static 'gs-prim :prim (gs-prim-type sprite) :abe #x1) + ) ;; set color. (set! (-> (the-as (pointer uint64) t3-8) 1) - (the-as uint (-> block color)) - ) + (the-as uint (-> block color)) + ) ;; set vertex (left side) (set! (-> (the-as (pointer gs-xyzf) t3-8) 2) - (new 'static 'gs-xyzf - :z #x3fffff - :y (shl (+ *profile-y* screen-y) 4) ;; 12.4 - :x left ;; end of previous bar + (new 'static 'gs-xyzf + :z #x3fffff + :y (shl (+ *profile-y* screen-y) 4) ;; 12.4 + :x left ;; end of previous bar + ) ) - ) (set! (-> t2-4 base) (&+ t3-8 24)) ) @@ -449,12 +450,12 @@ (t2-8 (-> t1-8 base)) ) (set! (-> (the-as (pointer gs-xyzf) t2-8) 0) - (new 'static 'gs-xyzf - :z #x3fffff - :y (shl (+ (+ *profile-y* screen-y) *profile-h*) 4) ;; add height. - :x left ;; now the end of this bar. + (new 'static 'gs-xyzf + :z #x3fffff + :y (shl (+ (+ *profile-y* screen-y) *profile-h*) 4) ;; add height. + :x left ;; now the end of this bar. + ) ) - ) (set! (-> t1-8 base) (&+ t2-8 8)) ) @@ -486,6 +487,8 @@ (else ;; for some reason, they use 104% here. This means that when you see ;; 100%, it actually means ~96% of ticks-per-frame. + ;; this is possibly because there's some time in between reaching here + ;; and when the next one starts (in drawable.gc) (let ((f30-0 (/ (* 104.0 (the float (-> worst-time-cache (/ bar-pos 10)))) (the float *ticks-per-frame*) ) diff --git a/goal_src/engine/gfx/hw/gs.gc b/goal_src/engine/gfx/hw/gs.gc index e730b41e51..b820a88cab 100644 --- a/goal_src/engine/gfx/hw/gs.gc +++ b/goal_src/engine/gfx/hw/gs.gc @@ -5,6 +5,10 @@ ;; name in dgo: gs ;; dgos: GAME, ENGINE +;; Types for the GS - the PS2's GPU. +;; These are used when creating GS packets to be sent to the GIF +;; or for directly interfacing with the memory-mapped GS control registers. + ;; the GS's PMODE register makes various settings for the PCRTC. (deftype gs-pmode (uint64) ((en1 uint8 :offset 0 :size 1) @@ -27,13 +31,7 @@ :flag-assert #x900000008 ) -;; 19 = PSMT8 -;; 20 = PSMT4 -;; 2 = PSMCT24 -;; 10 = PSMCT16S -;; 50 = PSMZ16 -;; 58 = PSMZ16S - +;; texture formats (defenum gs-psm :bitfield #f :type uint8 @@ -169,7 +167,7 @@ :flag-assert #x900000008 ) -;; memory layout of the GS's privileged registers +;; memory layout of the GS's privileged registers (mapped to EE memory) ;; it is missing the SIGLBLID/LABELID register at 4224 (useless anyway?) (deftype gs-bank (structure) ((pmode gs-pmode :offset-assert 0) @@ -630,7 +628,34 @@ :flag-assert #x900000010 ) -;; Note - there was an inspect method for the uint128-based gif-tag, but it is being left out. +(defmethod inspect gif-tag ((obj gif-tag)) + (format #t "[~8x] gif-tag~%" obj) + (format #t "~Tnloop: ~4d~%" (-> obj nloop)) + (format #t "~Teop : ~4d~%" (-> obj eop)) + (format #t "~Tid : ~4d~%" (-> obj id)) + (format #t "~Tpre : ~4d~%" (-> obj pre)) + (format #t "~Tprim : ~4d~%" (-> obj prim)) + (format #t "~Tflg : ~4d~%" (-> obj flg)) + (format #t "~Tnreg : ~4d~%" (-> obj nreg)) + (format #t "~Tregs0 : ~4d~%" (-> obj regs0)) + (format #t "~Tregs1 : ~4d~%" (-> obj regs1)) + (format #t "~Tregs2 : ~4d~%" (-> obj regs2)) + (format #t "~Tregs3 : ~4d~%" (-> obj regs3)) + (format #t "~Tregs4 : ~4d~%" (-> obj regs4)) + (format #t "~Tregs5 : ~4d~%" (-> obj regs5)) + (format #t "~Tregs6 : ~4d~%" (-> obj regs6)) + (format #t "~Tregs7 : ~4d~%" (-> obj regs7)) + (format #t "~Tregs8 : ~4d~%" (-> obj regs8)) + (format #t "~Tregs9 : ~4d~%" (-> obj regs9)) + (format #t "~Tregs10: ~4d~%" (-> obj regs10)) + (format #t "~Tregs11: ~4d~%" (-> obj regs11)) + (format #t "~Tregs12: ~4d~%" (-> obj regs12)) + (format #t "~Tregs13: ~4d~%" (-> obj regs13)) + (format #t "~Tregs14: ~4d~%" (-> obj regs14)) + (format #t "~Tregs15: ~4d~%" (-> obj regs15)) + ;; original function failed to return this. + obj + ) ;; some nice blue. probably the same as the fog color for geyser/sandover/etc. (define *fog-color* #xc88029) diff --git a/goal_src/engine/gfx/hw/video-h.gc b/goal_src/engine/gfx/hw/video-h.gc index a86bb6620d..0fdc36e697 100644 --- a/goal_src/engine/gfx/hw/video-h.gc +++ b/goal_src/engine/gfx/hw/video-h.gc @@ -5,22 +5,31 @@ ;; name in dgo: video-h ;; dgos: GAME, ENGINE + +;; The "video" system manages PAL vs. NTSC and aspect ratio settings +;; (not including timing difference between PAL/NTSC) +;; These are stored in the *video-parms* global. + +;; The game is interlaced, meaning each framebuffer is half height. + +;; There are two + (deftype video-parms (structure) ((set-video-mode basic :offset-assert 0) (reset-video-mode basic :offset-assert 4) - (screen-sy int32 :offset-assert 8) - (screen-hy int32 :offset-assert 12) - (screen-miny int32 :offset-assert 16) - (screen-maxy int32 :offset-assert 20) - (screen-masky int32 :offset-assert 24) - (display-dx int32 :offset-assert 28) + (screen-sy int32 :offset-assert 8) ;; height of framebuffer (1/2 of output resolution) + (screen-hy int32 :offset-assert 12) ;; half of fb height (1/4 of output resolution) + (screen-miny int32 :offset-assert 16) ;; min y in WCS (pixels), centered around 2048 (1/2) + (screen-maxy int32 :offset-assert 20) ;; max y in WCS (pixels) + (screen-masky int32 :offset-assert 24) ;; mask of bits that actually change in height (sy -1) + (display-dx int32 :offset-assert 28) ;; offset for displaying framebuffer (display-dy int32 :offset-assert 32) - (screen-pages-high int32 :offset-assert 36) + (screen-pages-high int32 :offset-assert 36) ;; GS pages (_pad int64) - (relative-x-scale float :offset-assert 48) - (relative-y-scale float :offset-assert 52) + (relative-x-scale float :offset-assert 48) ;; x scale for 4x3 / 16x9 + (relative-y-scale float :offset-assert 52) ;; y scale for NTSC/PAL (_pad2 int64) - (relative-x-scale-reciprical float :offset-assert 64) + (relative-x-scale-reciprical float :offset-assert 64) ;; reciprocal of the above scales (relative-y-scale-reciprical float :offset-assert 68) ) :method-count-assert 9 @@ -28,6 +37,7 @@ :flag-assert #x900000048 ) +;; default to NTSC (define *video-parms* (new 'static 'video-parms :set-video-mode #f @@ -43,15 +53,12 @@ :relative-x-scale 1.0 :relative-y-scale 1.0 :relative-x-scale-reciprical 1.0 - :relative-y-scale-reciprical 0.0 ;; ?? + :relative-y-scale-reciprical 0.0 ;; wrong. ) ) (define-extern get-video-mode (function symbol)) -;; NOTE - Not in actual output, but the first function in video.gc calls it before it's defined (define-extern get-aspect-ratio (function symbol)) -;; TODO - for video, actually defined in hud-classes though! (define-extern set-hud-aspect-ratio (function symbol symbol none)) -;; TODO - for settings (define-extern set-aspect-ratio (function symbol none)) (define-extern set-video-mode (function symbol none)) diff --git a/goal_src/engine/gfx/texture-h.gc b/goal_src/engine/gfx/texture-h.gc index 90bd5e68bb..d62762957c 100644 --- a/goal_src/engine/gfx/texture-h.gc +++ b/goal_src/engine/gfx/texture-h.gc @@ -5,36 +5,54 @@ ;; name in dgo: texture-h ;; dgos: GAME, ENGINE +;; The texture system manages: +;; - VRAM allocation and uploads +;; - the texture page directory +;; - adgif shaders +;; There are a lot more details, see texture.gc for more info + + +;;;;;;;;;;;;;;;;;;;;;; +;; Texture Control +;;;;;;;;;;;;;;;;;;;;;; + +;; There are different kinds of texture pages for the different renderers (defenum tpage-kind :type uint32 :bitfield #f - (tfrag 0) - (pris 1) - (shrub 2) - (alpha 3) - (water 4) + (tfrag 0) ;; background + (pris 1) ;; foreground + (shrub 2) ;; shrubs/sprites + (alpha 3) ;; effects + (water 4) ;; non-ocean water (fj rivers, water near farmer) ) -;; mask for different texture things. -;; these are the ones that will be displayed in the menu +;; bitmask for enabled tpage-kinds (changed in debug menu) (define *texture-enable-user-menu* #x1f) -;; enabled textures. +;; enabled textures (drawable.gc updates this from reading *texture-enable-user-menu*) (define *texture-enable-user* 0) +;; Any individual texture can be uniquely identified with a texture-id. (deftype texture-id (uint32) - ((index uint16 :offset 8 :size 12) - (page uint16 :offset 20 :size 12) + ((index uint16 :offset 8 :size 12) ;; index of texture in its tpage + (page uint16 :offset 20 :size 12) ;; tpage number ) :method-count-assert 9 :size-assert #x4 :flag-assert #x900000004 ) + +;;;;;;;;;;;;;;;;;;; +;; Texture Pool +;;;;;;;;;;;;;;;;;;; + +;; A texture-pool-segment is a chunk of VRAM used to store textures (deftype texture-pool-segment (structure) - ((dest uint32 :offset-assert 0) - (size uint32 :offset-assert 4) + ((dest uint32 :offset-assert 0) ;; VRAM address (4-byte VRAM words) + (size uint32 :offset-assert 4) ;; size in 4-byte VRAM words ) :pack-me :method-count-assert 9 @@ -45,19 +63,28 @@ (declare-type texture-page basic) (declare-type level basic) +;; There is a single texture-pool which manages storing textures in VRAM (deftype texture-pool (basic) - ((top int32 :offset-assert 4) - (cur int32 :offset-assert 8) + ((top int32 :offset-assert 4) ;; seems be 0 always, start of VRAM managed by pool + (cur int32 :offset-assert 8) ;; highest address in use by the pool + + ;; the allocate function is used to add a texture-page to the pool. (allocate-func (function texture-pool texture-page kheap int texture-page) :offset-assert 12) - (font-palette int32 :offset-assert 16) ;; vram word idx + + ;; the location of the color look-up table for font texture (vram word idx) + (font-palette int32 :offset-assert 16) ;; these were reordered + ;; we have 4 segments, but only the near and common are used. (segment-near texture-pool-segment :inline :offset-assert 20) (segment-common texture-pool-segment :inline :offset-assert 28) (segment texture-pool-segment 4 :inline :offset 20) - + + ;; tpages that are not part of level textures are stored here. (common-page texture-page 32 :offset-assert 52) + ;; ?? (common-page-mask int32 :offset-assert 180) + ;; for each pool page, stores the id of the tpage which is currently loaded in VRAM. (ids uint32 126 :offset-assert 184) ) :method-count-assert 23 @@ -67,46 +94,60 @@ (new (symbol type) _type_ 0) (initialize! (_type_) _type_ 9) (print-usage (_type_) _type_ 10) - (dummy-11 (_type_) none 11) + (setup-font-texture! (_type_) none 11) (allocate-defaults! (_type_) none 12) - (login-level-textures (_type_ level int (pointer texture-id)) none 13) ;; loading level... - (add-tex-to-dma! (_type_ level int) none 14) ;; very mysterious arg types. + (login-level-textures (_type_ level int (pointer texture-id)) none 13) + (add-tex-to-dma! (_type_ level int) none 14) (allocate-vram-words! (_type_ int) int 15) (allocate-segment! (_type_ texture-pool-segment int) texture-pool-segment 16) (dummy-17 () none 17) (dummy-18 () none 18) (dummy-19 () none 19) - (dummy-20 (_type_ texture-page) int 20) + (unload! (_type_ texture-page) int 20) (upload-one-common! (_type_) symbol 21) (lookup-boot-common-id (_type_ int) int 22) ) ) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Texture and Texture Page +;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; A record for a texture. +;; The texture can contain multiple levels of detail and also a color lookup table (CLUT) +;; This refers to data stored elsewhere, either in the data of a tpage or VRAM. +;; After a tpage has been allocated, the dest will be the VRAM address of the texture. (deftype texture (basic) ((w int16 :offset-assert 4) + (wu uint16 :offset 4) ;; inline asm read this as u16 (h int16 :offset-assert 6) - (num-mips uint8 :offset-assert 8) - (tex1-control uint8 :offset-assert 9) - (psm gs-psm :offset-assert 10) + (hu uint16 :offset 6) + (num-mips uint8 :offset-assert 8) ;; number of mipmap levels + (tex1-control uint8 :offset-assert 9) ;; ? + (psm gs-psm :offset-assert 10) ;; texture format (mip-shift uint8 :offset-assert 11) - (clutpsm uint16 :offset-assert 12) - (dest uint16 7 :offset-assert 14) - (clutdest uint16 :offset-assert 28) - (width uint8 7 :offset-assert 30) + (clutpsm uint16 :offset-assert 12) ;; color look-up table format + (dest uint16 7 :offset-assert 14) ;; per mip VRAM address + (clutdest uint16 :offset-assert 28) ;; color look-up table location. + (width uint8 7 :offset-assert 30) ;; per mip (name string :offset-assert 40) (size uint32 :offset-assert 44) (uv-dist float :offset-assert 48) - (masks uint32 3 :offset-assert 52) + (masks uint32 3 :offset-assert 52) ) :method-count-assert 9 :size-assert #x40 :flag-assert #x900000040 ) +;; tpages themselves are divided into segments. +;; some renderers may know ahead of time that they don't need all segments +;; and can skip uploading unused texture data. (deftype texture-page-segment (structure) - ((block-data pointer :offset-assert 0) - (size uint32 :offset-assert 4) - (dest uint32 :offset-assert 8) + ((block-data pointer :offset-assert 0) ;; location in EE memory of texture data. + (size uint32 :offset-assert 4) ;; ?? units + (dest uint32 :offset-assert 8) ;; VRAM destination where it will be loaded to. ) :pack-me :method-count-assert 9 @@ -115,16 +156,20 @@ ) (defun texture-mip->segment ((arg0 int) (arg1 int)) + "Unknown, not used." (if (>= 2 arg1) (+ (- -1 arg0) arg1) (max 0 (- 2 arg0))) ) +;; The actual texture-page header +;; After the dynamic array of texture is the actual texture data. +;; This may be thrown away if the texture is permanently in VRAM. (deftype texture-page (basic) - ((info basic :offset-assert 4) + ((info file-info :offset-assert 4) (name basic :offset-assert 8) (id uint32 :offset-assert 12) - (length int32 :offset-assert 16) + (length int32 :offset-assert 16) ;; number of textures. (mip0-size uint32 :offset-assert 20) - (size uint32 :offset-assert 24) + (size uint32 :offset-assert 24) ;; VRAM words (segment texture-page-segment 3 :inline :offset-assert 28) (pad uint32 16 :offset-assert 64) (data texture :dynamic :offset-assert 128) @@ -133,16 +178,28 @@ :size-assert #x80 :flag-assert #xf00000080 (:methods - (relocate (_type_ kheap (pointer uint8)) none :replace 7) - (remove-from-heap (_type_ kheap) _type_ 9) - (get-leftover-block-count (_type_ int int) int 10) - (dummy-11 () none 11) - (relocate-dests! (_type_ int int) none 12) - (add-to-dma-buffer (_type_ dma-buffer int) none 13) - (upload-now! (_type_ int) none 14) - ) + (relocate (_type_ kheap (pointer uint8)) none :replace 7) + (remove-from-heap (_type_ kheap) _type_ 9) + (get-leftover-block-count (_type_ int int) int 10) + (dummy-11 () none 11) + (relocate-dests! (_type_ int int) none 12) + (add-to-dma-buffer (_type_ dma-buffer int) int 13) + (upload-now! (_type_ int) none 14) + ) ) +;;;;;;;;;;;;;;;;;;;;;;; +;; Texture Shaders +;;;;;;;;;;;;;;;;;;;;;;; + +;; The "adgif-shader" is a block of data that can be included in a GS packet +;; to set up GS registers for texturing. +;; There is a linked-list of these per texture that uses the shader-ptr type below + +;; A shader-ptr is a reference to an adgif shader. +;; The trick here is that it can fit into unused space in the GS packet. +;; the A+D format only uses bits 0-72, this fits in 72-96. The use of 96-128 is unknown +;; the shader value must be multiplied by 16 first. (deftype shader-ptr (uint32) ((shader uint32 :offset 8 :size 24)) :method-count-assert 9 @@ -150,6 +207,9 @@ :flag-assert #x900000004 ) +;; This is a dynamic array of shader-ptrs +;; There will be one array per texture-page, and this array will have one entry per texture. +;; These arrays will be allocated by the texture system and stored in level heaps. (deftype texture-link (structure) ((next shader-ptr 1 :offset-assert 0) ) @@ -158,11 +218,12 @@ :flag-assert #x900000004 ) +;; Each texture-page will have a texture-page-dir-entry for it (deftype texture-page-dir-entry (structure) - ((length int16 :offset-assert 0) - (status uint16 :offset-assert 2) - (page texture-page :offset-assert 4) - (link texture-link :offset-assert 8) + ((length int16 :offset-assert 0) ;; number of textures + (status uint16 :offset-assert 2) ;; ?? + (page texture-page :offset-assert 4) ;; the actual texture page + (link texture-link :offset-assert 8) ;; the array of texture-links, per texture. #f if unallocated ) :pack-me :method-count-assert 9 @@ -170,46 +231,96 @@ :flag-assert #x90000000c ) +;; There is a single texture-page-dir with a slot for each texture-page. +;; It's stored on the DVD and loaded with the engine. (deftype texture-page-dir (basic) ((length int32) (entries texture-page-dir-entry 1 :inline) ) (:methods (relocate (_type_ kheap (pointer uint8)) none :replace 7) - (dummy-9 (_type_ kheap) int 9) + (unlink-textures-in-heap! (_type_ kheap) int 9) ) :flag-assert #xa00000014 ) + +;;;;;;;;;;;;;;;;;;;;;; +;; Relocate Later +;;;;;;;;;;;;;;;;;;;;;; + +;; Part of loading textures involves copying some data in EE RAM. +;; It seems to be too slow to as part of tpage login, so its deferred to a second frame. +;; The texture system will set this up, then the level system will do this when there's time. + (deftype texture-relocate-later (basic) - ((memcpy symbol :offset-assert 4) - (dest uint32 :offset-assert 8) - (source uint32 :offset-assert 12) - (move uint32 :offset-assert 16) - (entry texture-page-dir-entry :offset-assert 20) - (page texture-page :offset-assert 24) + ((memcpy symbol :offset-assert 4) ;; set to #t when there's a pending copy + (dest uint32 :offset-assert 8) ;; destination address + (source uint32 :offset-assert 12) ;; source address + (move uint32 :offset-assert 16) ;; size to move + (entry texture-page-dir-entry :offset-assert 20) ;; the entry for the page we're moving + (page texture-page :offset-assert 24) ;; the page header. ) :method-count-assert 9 :size-assert #x1c :flag-assert #x90000001c ) + +;; global relocate info (define *texture-relocate-later* (new 'global 'texture-relocate-later)) (set! (-> *texture-relocate-later* memcpy) #f) + +;; set to #f, will be set by texture-page-dir's relocate method on engine load. (define *texture-page-dir* (the texture-page-dir #f)) +;;;;;;;;;;;;;;;;;;;; +;; ADGIF Shader +;;;;;;;;;;;;;;;;;;;; + +(defenum link-test-flags + :type uint32 + :bitfield #t + ;; note that we start at bit 8 because [0-7] are in use. + + (needs-log-in 8) ;; set if we should attempt to log in, cleared on log-in + (bit-9 9) ;; cleared on log-in + ) + +;; The actual adgif-shader is a 5 quadwords of A+D for GIF PACKED mode. +;; there is some extra data snuck in. (deftype adgif-shader (structure) - ((quad qword 5 :inline :offset 0) - (prims uint64 10 :offset 0) - (tex0 uint64 :offset 0) - (tex1 uint64 :offset 16) - (miptbp1 uint64 :offset 32) - (clamp uint64 :offset 48) - (clamp-reg uint64 :offset 56) - (alpha uint64 :offset 64) - (link-test uint32 :offset 8) - (texture-id uint32 :offset 24) - (next shader-ptr :offset 40) + ((quad qword 5 :score -100 :inline :offset 0) + (prims gs-reg64 10 :score -100 :offset 0) + + ;; tex0, contains texture location, size, format, clut settings + (tex0 gs-tex0 :offset 0) + ;; prims 1 is the register id + ;; prims 1 is shared with the link-test bitfield. + + ;; tex1, more texture information (LOD/MIP setup) + (tex1 gs-tex1 :offset 16) + ;; prims 3 + ;; prims 3 is shared with texture-id + + ;; miptb1, mip addresses/widths (levels 1 - 3) + (miptbp1 gs-miptbp :offset 32) + ;; prims 5 + ;; prims 5 is shared with the next shader-ptr + + ;; clamp, used for texture wrapping + (clamp gs-clamp :offset 48) + (clamp-reg gs-reg64 :offset 56) ;; or prims 7 + + ;; alpha blending. NOTE: this can also be miptbp2 (mip 4+ settings) + (alpha gs-miptbp :offset 64) + ;; prims 9 + + + ;; sneaky overlays + (link-test link-test-flags :offset 8) ;; don't touch lower 8 bits of this + (texture-id texture-id :offset 24) ;; ok to touch all bits + (next shader-ptr :offset 40) ;; don't touch lower 8 bits of this ) :method-count-assert 9 :size-assert #x50 @@ -225,6 +336,13 @@ ) (set! (-> adgif-shader-array heap-base) 80) + +;;;;;;;;;;;;;;;;;;;;;;;; +;; Fixed VRAM +;;;;;;;;;;;;;;;;;;;;;;;; + +;; These are pre-allocated and always in VRAM. + (define *sky-base-vram-word* 0) (define *sky-base-block* 0) (define *sky-base-page* 0) @@ -240,5 +358,9 @@ (defun-extern texture-page-default-allocate texture-pool texture-page kheap int texture-page) -(define-extern texture-page-login (function texture-id function kheap texture-page-dir-entry)) +(define-extern texture-page-login (function texture-id (function texture-pool texture-page kheap int texture-page) kheap texture-page-dir-entry)) (define-extern *texture-pool* texture-pool) +(define-extern lookup-texture-by-id (function texture-id texture)) +(define-extern adgif-shader<-texture-with-update! (function adgif-shader texture adgif-shader)) + +(define-extern level-remap-texture (function texture-id texture-id)) diff --git a/goal_src/engine/gfx/texture.gc b/goal_src/engine/gfx/texture.gc index a139aaabee..ad92c0556b 100644 --- a/goal_src/engine/gfx/texture.gc +++ b/goal_src/engine/gfx/texture.gc @@ -5,6 +5,20 @@ ;; name in dgo: texture ;; dgos: GAME, ENGINE +;; There are three things called pages: +;; - tpage: a collection of textures for a renderer. Different tpages have different sizes. +;; the actual type is named texture-page. +;; - GS hardware page: the actual size of a page in the GS hardware. +;; this is 2048 VRAM words. +;; - Pool page: the page size used by the texture-pool. This is 2x the size of a GS page. + + +;; The layout of VRAM (in 2048 * 4 byte word units) +;; 0 - 320 VRAM managed by texture.gc +;; 320 - 384 first frame buffer +;; 384 - 448 second frame buffer +;; 448 - 512 Z Buffer (+ some font textures in the upper 8 bits) + ;; VRAM can belong to the following categories: ;; - frame/depth buffer (not handled through this system at all) ;; - special "global" VRAM that doesn't use texture, but is allocated through the texture-pool @@ -77,8 +91,8 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; texture-page = file on DVD containing a bunch of textures. -;; they are designed so that you load the TFRAG page, do TFRAG rendering, -;; load the PRIS page, do PRIS rendering, etc. +;; they are designed so that you upload the TFRAG page, do TFRAG rendering, +;; upload the PRIS page, do PRIS rendering, etc. ;; they also contain records of textures. The texture system will update these records ;; to reflect where the textures are actually placed in VRAM. @@ -179,7 +193,7 @@ (defun dma-buffer-add-ref-texture ((buf dma-buffer) (data pointer) (tex-w int) (tex-h int) (tex-format gs-psm)) "Add texture data to a dma buffer. You must first set up the GS transfer to the correct destination. - This just sets IMAGE mode and sends data." + This just sets IMAGE mode and sends data. Doesn't copy the texture into the buffer." ;; get pointer and size (quadwords) (let ((data-ptr (physical-address data)) @@ -554,7 +568,8 @@ "Initialize (or maybe reinitialize) a texture pool." ;; reset allocator (set! (-> obj cur) 0) - ;; I think top is basically unused. + ;; I think top is basically unused, but seems to be the _lowest_ address. + ;; maybe it's the top when VRAM is viewed on the screen. (set! (-> obj top) (-> obj cur)) ;; by default, use the default allocator. (set! (-> obj allocate-func) texture-page-default-allocate) @@ -568,7 +583,7 @@ ) (set! (-> obj common-page-mask) 0) - ;; clear ids. This stores the texture ids that are stored at each "nd page", or 0 if there is junk. + ;; clear ids. This stores the texture ids that are stored at each "pool page", or 0 if there is junk. ;; it is used for the lazy loading system to see if the data is already there. (dotimes (v1-9 160) (set! (-> obj ids v1-9) (the-as uint 0)) @@ -577,8 +592,8 @@ ) (defmethod get-leftover-block-count texture-page ((obj texture-page) (segment-count int) (additional-size int)) - "This returns how many blocks are used in the last page nd-page. - It uses nd-pages, which are 64 blocks or 16 kB." + "This returns how many blocks are used in the last pool page. + It uses pool-pages, which are 64 blocks or 16 kB." (let ((v1-0 additional-size)) (dotimes (a2-1 segment-count) (+! v1-0 (the-as int (-> obj segment a2-1 size))) @@ -607,8 +622,11 @@ segment ) -(defconstant NEAR_SEGMENT_WORDS #x62000) ;; ~1.6 MB -(defconstant COMMON_SEGMENT_WORDS #x1c000) ;; ~0.5 MB +(defconstant COMMON_SEGMENT_WORDS #x1c000) ;; ~0.5 MB, 28 pool pages +(defconstant NEAR_SEGMENT_WORDS #x62000) ;; ~1.6 MB, 98 pool pages +;; total 126 pool pages, like the size of the IDs array +;; IDs 0-27 are common, 28-125 are near. + (defconstant SPECIAL_VRAM_WORDS #x7000) ;; for sky, eyes, ocean, and depth-cue effect rendering. (defmethod allocate-defaults! texture-pool ((obj texture-pool)) @@ -616,6 +634,8 @@ ;; allocate the common and near segments (allocate-segment! obj (-> obj segment-common) COMMON_SEGMENT_WORDS) ;; ~0.5 MB (allocate-segment! obj (-> obj segment-near) NEAR_SEGMENT_WORDS) ;; ~1.6 MB. + + ;; Allocate the random crap (set! *sky-base-vram-word* (allocate-vram-words! obj SPECIAL_VRAM_WORDS)) (set! *sky-base-block* (sar *sky-base-vram-word* 6)) (set! *sky-base-page* (sar *sky-base-vram-word* 11)) @@ -640,6 +660,8 @@ (defmethod remove-from-heap texture-page ((obj texture-page) (seg kheap)) "Remove the texture data from the heap. This can only safely be called immediately after the texture-page is loaded. This is used for textures that always live in VRAM." + + ;; this keeps around the texture objects themselves. (set! (-> seg current) (-> obj segment 0 block-data)) obj ) @@ -649,7 +671,9 @@ can never be reclaimed, and does it immediately. It modifies the texture to point to the allocated VRAM. It also kicks out the texture data (and any data after it) from the heap. - All three segments of the texture page will be be together." + All three segments of the texture page will be together." + + (tex-dbg "default allocate ~A~%" page) ;; loop over the semgments in the texture page. (dotimes (seg-id 3) @@ -667,10 +691,13 @@ ) -(defun texture-page-common-allocate ((pool texture-pool) (page texture-page) (seg kheap) (tpage-id int)) +(defun texture-page-common-allocate ((pool texture-pool) (page texture-page) (heap kheap) (tpage-id int)) "Set up an entire texture page for eventual upload to the common segment of the pool. + The texture will remain in EE memory and will share its slot in VRAM with other textures. All three segments will be together." + (tex-dbg "common allocate ~A~%" page) + ;; bump allocator, starting at the beginning of the common segment. ;; the common segment is reused, so its fine that this overlaps with other textures using common. (let ((s5-0 (-> pool segment-common dest))) @@ -687,15 +714,18 @@ "Allocator for textures at boot time. It will put boot-common textures in common. Once it gets a non-common texture, it will change the allocator to default." + (tex-dbg "boot allocate ~A...~%" page) + ;; see if we got a common texture. This will need to be reuploaded every time it is used. (let ((tex-id (lookup-boot-common-id pool tpage-id))) (cond ((>= tex-id 0) + (tex-dbg " boot allocator got known common-page ~D~%" tex-id) ;; let the common allocator deal with it. (texture-page-common-allocate pool page heap tpage-id) ;; textures that: - ;; - are in the common page (uploaded before use) + ;; - are in the common page (uploaded before use, shared VRAM) ;; - are in common memory (not level-specific) ;; have a record in this common-page array. ;; this helps other code find the appropriate tpage to upload. @@ -703,6 +733,7 @@ (set! (-> pool common-page tex-id) page) ) (else + (tex-dbg " boot allocator doesn't know this one, switching to default allocator~%") ;; textures that aren't on that special list are permanently allocated. ;; once we get one default, switch the allocator to default for the rest. (set! (-> *texture-pool* allocate-func) texture-page-default-allocate) @@ -720,6 +751,7 @@ ;; these functions generate DMA packets to configure the GS for upload ;; the dma-buffer-add-ref-textures function can then be used to actually send texture data. +;; all textures are pre-scrambled to be uploaded in 32-bit mode. (defun upload-vram-data ((buf dma-buffer) (dest int) (tex-data pointer) (tex-h int)) "Add DMA packet to prepare to upload a texture." @@ -1027,10 +1059,10 @@ 0 ) -(defun upload-vram-pages-pris ((pool texture-pool) (segment texture-pool-segment) (page texture-page) (bucket-idx int) (allow-cache-mask int)) - "Upload the entire texture page. If the allow-cache-mask is set for the chunk, it will not upload if there is already - the correct data. Upload will be added to the given bucket for on-screen. - The nth bit of the mask determines if the nth 16-kB chunk can safely use the existing data if the id check passes. +(defun upload-vram-pages-pris ((pool texture-pool) (segment texture-pool-segment) (page texture-page) (bucket-idx int) (needed-mask int)) + "Upload the entire texture page. If the needed-mask is not set, it will not upload those chunks. + Upload will be added to the given bucket for on-screen. + The nth bit of the mask determines if the nth 16-kB chunk is needed in this upload. A 64-bit mask is enough to address the entire common segment, which is the only destination for PRIS textures." (local-vars (tex-data pointer) @@ -1040,7 +1072,7 @@ (first-chunk-idx-to-upload int) (page-id uint) (current-dest-chunk uint) - (allow-cached symbol) + (need-tex symbol) ) (let ((total-upload-size 0)) (let* ((dma-buf (-> *display* frames (-> *display* on-screen) frame global-buf)) @@ -1063,19 +1095,19 @@ (+ tex-dest-base-chunk (the-as uint upload-chunk-idx)) ) ;; can we possibly use existing data in VRAM? - (set! allow-cached - (nonzero? (logand allow-cache-mask (ash 1 upload-chunk-idx))) + (set! need-tex + (nonzero? (logand needed-mask (ash 1 upload-chunk-idx))) ) ;; look for the start of a run of uploads. (if (zero? chunks-to-upload-count) - (when (and (!= (-> pool ids current-dest-chunk) page-id) allow-cached) + (when (and (!= (-> pool ids current-dest-chunk) page-id) need-tex) ;; start of run! (set! first-chunk-idx-to-upload upload-chunk-idx) (set! (-> pool ids current-dest-chunk) page-id) (set! chunks-to-upload-count (+ chunks-to-upload-count 1)) ) (cond - ((or (= (-> pool ids current-dest-chunk) page-id) (not allow-cached)) + ((or (= (-> pool ids current-dest-chunk) page-id) (not need-tex)) ;; end of run. upload the run. (upload-vram-data dma-buf (the int (shl (+ tex-dest-base-chunk (the-as uint first-chunk-idx-to-upload)) 6)) @@ -1180,7 +1212,12 @@ ;; | level 0 private | shared | level 1 private | ;; ---------------------------------------------- -;; the textures for level 0 and level 1 may be as large as (sizeof private) + (sizeof shared). +(defconstant NEAR_PRIVATE_WORDS #x24000) +(defconstant NEAR_SHARED_WORDS #x1a000) +(defconstant NEAR_PER_LEV_WORDS #x3e000) + + +;; the textures for level 0 and level 1 may each be as large as (sizeof private) + (sizeof shared). ;; the private sections remain in VRAM while the level is loaded, but the shared part is ;; reuploaded for each level on each frame. @@ -1194,6 +1231,8 @@ This is used for level 0, which gets the first part of the NEAR segment as private texture memory." + (tex-dbg "near allocate 0 ~A~%" page) + ;; set up segment 2 to be in the near segment (relocate-dests! page (the-as int (-> pool segment-near dest)) 2) @@ -1206,6 +1245,9 @@ ) ;; upload near data, and update the upload cache stuff. + ;; Doesn't this upload more than is needed, and also the shared texture memory? + ;; How does this avoid overwriting the TFRAG textures that might be in use by the + ;; currently rendering frame? (upload-now! page 2) (update-vram-pages pool (-> pool segment-near) page 2) @@ -1221,10 +1263,11 @@ (let ((page-seg-2-size (logand -4096 (the-as int (+ (-> page segment 2 size) 4095))))) (cond - ((< (the-as uint #x24000) page-seg-2-size) + ((< (the-as uint NEAR_PRIVATE_WORDS) page-seg-2-size) ;; we use the shared memory of near. ;; this data should be kept in the heap + ;; 0x90000 = NEAR_PRIVATE * 4 (to convert to bytes) (let ((after-seg-2-data (+ #x90000 (the-as int (-> page segment 2 block-data))))) (let ((seg-2-data (-> page segment 2 block-data))) @@ -1232,13 +1275,16 @@ (set! (-> page segment 2 size) (+ -147456 (the-as int page-seg-2-size))) ;; adjust dest to upload past the "private" part, at the start of shared. - (set! (-> page segment 2 dest) (+ #x24000 (the-as int (-> pool segment-near dest)))) + (set! (-> page segment 2 dest) (+ NEAR_PRIVATE_WORDS (the-as int (-> pool segment-near dest)))) - ;; set the size of the heap as needed to hold only the unlocked texture data. + ;; set the size of the heap as needed to hold only the shared texture data. + ;; this is kinda dangerous. (set! (-> heap current) (&+ (-> page segment 2 block-data) (shl (-> page segment 2 size) 2)) ) + (tex-dbg " TEXTURE RELOCATE LATER dest #x~X src #x~X size #x~X bytes~%" seg-2-data after-seg-2-data + (shl (-> page segment 2 size) 2)) ;; inform the level loader it should do this on the next frame. (set! (-> *texture-relocate-later* memcpy) #t) ;; copy to the start of our data @@ -1251,6 +1297,7 @@ (set! (-> *texture-relocate-later* move) (shl (-> page segment 2 size) 2)) ) (else + (tex-dbg " TEXTURE no relocate later~%") ;; the whole thing fit in the locked near segment! ;; so we can just kick out segment 2 entirely and skip the memcpy stuff. (set! (-> page segment 2 size) (the-as uint 0)) @@ -1264,6 +1311,7 @@ (set! (-> *texture-pool* allocate-func) texture-page-common-allocate) ;; in the level data, there is always code, then TFRAG texture, ;; so mark the code memory end as the start of this page. + ;; (note: this may be wrong on levels with the zoomer hud texture) (set! (-> *level* unknown-level-2 code-memory-end) (the pointer page)) page ) @@ -1275,7 +1323,7 @@ ;; effective size of segment 2, will go in near. (let ((seg2-size (logand -4096 (the-as int (+ (-> page segment 2 size) 4095))))) ;; where to start our near data (somewhere in shared or level 1 private) - (let ((seg2-dest (+ (- #x62000 (the-as int seg2-size)) (-> pool segment-near dest)))) + (let ((seg2-dest (+ (- NEAR_SEGMENT_WORDS (the-as int seg2-size)) (-> pool segment-near dest)))) ;; relocate to point to this point. (relocate-dests! page (the-as int seg2-dest) 2) ) @@ -1294,7 +1342,7 @@ (update-vram-pages pool (-> pool segment-near) page 2) (cond - ((< (the-as uint #x24000) seg2-size) + ((< (the-as uint NEAR_PRIVATE_WORDS) seg2-size) ;; we use the shared part. Kick out only the non-shared texture. ;; it's on th end this time, so no mempcy like in near-allocate-0 (set! (-> page segment 2 size) (+ -147456 (the-as int seg2-size))) @@ -1316,7 +1364,7 @@ (defun texture-page-level-allocate ((pool texture-pool) (page texture-page) (heap kheap) (mode int)) - "Allocator for level textures." + "Allocator for level textures, will pick the appropriate allocator (usually near0/near1)." (let ((common-id (lookup-boot-common-id pool mode))) (cond ((>= common-id 0) @@ -1345,16 +1393,18 @@ (defun texture-page-size-check ((pool texture-pool) (level level) (hide-prints symbol)) - "Check to see if any texture are oversize. Sets bits in the output flag if they are" - (let ((oversize 0)) + "Check to see if any textures in the level are oversize. Sets bits in the output flag if they are" + (let ((oversize 0)) ;; bitfield of oversize kinds (let* ((tfrag-page (-> level texture-page 0)) (tfrag-mip0-size (-> tfrag-page mip0-size)) ) (when tfrag-page - (if (< (the-as uint #x3e000) tfrag-mip0-size) + ;; check that mip0 fits in the per-level max size of the near segment + (if (< (the-as uint NEAR_PER_LEV_WORDS) tfrag-mip0-size) (set! oversize (logior oversize 1)) ) - (if (< (the-as uint #x1c000) (+ (-> tfrag-page segment 0 size) (-> tfrag-page segment 1 size))) + ;; check that the other two mips together fit into common + (if (< (the-as uint COMMON_SEGMENT_WORDS) (+ (-> tfrag-page segment 0 size) (-> tfrag-page segment 1 size))) (set! oversize (logior oversize 1)) ) (when (not hide-prints) @@ -1375,7 +1425,8 @@ ) (let ((pris-page (-> level texture-page 1))) (when pris-page - (if (< (the-as uint #x1c000) (-> pris-page size)) + ;; pris all goes in common. + (if (< (the-as uint COMMON_SEGMENT_WORDS) (-> pris-page size)) (set! oversize (logior oversize 2)) ) (if (not hide-prints) @@ -1390,7 +1441,8 @@ ) (let ((shrub-page (-> level texture-page 2))) (when shrub-page - (if (< (the-as uint #x1c000) (-> shrub-page size)) + ;; shrubs all go in common. + (if (< (the-as uint COMMON_SEGMENT_WORDS) (-> shrub-page size)) (set! oversize (logior oversize 4)) ) (if (not hide-prints) @@ -1405,7 +1457,8 @@ ) (let ((alpha-page (-> level texture-page 3))) (when alpha-page - (if (< (the-as uint #x1c000) (-> alpha-page size)) + ;; alpha's all go in common. + (if (< (the-as uint COMMON_SEGMENT_WORDS) (-> alpha-page size)) (set! oversize (logior oversize 8)) ) (if (not hide-prints) @@ -1420,7 +1473,8 @@ ) (let ((water-page (-> level texture-page 4))) (when water-page - (if (< (the-as uint #x1c000) (-> water-page size)) + ;; water all goes in common. + (if (< (the-as uint COMMON_SEGMENT_WORDS) (-> water-page size)) (set! oversize (logior oversize 16)) ) (if (not hide-prints) @@ -1438,9 +1492,20 @@ ) +;;;;;;;;;;;;;;;;;;; +;; Texture Login +;;;;;;;;;;;;;;;;;;; + +;; During loading/linking/relocation, permanent VRAM textures are uploaded and thrown out of main RAM. +;; But there's more! During level "login", you have to log-in the textures too. +;; The "login" process will check for textures that aren't loaded and try to load them over debug network. +;; It will also link the textures. +;; You _must_ login textures. + (defmethod login-level-textures texture-pool ((obj texture-pool) (level level) (max-page-kind int) (id-array (pointer texture-id))) "Login textures in a level. Only does up to max-page-kind. Set this to water (4) to do all of them. - Also checks sizes." + Also checks sizes. + This is called from level.gc as part of level loading." ;; mark any existing as not loaded. (dotimes (page-idx 9) @@ -1659,31 +1724,1489 @@ (none) ) -(define *texture-pool* (new 'global 'texture-pool)) +(defmethod upload-one-common! texture-pool ((obj texture-pool)) + "Upload the first common texture page that's in in the common-page-mask." + (dotimes (v1-0 32) + (let ((a2-0 (-> obj common-page v1-0))) + (when (and (nonzero? a2-0) ;; known common texture page + (nonzero? (logand (-> obj common-page-mask) (ash 1 v1-0))) ;; in the mask. + ) + ;; upload it! + (upload-vram-pages obj (-> obj segment-common) a2-0 -2 65) + (return #f) + ) + ) + ) + #f + ) -;; temp hack for loading: -(defmethod relocate texture-page ((obj texture-page) (heap kheap) (ptr (pointer uint8))) - (format #t "HACK! removing texture page ~A from level heap~%" (-> obj name)) - (remove-from-heap obj loading-level) +(defmethod add-irq-to-tex-buckets! level ((obj level)) + "Adds a packet that will cause a VIF interrupt to the end of all texture + buckets for a given level. This will trigger a VU1 profiler bar" + (cond + ((zero? (-> obj index)) + ;; use bucket numbers for the 0th level + (let* ((v1-4 (-> *display* frames (-> *display* on-screen) frame global-buf)) + (a2-0 (-> v1-4 base)) + ) + ;; packet macro + (let* ((a0-4 v1-4) + (a1-0 (the-as object (-> a0-4 base))) + ) + ;; continue packet. For some reason we don't put it on the next directly + (set! (-> (the-as dma-packet a1-0) dma) + (new 'static 'dma-tag :id (dma-tag-id cnt)) + ) + (set! (-> (the-as dma-packet a1-0) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a1-0) vif1) (new 'static 'vif-tag :irq #x1)) ;; interrupt + (set! (-> a0-4 base) (&+ (the-as pointer a1-0) 16)) + ) + ;; a next packet, just to make the bucket linking work + (let ((a3-3 (-> v1-4 base))) + (let ((a0-5 (the-as object (-> v1-4 base)))) + (set! (-> (the-as dma-packet a0-5) dma) + (new 'static 'dma-tag :id (dma-tag-id next)) + ) + (set! (-> (the-as dma-packet a0-5) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-5) vif1) (new 'static 'vif-tag)) + (set! (-> v1-4 base) (&+ (the-as pointer a0-5) 16)) + ) + ;; add it + (dma-bucket-insert-tag + (-> *display* frames (-> *display* on-screen) frame bucket-group) + 5 + a2-0 + (the-as (pointer dma-tag) a3-3) + ) + ) + ) + ;; the rest are the same + (let* ((v1-12 (-> *display* frames (-> *display* on-screen) frame global-buf)) + (a2-1 (-> v1-12 base)) + ) + (let* ((a0-14 v1-12) + (a1-4 (the-as object (-> a0-14 base))) + ) + (set! + (-> (the-as dma-packet a1-4) dma) + (new 'static 'dma-tag :id (dma-tag-id cnt)) + ) + (set! (-> (the-as dma-packet a1-4) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a1-4) vif1) (new 'static 'vif-tag :irq #x1)) + (set! (-> a0-14 base) (&+ (the-as pointer a1-4) 16)) + ) + (let ((a3-7 (-> v1-12 base))) + (let ((a0-15 (the-as object (-> v1-12 base)))) + (set! + (-> (the-as dma-packet a0-15) dma) + (new 'static 'dma-tag :id (dma-tag-id next)) + ) + (set! (-> (the-as dma-packet a0-15) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-15) vif1) (new 'static 'vif-tag)) + (set! (-> v1-12 base) (&+ (the-as pointer a0-15) 16)) + ) + (dma-bucket-insert-tag + (-> *display* frames (-> *display* on-screen) frame bucket-group) + 48 + a2-1 + (the-as (pointer dma-tag) a3-7) + ) + ) + ) + (let* + ((v1-20 (-> *display* frames (-> *display* on-screen) frame global-buf)) + (a2-2 (-> v1-20 base)) + ) + (let* ((a0-24 v1-20) + (a1-8 (the-as object (-> a0-24 base))) + ) + (set! + (-> (the-as dma-packet a1-8) dma) + (new 'static 'dma-tag :id (dma-tag-id cnt)) + ) + (set! (-> (the-as dma-packet a1-8) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a1-8) vif1) (new 'static 'vif-tag :irq #x1)) + (set! (-> a0-24 base) (&+ (the-as pointer a1-8) 16)) + ) + (let ((a3-11 (-> v1-20 base))) + (let ((a0-25 (the-as object (-> v1-20 base)))) + (set! + (-> (the-as dma-packet a0-25) dma) + (new 'static 'dma-tag :id (dma-tag-id next)) + ) + (set! (-> (the-as dma-packet a0-25) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-25) vif1) (new 'static 'vif-tag)) + (set! (-> v1-20 base) (&+ (the-as pointer a0-25) 16)) + ) + (dma-bucket-insert-tag + (-> *display* frames (-> *display* on-screen) frame bucket-group) + 19 + a2-2 + (the-as (pointer dma-tag) a3-11) + ) + ) + ) + (let* + ((v1-28 (-> *display* frames (-> *display* on-screen) frame global-buf)) + (a2-3 (-> v1-28 base)) + ) + (let* ((a0-34 v1-28) + (a1-12 (the-as object (-> a0-34 base))) + ) + (set! + (-> (the-as dma-packet a1-12) dma) + (new 'static 'dma-tag :id (dma-tag-id cnt)) + ) + (set! (-> (the-as dma-packet a1-12) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a1-12) vif1) (new 'static 'vif-tag :irq #x1)) + (set! (-> a0-34 base) (&+ (the-as pointer a1-12) 16)) + ) + (let ((a3-15 (-> v1-28 base))) + (let ((a0-35 (the-as object (-> v1-28 base)))) + (set! + (-> (the-as dma-packet a0-35) dma) + (new 'static 'dma-tag :id (dma-tag-id next)) + ) + (set! (-> (the-as dma-packet a0-35) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-35) vif1) (new 'static 'vif-tag)) + (set! (-> v1-28 base) (&+ (the-as pointer a0-35) 16)) + ) + (dma-bucket-insert-tag + (-> *display* frames (-> *display* on-screen) frame bucket-group) + 31 + a2-3 + (the-as (pointer dma-tag) a3-15) + ) + ) + ) + ) + (else + (let* + ((v1-36 (-> *display* frames (-> *display* on-screen) frame global-buf)) + (a2-4 (-> v1-36 base)) + ) + (let* ((a0-44 v1-36) + (a1-16 (the-as object (-> a0-44 base))) + ) + (set! + (-> (the-as dma-packet a1-16) dma) + (new 'static 'dma-tag :id (dma-tag-id cnt)) + ) + (set! (-> (the-as dma-packet a1-16) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a1-16) vif1) (new 'static 'vif-tag :irq #x1)) + (set! (-> a0-44 base) (&+ (the-as pointer a1-16) 16)) + ) + (let ((a3-19 (-> v1-36 base))) + (let ((a0-45 (the-as object (-> v1-36 base)))) + (set! + (-> (the-as dma-packet a0-45) dma) + (new 'static 'dma-tag :id (dma-tag-id next)) + ) + (set! (-> (the-as dma-packet a0-45) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-45) vif1) (new 'static 'vif-tag)) + (set! (-> v1-36 base) (&+ (the-as pointer a0-45) 16)) + ) + (dma-bucket-insert-tag + (-> *display* frames (-> *display* on-screen) frame bucket-group) + 12 + a2-4 + (the-as (pointer dma-tag) a3-19) + ) + ) + ) + (let* + ((v1-44 (-> *display* frames (-> *display* on-screen) frame global-buf)) + (a2-5 (-> v1-44 base)) + ) + (let* ((a0-54 v1-44) + (a1-20 (the-as object (-> a0-54 base))) + ) + (set! + (-> (the-as dma-packet a1-20) dma) + (new 'static 'dma-tag :id (dma-tag-id cnt)) + ) + (set! (-> (the-as dma-packet a1-20) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a1-20) vif1) (new 'static 'vif-tag :irq #x1)) + (set! (-> a0-54 base) (&+ (the-as pointer a1-20) 16)) + ) + (let ((a3-23 (-> v1-44 base))) + (let ((a0-55 (the-as object (-> v1-44 base)))) + (set! + (-> (the-as dma-packet a0-55) dma) + (new 'static 'dma-tag :id (dma-tag-id next)) + ) + (set! (-> (the-as dma-packet a0-55) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-55) vif1) (new 'static 'vif-tag)) + (set! (-> v1-44 base) (&+ (the-as pointer a0-55) 16)) + ) + (dma-bucket-insert-tag + (-> *display* frames (-> *display* on-screen) frame bucket-group) + 51 + a2-5 + (the-as (pointer dma-tag) a3-23) + ) + ) + ) + (let* + ((v1-52 (-> *display* frames (-> *display* on-screen) frame global-buf)) + (a2-6 (-> v1-52 base)) + ) + (let* ((a0-64 v1-52) + (a1-24 (the-as object (-> a0-64 base))) + ) + (set! + (-> (the-as dma-packet a1-24) dma) + (new 'static 'dma-tag :id (dma-tag-id cnt)) + ) + (set! (-> (the-as dma-packet a1-24) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a1-24) vif1) (new 'static 'vif-tag :irq #x1)) + (set! (-> a0-64 base) (&+ (the-as pointer a1-24) 16)) + ) + (let ((a3-27 (-> v1-52 base))) + (let ((a0-65 (the-as object (-> v1-52 base)))) + (set! + (-> (the-as dma-packet a0-65) dma) + (new 'static 'dma-tag :id (dma-tag-id next)) + ) + (set! (-> (the-as dma-packet a0-65) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-65) vif1) (new 'static 'vif-tag)) + (set! (-> v1-52 base) (&+ (the-as pointer a0-65) 16)) + ) + (dma-bucket-insert-tag + (-> *display* frames (-> *display* on-screen) frame bucket-group) + 25 + a2-6 + (the-as (pointer dma-tag) a3-27) + ) + ) + ) + (let* + ((v1-60 (-> *display* frames (-> *display* on-screen) frame global-buf)) + (a2-7 (-> v1-60 base)) + ) + (let* ((a0-74 v1-60) + (a1-28 (the-as object (-> a0-74 base))) + ) + (set! + (-> (the-as dma-packet a1-28) dma) + (new 'static 'dma-tag :id (dma-tag-id cnt)) + ) + (set! (-> (the-as dma-packet a1-28) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a1-28) vif1) (new 'static 'vif-tag :irq #x1)) + (set! (-> a0-74 base) (&+ (the-as pointer a1-28) 16)) + ) + (let ((a3-31 (-> v1-60 base))) + (let ((a0-75 (the-as object (-> v1-60 base)))) + (set! + (-> (the-as dma-packet a0-75) dma) + (new 'static 'dma-tag :id (dma-tag-id next)) + ) + (set! (-> (the-as dma-packet a0-75) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-75) vif1) (new 'static 'vif-tag)) + (set! (-> v1-60 base) (&+ (the-as pointer a0-75) 16)) + ) + (dma-bucket-insert-tag + (-> *display* frames (-> *display* on-screen) frame bucket-group) + 38 + a2-7 + (the-as (pointer dma-tag) a3-31) + ) + ) + ) + ) + ) + 0 (none) ) +;; A small DMA buffer for sending upload-now! textures. +;; These are uploaded outside of the main DMA list. +;; the actual texture data doesn't go in the buffer, just tags to set up the transfer +(define *txt-dma-list* (new 'global 'dma-buffer 4096)) + +(defmethod upload-now! texture-page ((obj texture-page) (arg0 int)) + "Immediately upload the texture-page to the given buffer, using arg0 mode." + (let ((gp-0 *txt-dma-list*)) + ;; Set up the DMA buffer + (let ((v1-0 gp-0)) + (set! (-> v1-0 base) (-> v1-0 data)) + (set! (-> v1-0 end) (&-> v1-0 data-buffer (-> v1-0 allocated-length))) + ) + ;; add the texture to the buffer + (add-to-dma-buffer obj gp-0 arg0) + + ;; DMA -> VIF (direct) -> GIF + (let* ((v1-3 gp-0) + (a0-1 (the-as object (-> v1-3 base))) + ) + (set! (-> (the-as dma-packet a0-1) dma) + (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt)) + ) + (set! (-> (the-as dma-packet a0-1) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-1) vif1) + (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1) + ) + (set! (-> v1-3 base) (&+ (the-as pointer a0-1) 16)) + ) + ;; GIF regs (1) + (let* ((v1-4 gp-0) + (a0-3 (the-as object (-> v1-4 base))) + ) + (set! (-> (the-as gs-gif-tag a0-3) tag) + (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1) + ) + (set! (-> (the-as gs-gif-tag a0-3) regs) + (new 'static 'gif-tag-regs + :regs0 (gif-reg-id a+d) + :regs1 (gif-reg-id a+d) + :regs2 (gif-reg-id a+d) + :regs3 (gif-reg-id a+d) + :regs4 (gif-reg-id a+d) + :regs5 (gif-reg-id a+d) + :regs6 (gif-reg-id a+d) + :regs7 (gif-reg-id a+d) + :regs8 (gif-reg-id a+d) + :regs9 (gif-reg-id a+d) + :regs10 (gif-reg-id a+d) + :regs11 (gif-reg-id a+d) + :regs12 (gif-reg-id a+d) + :regs13 (gif-reg-id a+d) + :regs14 (gif-reg-id a+d) + :regs15 (gif-reg-id a+d) + ) + ) + (set! (-> v1-4 base) (&+ (the-as pointer a0-3) 16)) + ) + + ;; GIF texflush + (let* ((v1-5 gp-0) + (a0-5 (-> v1-5 base)) + ) + (set! (-> (the-as (pointer uint64) a0-5) 0) (the-as uint 1)) + (set! (-> (the-as (pointer gs-reg64) a0-5) 1) (gs-reg64 texflush)) + (set! (-> v1-5 base) (&+ a0-5 16)) + ) + + ;; DMA end (do it ourselves, no buckets here) + (let* ((v1-6 gp-0) + (a0-7 (the-as object (-> v1-6 base))) + ) + (set! + (-> (the-as dma-packet a0-7) dma) + (new 'static 'dma-tag :id (dma-tag-id end)) + ) + (set! (-> (the-as (pointer uint64) a0-7) 1) (the-as uint 0)) + (set! (-> v1-6 base) (&+ (the-as pointer a0-7) 16)) + ) + + ;; send now! + ;; we send this to the GIF, which will basically ignore the + ;; VIF tags (hopefully). + (#cond + (PC_PORT + (format 0 "Skipping upload-now! for ~A sz #x~X/#x~X bytes~%" + obj + (* 4 (-> obj segment 2 size)) + (* 4 NEAR_PRIVATE_WORDS) + ) + ) + (else + (dma-buffer-send-chain (the-as dma-bank-source #x1000a000) gp-0) + ) + ) + ) + ;; sync, wait for upload to complete + (dma-sync (the-as pointer #x1000a000) 0 0) + (none) + ) + +(defmethod add-to-dma-buffer texture-page ((obj texture-page) (dma-buff dma-buffer) (mode int)) + "Helper for upload-now! to upload texture-page to VRAM" + (local-vars (total-size int)) + (let ((v1-0 mode)) + (set! total-size + (cond + ((= v1-0 -3) + ;; upload none + 0 + ) + ((= v1-0 -2) + ;; segment 0, 1 only + (the-as int + (+ (-> obj segment 0 size) + (-> obj segment 1 size) + ) + ) + ) + ((= v1-0 -1) + ;; the whole thing. + (the-as int (-> obj size)) + ) + (else + ;; 0, 1, 2, just segment 0, 1, 2 + (the-as int (-> obj segment mode size)) + ) + ) + ) + ) + + ;; loop over chunks to load + (let* ((start-segment (max 0 mode)) + (chunk-count (* (/ (+ (/ total-size 64) 63) 64) 32)) + (current-dest (shr (-> obj segment start-segment dest) 6)) + (current-data (-> obj segment start-segment block-data)) + ) + (while (> chunk-count 0) + ;; do up to 2048 now + (let ((chunks-now (min 2048 chunk-count))) + ;; vif direct + (let* ((v1-11 dma-buff) + (pkt (the-as dma-packet (-> v1-11 base))) + ) + (set! (-> pkt dma) (new 'static 'dma-tag :qwc #x5 :id (dma-tag-id cnt))) + (set! (-> pkt vif0) (new 'static 'vif-tag)) + (set! (-> pkt vif1) (new 'static 'vif-tag :imm #x5 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-11 base) (&+ (the-as pointer pkt) 16)) + ) + + ;; gs regs + (let* ((v1-12 dma-buff) + (gs-tag (the-as gs-gif-tag (-> v1-12 base))) + ) + (set! (-> gs-tag tag) (new 'static 'gif-tag64 :nloop #x4 :nreg #x1)) + (set! (-> gs-tag regs) (new 'static 'gif-tag-regs :regs0 (gif-reg-id a+d))) + (set! (-> v1-12 base) (&+ (the-as pointer gs-tag) 16)) + ) + + ;; the actual regs + (let* ((v1-13 dma-buff) + (gs-reg-data (-> v1-13 base)) + ) + (set! (-> (the-as (pointer gs-bitbltbuf) gs-reg-data) 0) + (new 'static 'gs-bitbltbuf :dbw #x2 :dbp current-dest) + ) + (set! (-> (the-as (pointer gs-reg64) gs-reg-data) 1) (gs-reg64 bitbltbuf)) + (set! (-> (the-as (pointer gs-trxpos) gs-reg-data) 2) + (new 'static 'gs-trxpos) + ) + (set! (-> (the-as (pointer gs-reg64) gs-reg-data) 3) (gs-reg64 trxpos)) + (set! (-> (the-as (pointer gs-trxreg) gs-reg-data) 4) + (new 'static 'gs-trxreg :rrw #x80 :rrh chunks-now) + ) + (set! (-> (the-as (pointer gs-reg64) gs-reg-data) 5) (gs-reg64 trxreg)) + (set! (-> (the-as (pointer gs-trxdir) gs-reg-data) 6) + (new 'static 'gs-trxdir) + ) + (set! (-> (the-as (pointer gs-reg64) gs-reg-data) 7) (gs-reg64 trxdir)) + (set! (-> v1-13 base) (&+ gs-reg-data 64)) + ) + + ;; add data. + (dma-buffer-add-ref-texture dma-buff current-data 128 chunks-now (gs-psm ct32)) + ) + (+! current-dest 4096) + ;;(set! current-data (&+! #x100000 (the-as int current-data))) + (&+! current-data #x100000) + (+! chunk-count -2048) + ) + ) + total-size + ) + +(defun texture-relocate ((dma-buff dma-buffer) (tex texture) (dest-loc int) (dest-fmt gs-psm) (clut-dst int)) + "Move a texture in VRAM. Unrelated to the texture-relocate-later, which moves textures in RAM. + Will try to move the whole thing, including the clut, assuming you provide a destination for it. + Note that this uses the format/width stuff properly, so it will be slower, but won't scramble your texture." + + ;; loop over mips + (dotimes (mip-level (the-as int (-> tex num-mips))) + ;; size of the current mip. + (let ((mip-w (ash (-> tex w) (- mip-level))) + (mip-h (ash (-> tex h) (- mip-level))) + ) + ;; vif direct + (let* ((t3-2 dma-buff) + (dma-pkt (the-as dma-packet (-> t3-2 base))) + ) + (set! (-> dma-pkt dma) (new 'static 'dma-tag :qwc #x5 :id (dma-tag-id cnt))) + (set! (-> dma-pkt vif0) (new 'static 'vif-tag)) + (set! (-> dma-pkt vif1) (new 'static 'vif-tag :imm #x5 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> t3-2 base) (&+ (the-as pointer dma-pkt) 16)) + ) + + ;; gs reg setup + (let* ((t3-3 dma-buff) + (gs-pkt (the-as gs-gif-tag (-> t3-3 base))) + ) + (set! (-> gs-pkt tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x4)) + (set! (-> gs-pkt regs) + (new 'static 'gif-tag-regs + :regs0 (gif-reg-id a+d) + :regs1 (gif-reg-id a+d) + :regs2 (gif-reg-id a+d) + :regs3 (gif-reg-id a+d) + :regs4 (gif-reg-id a+d) + :regs5 (gif-reg-id a+d) + :regs6 (gif-reg-id a+d) + :regs7 (gif-reg-id a+d) + :regs8 (gif-reg-id a+d) + :regs9 (gif-reg-id a+d) + :regs10 (gif-reg-id a+d) + :regs11 (gif-reg-id a+d) + :regs12 (gif-reg-id a+d) + :regs13 (gif-reg-id a+d) + :regs14 (gif-reg-id a+d) + :regs15 (gif-reg-id a+d) + ) + ) + (set! (-> t3-3 base) (&+ (the-as pointer gs-pkt) 16)) + ) + + ;; regs (bitbltbuf) + (let* ((t3-4 dma-buff) + (t4-4 (-> t3-4 base)) + ) + (set! + (-> (the-as (pointer gs-bitbltbuf) t4-4) 0) + (new 'static 'gs-bitbltbuf + :sbp (-> tex dest mip-level) ;; source VRAM addr + :sbw (-> tex width mip-level) ;; source width + :spsm (the-as int (-> tex psm)) ;; source format + :dbp (/ dest-loc 64) ;; dest location + :dbw (-> tex width mip-level) ;; dest width + :dpsm dest-fmt ;; dest format + ) + ) + (set! (-> (the-as (pointer gs-reg64) t4-4) 1) (gs-reg64 bitbltbuf)) + (set! (-> (the-as (pointer gs-trxpos) t4-4) 2) (new 'static 'gs-trxpos)) + (set! (-> (the-as (pointer gs-reg64) t4-4) 3) (gs-reg64 trxpos)) + (set! (-> (the-as (pointer gs-trxreg) t4-4) 4) (new 'static 'gs-trxreg :rrw mip-w :rrh mip-h)) + (set! (-> (the-as (pointer gs-reg64) t4-4) 5) (gs-reg64 trxreg)) + (set! (-> (the-as (pointer gs-trxdir) t4-4) 6) (new 'static 'gs-trxdir :xdir #x2)) + (set! (-> (the-as (pointer gs-reg64) t4-4) 7) (gs-reg64 trxdir)) + (set! (-> t3-4 base) (&+ t4-4 64)) + ) + ) + (set! (-> tex dest mip-level) (the-as uint (/ dest-loc 64))) + ) + + ;; transfer CLUT, if dst is given + (cond + ((< clut-dst 0) + ;; no dest, don't do anything + ) + ((= (-> tex psm) (gs-psm mt4)) + ;; case for mt4 format texture + (let* ((v1-7 dma-buff) + (a2-2 (the-as object (-> v1-7 base))) + ) + (set! (-> (the-as dma-packet a2-2) dma) (new 'static 'dma-tag :qwc #x5 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-2) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-2) vif1) (new 'static 'vif-tag :imm #x5 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-7 base) (&+ (the-as pointer a2-2) 16)) + ) + (let* ((v1-8 dma-buff) + (a2-4 (the-as object (-> v1-8 base))) + ) + (set! (-> (the-as gs-gif-tag a2-4) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x4)) + (set! + (-> (the-as gs-gif-tag a2-4) regs) + (new 'static 'gif-tag-regs + :regs0 (gif-reg-id a+d) + :regs1 (gif-reg-id a+d) + :regs2 (gif-reg-id a+d) + :regs3 (gif-reg-id a+d) + :regs4 (gif-reg-id a+d) + :regs5 (gif-reg-id a+d) + :regs6 (gif-reg-id a+d) + :regs7 (gif-reg-id a+d) + :regs8 (gif-reg-id a+d) + :regs9 (gif-reg-id a+d) + :regs10 (gif-reg-id a+d) + :regs11 (gif-reg-id a+d) + :regs12 (gif-reg-id a+d) + :regs13 (gif-reg-id a+d) + :regs14 (gif-reg-id a+d) + :regs15 (gif-reg-id a+d) + ) + ) + (set! (-> v1-8 base) (&+ (the-as pointer a2-4) 16)) + ) + (let* ((v1-9 dma-buff) + (a2-6 (-> v1-9 base)) + ) + (set! + (-> (the-as (pointer gs-bitbltbuf) a2-6) 0) + (new 'static 'gs-bitbltbuf + :sbw #x1 + :dbw #x1 + :dpsm (-> tex clutpsm) + :dbp (/ clut-dst 64) + :spsm (-> tex clutpsm) + :sbp (-> tex clutdest) + ) + ) + (set! (-> (the-as (pointer gs-reg64) a2-6) 1) (gs-reg64 bitbltbuf)) + (set! (-> (the-as (pointer gs-trxpos) a2-6) 2) (new 'static 'gs-trxpos)) + (set! (-> (the-as (pointer gs-reg64) a2-6) 3) (gs-reg64 trxpos)) + (set! + (-> (the-as (pointer gs-trxreg) a2-6) 4) + (new 'static 'gs-trxreg :rrw #x8 :rrh #x2) + ) + (set! (-> (the-as (pointer gs-reg64) a2-6) 5) (gs-reg64 trxreg)) + (set! + (-> (the-as (pointer gs-trxdir) a2-6) 6) + (new 'static 'gs-trxdir :xdir #x2) + ) + (set! (-> (the-as (pointer gs-reg64) a2-6) 7) (gs-reg64 trxdir)) + (set! (-> v1-9 base) (&+ a2-6 64)) + ) + (set! (-> tex clutdest) (the-as uint (/ clut-dst 64))) + ) + ((= (-> tex psm) (gs-psm mt8)) + ;; 8-bit index + (let* ((v1-13 dma-buff) + (a2-9 (the-as object (-> v1-13 base))) + ) + (set! + (-> (the-as dma-packet a2-9) dma) + (new 'static 'dma-tag :qwc #x5 :id (dma-tag-id cnt)) + ) + (set! (-> (the-as dma-packet a2-9) vif0) (new 'static 'vif-tag)) + (set! + (-> (the-as dma-packet a2-9) vif1) + (new 'static 'vif-tag :imm #x5 :cmd (vif-cmd direct) :msk #x1) + ) + (set! (-> v1-13 base) (&+ (the-as pointer a2-9) 16)) + ) + (let* ((v1-14 dma-buff) + (a2-11 (the-as object (-> v1-14 base))) + ) + (set! + (-> (the-as gs-gif-tag a2-11) tag) + (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x4) + ) + (set! + (-> (the-as gs-gif-tag a2-11) regs) + (new 'static 'gif-tag-regs + :regs0 (gif-reg-id a+d) + :regs1 (gif-reg-id a+d) + :regs2 (gif-reg-id a+d) + :regs3 (gif-reg-id a+d) + :regs4 (gif-reg-id a+d) + :regs5 (gif-reg-id a+d) + :regs6 (gif-reg-id a+d) + :regs7 (gif-reg-id a+d) + :regs8 (gif-reg-id a+d) + :regs9 (gif-reg-id a+d) + :regs10 (gif-reg-id a+d) + :regs11 (gif-reg-id a+d) + :regs12 (gif-reg-id a+d) + :regs13 (gif-reg-id a+d) + :regs14 (gif-reg-id a+d) + :regs15 (gif-reg-id a+d) + ) + ) + (set! (-> v1-14 base) (&+ (the-as pointer a2-11) 16)) + ) + (let* ((v1-15 dma-buff) + (a2-13 (-> v1-15 base)) + ) + (set! + (-> (the-as (pointer gs-bitbltbuf) a2-13) 0) + (new 'static 'gs-bitbltbuf + :sbw #x2 + :dbw #x2 + :dpsm (-> tex clutpsm) + :dbp (/ clut-dst 64) + :spsm (-> tex clutpsm) + :sbp (-> tex clutdest) + ) + ) + (set! (-> (the-as (pointer gs-reg64) a2-13) 1) (gs-reg64 bitbltbuf)) + (set! (-> (the-as (pointer gs-trxpos) a2-13) 2) (new 'static 'gs-trxpos)) + (set! (-> (the-as (pointer gs-reg64) a2-13) 3) (gs-reg64 trxpos)) + (set! + (-> (the-as (pointer gs-trxreg) a2-13) 4) + (new 'static 'gs-trxreg :rrw #x10 :rrh #x10) + ) + (set! (-> (the-as (pointer gs-reg64) a2-13) 5) (gs-reg64 trxreg)) + (set! + (-> (the-as (pointer gs-trxdir) a2-13) 6) + (new 'static 'gs-trxdir :xdir #x2) + ) + (set! (-> (the-as (pointer gs-reg64) a2-13) 7) (gs-reg64 trxdir)) + (set! (-> v1-15 base) (&+ a2-13 64)) + ) + (set! (-> tex clutdest) (the-as uint (/ clut-dst 64))) + ) + ) + + ;; update texture to have the new format. + (set! (-> tex psm) dest-fmt) + dma-buff + ) + +;; The font texture is a special case. +(define-perm *font-texture* texture #f) + +(defmethod setup-font-texture! texture-pool ((obj texture-pool)) + "Move the font textures to the upper 8-bits of the depth buffer." + (local-vars (heap-before-font-tex int) (clut-dest-addr int)) + ;; we reserved some space for the CLUT earlier. I guess it didn't fit in the depth buffer too + (let ((font-clut (-> obj font-palette))) + ;; we're going to try to find the font texture + (set! heap-before-font-tex (-> obj cur)) + (set! clut-dest-addr (/ font-clut 64)) + + ;; find the font texture. + (set! *font-texture* (lookup-texture-by-id (new 'static 'texture-id :index #x1 :page #x4fe))) + ;; log in the font texture. I believe the point of this is to get the start of the + ;; texture _page_, which may have stuff in it before the index 1 texture. + (let ((main-font-tx (texture-page-login + (new 'static 'texture-id :index #x1 :page #x4fe) + texture-page-default-allocate + global + ) + ) + ) + + ;; if we have the font texture after log-in, then set our heap marker to before it. + ;; resetting the heap to here would kick + (if (and main-font-tx (-> main-font-tx page)) + (set! heap-before-font-tex + (the-as int (-> main-font-tx page segment 0 dest)) + ) + ) + ;; clear the temp texture DMA list + (let ((dma-buff *txt-dma-list*)) + (let ((v1-6 dma-buff)) + (set! (-> v1-6 base) (-> v1-6 data)) + (set! (-> v1-6 end) (&-> v1-6 data-buffer (-> v1-6 allocated-length))) + ) + + ;; relocate the font + (let ((font-tx-1 *font-texture*) ;; texture 1 + (font-tx-1-dest #xe0000) ;; the depth buffer + (font-tx-1-fmt (gs-psm mt4hl)) ;; 4-bit, using 4 of the 8 free bits of z24 + ) + ;; do the relocation! + (texture-relocate + dma-buff + font-tx-1 + font-tx-1-dest + font-tx-1-fmt + font-clut + ) + ;; tell the font system that we put the texture here. + (font-set-tex0 + (the-as (pointer gs-tex0) (-> *font-work* small-font-lo-tmpl)) + font-tx-1 + (the-as uint font-tx-1-dest) + (the-as uint font-tx-1-fmt) + (the-as uint clut-dest-addr) + ) + ) + (let ((font-tx-0 (lookup-texture-by-id (new 'static 'texture-id :page #x4fe))) + (font-tx-0-dest #xe0000) + (font-tx-0-fmt (gs-psm mt4hh)) + ) + (texture-relocate + dma-buff + font-tx-0 + font-tx-0-dest + font-tx-0-fmt + font-clut + ) + (font-set-tex0 + (the-as (pointer gs-tex0) (-> *font-work* small-font-hi-tmpl)) + font-tx-0 + (the-as uint font-tx-0-dest) + (the-as uint font-tx-0-fmt) + (the-as uint clut-dest-addr) + ) + ) + (let ((font-tx-3 (lookup-texture-by-id (new 'static 'texture-id :index #x3 :page #x4fe))) + (font-tx-3-dest #xe6000) + (font-tx-3-fmt (gs-psm mt4hl)) + ) + (texture-relocate + dma-buff + font-tx-3 + font-tx-3-dest + font-tx-3-fmt + font-clut + ) + (font-set-tex0 + (the-as (pointer gs-tex0) (-> *font-work* large-font-lo-tmpl)) + font-tx-3 + (the-as uint font-tx-3-dest) + (the-as uint font-tx-3-fmt) + (the-as uint clut-dest-addr) + ) + (set! font-tx-3 (lookup-texture-by-id (new 'static 'texture-id :index #x2 :page #x4fe))) + (set! font-tx-3-dest #xe6000) + (set! font-tx-3-fmt (gs-psm mt4hh)) + (texture-relocate + dma-buff + font-tx-3 + font-tx-3-dest + font-tx-3-fmt + font-clut + ) + (font-set-tex0 + (the-as (pointer gs-tex0) (-> *font-work* large-font-hi-tmpl)) + font-tx-3 + (the-as uint font-tx-3-dest) + (the-as uint font-tx-3-fmt) + (the-as uint clut-dest-addr) + ) + ) + + ;; texflush + (let* ((v1-15 dma-buff) + (a0-18 (the-as object (-> v1-15 base))) + ) + (set! + (-> (the-as dma-packet a0-18) dma) + (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt)) + ) + (set! (-> (the-as dma-packet a0-18) vif0) (new 'static 'vif-tag)) + (set! + (-> (the-as dma-packet a0-18) vif1) + (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1) + ) + (set! (-> v1-15 base) (&+ (the-as pointer a0-18) 16)) + ) + (let* ((v1-16 dma-buff) + (a0-20 (the-as object (-> v1-16 base))) + ) + (set! + (-> (the-as gs-gif-tag a0-20) tag) + (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1) + ) + (set! + (-> (the-as gs-gif-tag a0-20) regs) + (new 'static 'gif-tag-regs + :regs0 (gif-reg-id a+d) + :regs1 (gif-reg-id a+d) + :regs2 (gif-reg-id a+d) + :regs3 (gif-reg-id a+d) + :regs4 (gif-reg-id a+d) + :regs5 (gif-reg-id a+d) + :regs6 (gif-reg-id a+d) + :regs7 (gif-reg-id a+d) + :regs8 (gif-reg-id a+d) + :regs9 (gif-reg-id a+d) + :regs10 (gif-reg-id a+d) + :regs11 (gif-reg-id a+d) + :regs12 (gif-reg-id a+d) + :regs13 (gif-reg-id a+d) + :regs14 (gif-reg-id a+d) + :regs15 (gif-reg-id a+d) + ) + ) + (set! (-> v1-16 base) (&+ (the-as pointer a0-20) 16)) + ) + (let* ((v1-17 dma-buff) + (a0-22 (-> v1-17 base)) + ) + (set! (-> (the-as (pointer uint64) a0-22) 0) (the-as uint 1)) + (set! (-> (the-as (pointer gs-reg64) a0-22) 1) (gs-reg64 texflush)) + (set! (-> v1-17 base) (&+ a0-22 16)) + ) + + ;; end of DMA + (let* ((v1-18 dma-buff) + (a0-24 (the-as object (-> v1-18 base))) + ) + (set! + (-> (the-as dma-packet a0-24) dma) + (new 'static 'dma-tag :id (dma-tag-id end)) + ) + (set! (-> (the-as (pointer uint64) a0-24) 1) (the-as uint 0)) + (set! (-> v1-18 base) (&+ (the-as pointer a0-24) 16)) + ) + + ;; send and sync! VIF tags are probably ignored. + (#cond + (PC_PORT + (format 0 "Skipping dma-buffer-send-chain to relocate font texture~%") + ) + (else + (dma-buffer-send-chain (the-as dma-bank-source #x10009000) dma-buff) + ) + ) + ) + (dma-sync (the-as pointer #x10009000) 0 0) + + ;; try to kick out the font texture + (if (and main-font-tx ;; we found it + (-> main-font-tx page) ;; directory has it + (= (-> obj cur) (+ heap-before-font-tex (the-as int (-> main-font-tx page size)))) ;; not killing other stuff + ) + (set! (-> obj cur) heap-before-font-tex) ;; kick first copy out of VRAM! + ;; or, if we failed, complain. + (format 0 "ERROR: could not resize heap to remove gamefont.~%") + ) + ) + ) + 0 + (none) + ) + +;; The texture page directory is a list of all texture pages. +;; It is actually stored in the dir-tpages.o object file, which is pre-populated with lengths. + (defmethod asize-of texture-page-dir ((obj texture-page-dir)) - (the-as int - (+ (-> texture-page-dir size) (the-as uint (* 12 (+ (-> obj length) -1)))) - ) + "Get the size in memory of a texture-page-dir" + (the-as int (+ (-> texture-page-dir size) (the-as uint (* 12 (+ (-> obj length) -1))))) ) (defmethod length texture-page-dir ((obj texture-page-dir)) + "Get the number of tpages in the texture-page-dir" (-> obj length) ) (defmethod relocate texture-page-dir ((obj texture-page-dir) (arg0 kheap) (arg1 (pointer uint8))) + "Load a texture-page-dir" + ;; just set the global. + (tex-dbg "Loaded texture-page-dir ~A with ~D entries~%" obj (-> obj length)) (set! *texture-page-dir* obj) (none) ) +(defmethod relocate-dests! texture-page ((obj texture-page) (new-dest int) (seg-id int)) + "Update a texture-page so all the textures point to a new location" + (let ((v1-0 (shr new-dest 6)) + (dst-block (shr (-> obj segment seg-id dest) 6)) + ) + (when (!= v1-0 dst-block) ;; skip if already correct + (dotimes (tex-id (-> obj length)) ;; iterate through all textures + (when (-> obj data tex-id) ;; only if we have a texture + (let* ((tex (-> obj data tex-id)) + (num-mips (-> tex num-mips)) + ) + ;; (tex-dbg " relocate-dests! ~A~%" tex) + + ;; relocate clut + (if (zero? seg-id) + (set! (-> tex clutdest) (+ (- (-> tex clutdest) dst-block) (the-as uint v1-0))) + ) + + ;; move the texture data for each mip level + (dotimes (mip-id (the-as int num-mips)) + (let ((t4-0 mip-id) + (t5-0 num-mips) + ) + (if (= seg-id (if (>= (the-as uint 2) t5-0) + (+ (- -1 t4-0) (the-as int t5-0)) + (max 0 (- 2 t4-0)) + ) + ) + (set! (-> tex dest mip-id) + (+ (- (-> tex dest mip-id) dst-block) (the-as uint v1-0)) + ) + ) + ) + ) + ) + ) + ) + (set! (-> obj segment seg-id dest) (the-as uint new-dest)) + ) + ) + (none) + ) + +(defmethod relocate texture-page ((obj texture-page) (arg0 kheap) (arg1 (pointer uint8))) + "Add to VRAM and allocate links" + (tex-dbg "loaded tpage ~A ~A ~A ~A ~A~%" obj + (-> obj info file-name) + (-> obj info maya-file-name) + (-> obj info tool-debug) + (-> obj info mdb-file-name)) + (local-vars (s4-0 texture-page-dir-entry)) + (cond + ((or (not obj) + (not (file-info-correct-version? (-> obj info) (file-kind tpage) 0)) + ) + ;; bad file + (set! obj (the-as texture-page #f)) + ) + ((begin + (let ((v1-2 (-> *level* unknown-level-2))) ;; loading/linking level + (tex-dbg " tpage is with level ~A~%" v1-2) + (when v1-2 + ;; add us to the loading level's tpages + (set! (-> v1-2 loaded-texture-page (-> v1-2 loaded-texture-page-count)) + obj + ) + (+! (-> v1-2 loaded-texture-page-count) 1) + ) + ) + ;; set our dests for the 3 segments being in order + (set! (-> obj segment 1 dest) (-> obj segment 0 size)) + (set! (-> obj segment 2 dest) (+ (-> obj segment 0 size) (-> obj segment 1 size))) + + ;; grab our tpage dir entry + (let ((a3-0 (-> obj id))) + (set! s4-0 (-> *texture-page-dir* entries a3-0)) + (set! (-> *texture-relocate-later* memcpy) #f) + + ;; allocate! + ((-> *texture-pool* allocate-func) + *texture-pool* + obj + arg0 + (the-as int a3-0) + ) + ) + ;; the actual condition + (not (-> *texture-relocate-later* memcpy)) + ) + ;; if no relocate later memcpy, then we allocate links + (set! (-> s4-0 page) obj) + (if (not (-> s4-0 link)) + (set! (-> s4-0 link) + (the-as + texture-link + (malloc 'loading-level (* (max (-> s4-0 length) (-> obj length)) 4)) + ) + ) + ) + ) + (else + ;; yes memcpy, we can't allocate on the heap. + (let ((v1-19 *texture-relocate-later*)) + (set! (-> v1-19 entry) s4-0) + (set! (-> v1-19 page) obj) + ) + ) + ) + (none) + ) + + +(defun relocate-later () + "Level loader will call this. At this point, the data is kicked out" + (let ((gp-0 *texture-relocate-later*)) + (let ((s5-0 (-> gp-0 entry)) + (s4-0 (-> gp-0 page)) + ) + ;; do this first, before allocating + (ultimate-memcpy + (the-as pointer (-> gp-0 dest)) + (the-as pointer (-> gp-0 source)) + (-> gp-0 move) + ) + (set! (-> s5-0 page) s4-0) + ;; now safe to allocate links! + (if (not (-> s5-0 link)) + (set! (-> s5-0 link) + (the-as + texture-link + (malloc 'loading-level (* (max (-> s5-0 length) (-> s4-0 length)) 4)) + ) + ) + ) + ) + (set! (-> gp-0 memcpy) #f) + ) + #f + ) + +(defun texture-page-login ((id texture-id) (alloc-func (function texture-pool texture-page kheap int texture-page)) (heap kheap)) + "Return the tpage-dir entry for the given texture. + Load if from the debug network if its not loaded. Return #f if it doesn't work" + + ;; make sure its a valid entry + (when (and (nonzero? (-> id page)) + (< (the-as uint (-> id page)) (the-as uint (-> *texture-page-dir* length))) + ) + ;; look up current entry + (let ((dir-entry (-> *texture-page-dir* entries (the-as uint (-> id page))))) + (when (not (-> dir-entry page)) + ;; no, we don't have it. + ;; set a new allocation function + (let ((old-alloc-func (-> *texture-pool* allocate-func))) + (set! (-> *texture-pool* allocate-func) alloc-func) + ;; generate a file name + (let* ((file-name (make-file-name + (file-kind tpage) + (the-as string (* (-> id page) 8)) ;; int -> binteger, later prined with ~S + 0 + #f + ) + ) + ;; and load it! The loado links but doesn't execute + (s2-0 (the-as texture-page (loado file-name heap))) + ) + ;; if we loaded, relocate! + (if s2-0 + (relocate s2-0 heap (charp-basename (-> file-name data))) + ) + ) + (set! (-> *texture-pool* allocate-func) old-alloc-func) + ) + ) + dir-entry + ) + ) + ) + +(defun lookup-texture-by-id ((arg0 texture-id)) + "Look up a texture by ID, loading it from debug network if its not loaded. + Default allocates if it has to load, so it will permanently use VRAM" + (let ((v1-0 (texture-page-login arg0 texture-page-default-allocate loading-level))) + (if (and v1-0 (< (-> arg0 index) (the-as uint (-> v1-0 page length)))) + (-> v1-0 page data (-> arg0 index)) + ) + ) + ) + +(defmethod unload! texture-pool ((obj texture-pool) (arg0 texture-page)) + "Unload the texture from the directory" + (local-vars (a0-2 int)) + (let ((v1-0 *texture-page-dir*)) + ;; iterate through all textures + (dotimes (a0-1 (-> v1-0 length)) + ;; found it! + (if (= arg0 (-> v1-0 entries a0-1 page)) + (begin + (set! a0-2 a0-1) + (goto cfg-7) + ) + ) + ) + (set! a0-2 -1) + (label cfg-7) + ;; remove + (when (>= a0-2 0) + (set! (-> v1-0 entries a0-2 page) #f) + (set! (-> v1-0 entries a0-2 link) #f) + ) + ) + 0 + ) + +;; debug menu shader stuff +(define *shader-list* '()) +(define *edit-shader* 0) + +(defun link-texture-by-id ((arg0 texture-id) (arg1 adgif-shader)) + "Link the given adgif shader to the texture with the given ID" + (when (not (or (zero? (-> arg0 page)) + (>= (the-as uint (-> arg0 page)) + (the-as uint (-> *texture-page-dir* length)) + ) + ) + ) + ;; look up entry + (let ((s4-0 (-> *texture-page-dir* entries (the-as uint (-> arg0 page))))) + ;; allocate if needed. + (if (not (-> s4-0 link)) + (set! (-> s4-0 link) + (the-as texture-link (malloc 'loading-level (* (-> s4-0 length) 4))) + ) + ) + (when (< (-> arg0 index) (the-as uint (-> s4-0 length))) + ;; push to head of the list. + (set! (-> arg1 next shader) (-> s4-0 link next (-> arg0 index) shader)) + (set! (-> s4-0 link next (-> arg0 index) shader) + (shr (the-as uint arg1) 4) + ) + ) + s4-0 + ) + ) + ) + +(defmethod unlink-textures-in-heap! texture-page-dir ((obj texture-page-dir) (heap kheap)) + "Remove adgif shaders that are in the given heap" + (local-vars (dist-past-end uint)) + (let ((mem-start (-> heap base)) + (mem-end (-> heap top-base)) + ) + ;; iterate over all entries in the director + (dotimes (entry-idx (-> obj length)) + (let* ((entry (-> obj entries entry-idx)) + (tex-page (-> entry page)) + (link-arr (-> entry link next)) + (tex-count (min (-> tex-page length) (-> entry length))) + ) + 0 + (when link-arr + ;; when we have an allocate link array, loop over all textures + (dotimes (tex-idx tex-count) + (let ((link-slot (&-> link-arr 0)) + (shader (the-as adgif-shader (* (-> link-arr 0 shader) 16))) + ) + (while (nonzero? (the-as int shader)) + ;; got a shader, lets see if we should unlink it + ;; some clever branching here: + ;; branch to cfg-7 if we're below mem start + (b! (< (the-as int (- (the-as int shader) (the-as int mem-start))) 0) + cfg-7 + :delay (set! dist-past-end (the-as uint (- (the-as int shader) (the int mem-end)))) + ) + ;; in the delay slot of the above branch we determined our distance from end of memory + (b! (>= (the-as int dist-past-end) 0) cfg-7 :delay (nop!)) + ;; in here, we're in the heap. + ;; splice this adgif shader out. + (let ((t4-2 (-> shader next))) + (b! #t cfg-8 :delay (set! (-> link-slot 0) t4-2)) + ) + (label cfg-7) + ;; only advance link slot if we didn't splice + (set! link-slot (&-> shader next)) + (label cfg-8) + ;; move on to the next shader, this should work if we spliced or not. + (set! shader (the-as adgif-shader (* (-> shader next shader) 16))) + ) ;; end loop over linked list + ) + + (set! link-arr (&-> link-arr 1)) + ) ;; end loop over textures + ) + ) + ) ;; end loop over tpages + ) + 0 + ) + +;; TODO method 9 + +(defun adgif-shader<-texture! ((arg0 adgif-shader) (arg1 texture)) + "Set up an ADGIF shader from a texture." + ;; tex1 + (set! (-> arg0 tex1 mxl) (+ (-> arg1 num-mips) -1)) + (set! (-> arg0 tex1 l) (-> arg1 mip-shift)) + (set! (-> arg0 tex1 mmag) (logand (-> arg1 tex1-control) 1)) + (set! (-> arg0 tex1 mmin) (shr (-> arg1 tex1-control) 1)) + ;; tex0 + (set! (-> arg0 tex0) + (new 'static 'gs-tex0 + :tcc #x1 + :cld #x1 + :cpsm (-> arg1 clutpsm) + :cbp (-> arg1 clutdest) + :tfx (-> arg0 tex0 tfx) + :th (log2 (-> arg1 h)) + :tw (log2 (-> arg1 w)) + :tbw (-> arg1 width 0) + :tbp0 (-> arg1 dest 0) + :psm (the-as int (-> arg1 psm)) + ) + ) + ;; mitptbp1 + (set! (-> arg0 miptbp1) + (new 'static 'gs-miptbp + :tbp1 (-> arg1 dest 1) + :tbw1 (-> arg1 width 1) + :tbp2 (-> arg1 dest 2) + :tbw2 (-> arg1 width 2) + :tbp3 (-> arg1 dest 3) + :tbw3 (-> arg1 width 3) + ) + ) + + ;; hack - if we have a lot of mips, set alpha to miptbp. + ;; and modify the adgif thing to have a (miptbp2-1 54) + (when (< (the-as uint 4) (-> arg1 num-mips)) + (set! + (-> arg0 alpha) + (new 'static 'gs-miptbp + :tbp1 (-> arg1 dest 4) + :tbw1 (-> arg1 width 4) + :tbp2 (-> arg1 dest 5) + :tbw2 (-> arg1 width 5) + :tbp3 (-> arg1 dest 6) + :tbw3 (-> arg1 width 6) + ) + ) + ;; 54 = (gs-reg miptbp2-1) + (set! (-> (&-> arg0 quad 4 vector4w z) 0) 54) + ) + arg0 + ) + +(defun adgif-shader-update! ((arg0 adgif-shader) (arg1 texture)) + "Update tex1" + (let ((s5-0 (the int (/ 256.0 (-> arg1 uv-dist)))) + (v1-2 (-> arg0 tex1 l)) + ) + (if (= v1-2 1) + (set! (-> arg0 tex1 k) + (+ (+ (logand (ash s5-0 (- 5 (log2 s5-0))) 31) -350) (* (log2 s5-0) 32)) + ) + (set! (-> arg0 tex1 k) + (+ (+ (logand (ash s5-0 (- 4 (log2 s5-0))) 15) -175) (* (log2 s5-0) 16)) + ) + ) + ) + (none) + ) + +;; TODO adgif-shader<-texture-with-update! + +(defun adgif-shader-login ((shader adgif-shader)) + "If not logged in already, link us and update from texture." + + ;; only do it if we need to + (when (nonzero? (logand (-> shader link-test) (link-test-flags needs-log-in))) + (set! (-> shader link-test) + (logand (lognot (link-test-flags needs-log-in bit-9)) (-> shader link-test)) + ) + ;; remap our texture + (set! (-> shader texture-id) (level-remap-texture (-> shader texture-id))) + ;; link this shader to the tpage dir + (link-texture-by-id (-> shader texture-id) shader) + ;; grab our texture object + (let ((tex (lookup-texture-by-id (-> shader texture-id)))) + (if tex + (adgif-shader<-texture-with-update! shader tex) ;; success, update! + ;; nope, couldn't find the texture, complain. + (format 0 "login could not find texture ~X in shader ~X~%" (-> shader texture-id) shader) + ) + tex + ) + ) + ) + +(defun adgif-shader-login-no-remap ((arg0 adgif-shader)) + "Same as adgif-shader-login, but don't remap our texture id" + (when (nonzero? (logand (-> arg0 link-test) (link-test-flags needs-log-in))) + (set! (-> arg0 link-test) + (logand (lognot (link-test-flags needs-log-in bit-9)) (-> arg0 link-test)) + ) + (link-texture-by-id (-> arg0 texture-id) arg0) + (let ((s5-0 (lookup-texture-by-id (-> arg0 texture-id)))) + (if s5-0 + (adgif-shader<-texture-with-update! arg0 s5-0) + (format 0 "login could not find texture ~X in shader ~X~%" (-> arg0 texture-id) arg0) + ) + s5-0 + ) + ) + ) + +(defun adgif-shader-login-fast ((shader adgif-shader)) + "Like adgif-shader-login, but assumes you've already logged in the texture" + (when (nonzero? (logand (-> shader link-test) (link-test-flags needs-log-in))) + ;; usual remap + (set! (-> shader link-test) + (logand (lognot (link-test-flags needs-log-in bit-9)) (-> shader link-test)) + ) + (set! (-> shader texture-id) (level-remap-texture (-> shader texture-id))) + (let ((tex-id (-> shader texture-id))) + (when (and (nonzero? (-> tex-id page)) + (< (the-as uint (-> tex-id page)) + (the-as uint (-> *texture-page-dir* length)) + ) + ) + ;; grab entry directly + (let ((dir-entry (-> *texture-page-dir* entries (the-as uint (-> tex-id page))))) + ;; and link this shader + (when (and (< (-> tex-id index) (the-as uint (-> dir-entry length))) + (-> dir-entry link) + ) + ;; push + (set! (-> shader next shader) + (-> dir-entry link next (-> tex-id index) shader) + ) + (set! (-> dir-entry link next (-> tex-id index) shader) + (shr (the-as uint shader) 4) + ) + ) + (when (and (-> dir-entry page) + (< (-> tex-id index) (the-as uint (-> dir-entry page length))) + ) + (let ((tex (-> dir-entry page data (-> tex-id index)))) + ;; setup adgif. + (if tex + (adgif-shader<-texture-with-update! shader tex) + ) + tex + ) + ) + ) + ) + ) + ) + ) + +(defun adgif-shader-login-no-remap-fast ((arg0 adgif-shader)) + "Like adgif-shader-login-fast, but no level remap" + (when (nonzero? (logand (-> arg0 link-test) (link-test-flags needs-log-in))) + (set! (-> arg0 link-test) + (logand (lognot (link-test-flags needs-log-in bit-9)) (-> arg0 link-test)) + ) + (let ((v1-4 (-> arg0 texture-id))) + (when (and (nonzero? (-> v1-4 page)) + (< (the-as uint (-> v1-4 page)) + (the-as uint (-> *texture-page-dir* length)) + ) + ) + (let ((a1-7 (-> *texture-page-dir* entries (the-as uint (-> v1-4 page))))) + (when (and (< (-> v1-4 index) (the-as uint (-> a1-7 length))) (-> a1-7 link)) + (set! (-> arg0 next shader) (-> a1-7 link next (-> v1-4 index) shader)) + (set! (-> a1-7 link next (-> v1-4 index) shader) + (shr (the-as uint arg0) 4) + ) + ) + (when (and (-> a1-7 page) + (< (-> v1-4 index) (the-as uint (-> a1-7 page length))) + ) + (let ((gp-0 (-> a1-7 page data (-> v1-4 index)))) + (if gp-0 + (adgif-shader<-texture-with-update! arg0 gp-0) + ) + gp-0 + ) + ) + ) + ) + ) + ) + ) + +(when (not *debug-segment*) + ;; when not debugging, use the "fast" logins. There's no way we can load a texture over the network anyway. + (set! adgif-shader-login adgif-shader-login-fast) + (set! adgif-shader-login-no-remap adgif-shader-login-no-remap-fast) + ) + +(defun adgif-shader<-texture-simple! ((arg0 adgif-shader) (arg1 texture)) + (set! (-> arg0 tex1) (new 'static 'gs-tex1 :mmag #x1 :mmin #x1)) + (set! (-> arg0 tex0 tfx) 0) + #|(set! + (-> arg0 tex0) + (the-as + gs-tex0 + (logand (the-as uint (-> arg0 tex0)) (the-as uint #xffffffe7ffffffff)) + ) + )|# + (if arg1 + (adgif-shader<-texture! arg0 arg1) + ) + (set! (-> arg0 clamp) (new 'static 'gs-clamp :wms #x1 :wmt #x1)) + (set! (-> arg0 alpha) (new 'static 'gs-miptbp :tbp1 #x44)) + (set! (-> arg0 prims 1) (gs-reg64 tex0-1)) + (set! (-> arg0 prims 3) (gs-reg64 tex1-1)) + (set! (-> arg0 prims 5) (gs-reg64 miptbp1-1)) + (set! (-> arg0 clamp-reg) (gs-reg64 clamp-1)) + (set! (-> arg0 prims 9) (gs-reg64 alpha-1)) + arg0 + ) + + + + + + + (defun-debug texture-page-dir-inspect ((dir texture-page-dir) (mode symbol)) (format #t "[~8x] ~A~%" dir (-> dir type)) (let ((pool *texture-pool*)) @@ -1779,3 +3302,11 @@ ) (none) ) + +(defmethod inspect texture-page-dir ((obj texture-page-dir)) + (texture-page-dir-inspect obj #f) + obj + ) + + +(define *texture-pool* (new 'global 'texture-pool)) diff --git a/goal_src/engine/level/level-h.gc b/goal_src/engine/level/level-h.gc index a4324bb1eb..073986ef4f 100644 --- a/goal_src/engine/level/level-h.gc +++ b/goal_src/engine/level/level-h.gc @@ -130,7 +130,7 @@ (vis-self-index int32 :offset-assert 440) (vis-adj-index int32 :offset-assert 444) (vis-buffer uint8 2048 :offset-assert 448) - (mem-usage-block basic :offset-assert 2496) + (mem-usage-block memory-usage-block :offset-assert 2496) (mem-usage int32 :offset-assert 2500) (code-memory-start pointer :offset-assert 2504) (code-memory-end pointer :offset-assert 2508) @@ -144,10 +144,10 @@ (:methods (deactivate (_type_) _type_ 9) (dummy-10 (_type_ int) symbol 10) - (dummy-11 (_type_) none 11) + (add-irq-to-tex-buckets! (_type_) none 11) (unload! (_type_) _type_ 12) (bsp-name (_type_) symbol 13) - (dummy-14 (_type_) none 14) + (dummy-14 (_type_ object) none 14) (dummy-15 (_type_ vector) symbol 15) (dummy-16 (_type_) none 16) (load-continue (_type_) _type_ 17) diff --git a/goal_src/engine/level/level.gc b/goal_src/engine/level/level.gc index 18022fabe2..5dd427d486 100644 --- a/goal_src/engine/level/level.gc +++ b/goal_src/engine/level/level.gc @@ -392,7 +392,7 @@ ) ;; otherwise, copy stuff that needs copying (when (-> *texture-relocate-later* memcpy) - ;; (relocate-later) TODO + (relocate-later) (dgo-load-continue (align64 (-> obj heap current))) (return obj) ) @@ -475,6 +475,7 @@ (let ((s4-0 (kmalloc (-> obj heap) (* 2 1024 1024) (kmalloc-flags align-64 top) "dgo-level-buf-2")) (s5-2 (kmalloc (-> obj heap) (* 2 1024 1024) (kmalloc-flags align-64 top) "dgo-level-buf-2")) ) + (load-dbg " DGO buffers at #x~X #x~X~%" s4-0 s5-2) (set! (-> obj code-memory-start) (-> obj heap current)) (format 0 "-----------> begin load ~A [~S]~%" (-> obj load-name) *temp-string*) (dgo-load-begin *temp-string* s5-2 s4-0 (align64 (-> obj heap current))) @@ -629,16 +630,16 @@ (dotimes (s2-3 (-> s1-2 length)) (let ((s0-2 (-> s1-2 array-data s2-3 envmap-shader))) (when (nonzero? s0-2) - ;;(adgif-shader-login-no-remap s0-2) TODO texture.gc - (set! (-> s0-2 tex1) (the-as uint 96)) - (set! (-> s0-2 clamp) (the-as uint 5)) - (set! (-> s0-2 alpha) (the-as uint 88)) - (set! (-> s0-2 prims 1) (the-as uint 6)) - (set! (-> s0-2 prims 3) (the-as uint 20)) - (set! (-> s0-2 prims 5) (the-as uint 52)) - (set! (-> s0-2 clamp-reg) (the-as uint 8)) - (set! (-> s0-2 prims 9) (the-as uint 66)) - ) + (adgif-shader-login-no-remap s0-2) + (set! (-> s0-2 tex1) (new 'static 'gs-tex1 :mmag #x1 :mmin #x1)) + (set! (-> s0-2 clamp) (new 'static 'gs-clamp :wms #x1 :wmt #x1)) + (set! (-> s0-2 alpha) (new 'static 'gs-miptbp :tbp1 #x58)) + (set! (-> s0-2 prims 1) (gs-reg64 tex0-1)) + (set! (-> s0-2 prims 3) (gs-reg64 tex1-1)) + (set! (-> s0-2 prims 5) (gs-reg64 miptbp1-1)) + (set! (-> s0-2 clamp-reg) (gs-reg64 clamp-1)) + (set! (-> s0-2 prims 9) (gs-reg64 alpha-1)) + ) ) ) (set! (-> level-login-state pos) (the-as uint 0)) @@ -810,12 +811,12 @@ (set! (-> *texture-pool* common-page v1-27) (the-as texture-page 0)) ) ) - (dummy-20 *texture-pool* (-> obj loaded-texture-page s5-1)) + (unload! *texture-pool* (-> obj loaded-texture-page s5-1)) ) ) (set! (-> obj loaded-texture-page-count) 0) - (dummy-9 *texture-page-dir* (-> obj heap)) + (unlink-textures-in-heap! *texture-page-dir* (-> obj heap)) ;; (unlink-part-group-by-heap (-> obj heap)) TODO ; (dotimes (s5-2 2) ; (let ((v1-41 (-> *art-control* buffer s5-2 pending-load-file))) diff --git a/goal_src/engine/load/file-io.gc b/goal_src/engine/load/file-io.gc index 70022a0e2e..16e0b8ccb9 100644 --- a/goal_src/engine/load/file-io.gc +++ b/goal_src/engine/load/file-io.gc @@ -5,6 +5,12 @@ ;; name in dgo: file-io ;; dgos: GAME, ENGINE +;; GOAL File I/O +;; This is mostly not used in the retail game and was more for loading stuff during development. +;; The file-stream is an inefficient way to load data, but is flexible and can load +;; from the CD, or over the network in development. +;; The file-info type is used in actual game data for checking versions. + ;; represents a file that can be read/written, similar to FILE* in C. ;; NOTE: this is a special type in three ways: ;; 1). It is used in the C runtime. This must be kept in sync with kmachine.h's FileStream diff --git a/goal_src/engine/load/loader-h.gc b/goal_src/engine/load/loader-h.gc index 37d89c15d3..9e68d1a849 100644 --- a/goal_src/engine/load/loader-h.gc +++ b/goal_src/engine/load/loader-h.gc @@ -5,6 +5,9 @@ ;; name in dgo: loader-h ;; dgos: GAME, ENGINE +;; This is not well-understood yet, but it is definitely related to streaming animation loading, +;; and possibly art-group stuff. + ;; This type didn't have an inspect method, so these field names are made up. (declare-type art-group basic) (deftype load-dir (basic) diff --git a/goal_src/engine/math/vector-h.gc b/goal_src/engine/math/vector-h.gc index 01430d9e92..235a5668e9 100644 --- a/goal_src/engine/math/vector-h.gc +++ b/goal_src/engine/math/vector-h.gc @@ -5,6 +5,9 @@ ;; name in dgo: vector-h ;; dgos: GAME, ENGINE + +;; Type definitions/inline functions for bit array and vector types. + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; bit array ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/goal_src/engine/ps2/pad.gc b/goal_src/engine/ps2/pad.gc index c6f4dee8fa..9a11a6ab67 100644 --- a/goal_src/engine/ps2/pad.gc +++ b/goal_src/engine/ps2/pad.gc @@ -5,6 +5,11 @@ ;; name in dgo: pad ;; dgos: GAME, ENGINE +;; Interface for game controllers. +;; the *cpad-list* contains both game controllers. +;; Use the service-cpads functions once per frame to update the data and vibration control +;; The cpad-set-buzz! function can be used for vibration. + (defenum pad-buttons :bitfield #t :type uint32 diff --git a/goal_src/engine/ps2/timer-h.gc b/goal_src/engine/ps2/timer-h.gc index 6bd12f5c86..ddddcabf08 100644 --- a/goal_src/engine/ps2/timer-h.gc +++ b/goal_src/engine/ps2/timer-h.gc @@ -6,12 +6,41 @@ ;; dgos: GAME, ENGINE -;; The Emotion Engine has 4 hardware timers. +;; There are two sources for timing: +;; - EE TIMER1, used for the frame profiler. There are 9765 counts of this per frame. It gets reset in drawable. +;; - The "stopwatch" system, used for reading the CPU clock cycle counter, at 300 MHz (32-bit) + +;; The Emotion Engine has 4 hardware timers, timer1 is used as the (defconstant TIMER0_BANK #x10000000) ;; has HOLD register! (defconstant TIMER1_BANK #x10000800) ;; has HOLD register! (defconstant TIMER2_BANK #x10001000) ;; does NOT have HOLD register! (defconstant TIMER3_BANK #x10001800) ;; does NOT have HOLD register! + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; PC Port Timer +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(defmacro get-cpu-clock () + "Read the 300 MHz clock." + ;; __read-ee-timer is a 300 MHz timer from the C Kernel. + ;; it's a real timer. + `(the uint (logand #xffffffff (__read-ee-timer))) + ) + +(defmacro get-bus-clock/256 () + "Read the 150 MHz / 256 clock." + ;; 300 MHz / (2^9) + `(the uint (logand #xffffffff (shr (__read-ee-timer) 9))) + ) + +(#when PC_PORT + ;; the bus clock can be reset, which just stores the current count here. + (define *timer-reset-value* (the uint 0)) + ) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Timer HW +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defenum timer-clock-selection :type uint8 (busclk 0) @@ -66,6 +95,8 @@ ) ;; stopwatches are used to measure CPU clock cycles +;; they don't use the timer above, but instead the Count COP0 register +;; which counts CPU clock cycles directly (deftype stopwatch (basic) ((prev-time-elapsed uint64 :offset-assert 8) (start-time uint64 :offset-assert 16) @@ -77,6 +108,7 @@ ) ;; Confusing! What IS this measuring exactly? Hmm... +;; this is set by default for NTSC, it will later be changed if PAL. (define *ticks-per-frame* (/ 2500000 256)) ;; 2 500 000 / 256 = 9765 (defun timer-init ((timer timer-bank) (mode timer-mode)) @@ -88,9 +120,18 @@ ;; needs PS2 TIMER porting (#unless PC_PORT (timer-init (the-as timer-bank TIMER1_BANK) (new 'static 'timer-mode :clks (timer-clock-selection busclk/16) :cue 1)) - ) + ) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Profiler +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; The profiler uses the EE Timer 1 to record how long is spent in each part of the frame. +;; There is a EE and VU1 profiler. The EE profiler relies on code manually reporting how long +;; it takes to run, and the VU1 profiler uses VIF interrupts to do this automatically on +;; microprogram completion. + +;; A single thing in the profiler (deftype profile-frame (structure) ((name symbol :offset-assert 0) (time-stamp uint32 :offset-assert 4) @@ -111,6 +152,7 @@ obj ) +;; A "bar" to display all the timed events (declare-type dma-buffer basic) (deftype profile-bar (basic) ((profile-frame-count int32 :offset-assert 4) diff --git a/goal_src/engine/ps2/timer.gc b/goal_src/engine/ps2/timer.gc index 78ac37c830..329533e8d9 100644 --- a/goal_src/engine/ps2/timer.gc +++ b/goal_src/engine/ps2/timer.gc @@ -6,8 +6,21 @@ ;; dgos: GAME, ENGINE +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Timer (EE timers) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + (defun timer-reset ((timer timer-bank)) "Reset a timer's counter to zero" + + (#when PC_PORT + ;; just store the current offset. + (if (= timer TIMER1_BANK) + (set! *timer-reset-value* (get-bus-clock/256)) + (format 0 "Unknown timer #x~X in timer-reset~%") + ) + (return (the uint 0)) + ) (.sync.l) (set! (-> timer count) 0) (.sync.l) @@ -15,6 +28,14 @@ (defun timer-count ((timer timer-bank)) "Return a timer's counter value" + + (#when PC_PORT + (when (= timer TIMER1_BANK) + (return (- (get-bus-clock/256) *timer-reset-value*)) + ) + (format 0 "Unknown timer #x~X requested.~%" timer) + ) + (.sync.l) (let ((count (-> timer count))) (.sync.l) @@ -22,12 +43,16 @@ ) ) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Interrupt Control +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; cop0 status register "interrupt enable" flag ;; if cop0 status is needed anywhere else, move this elsewhere (defconstant COP0_STATUS_IE (the-as uint #x1)) (defun disable-irq () - "Disable all interrupts" + "Disable all interrupts. Has no effect on PC Port" (rlet ((status :class gpr :type uint)) (let ((status-mask (lognot COP0_STATUS_IE))) (.mfc0 status Status) @@ -39,7 +64,7 @@ ) (defun enable-irq () - "Enable all interrupts" + "Enable all interrupts. Has no effect on PC Port." (rlet ((status :class gpr :type uint)) (.mfc0 status Status) (logior! status COP0_STATUS_IE) @@ -49,6 +74,10 @@ ) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Stopwatch (CPU clock cycle counting) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + (defun stopwatch-init ((obj stopwatch)) "Init a stopwatch" (set! (-> obj begin-level) 0) @@ -62,6 +91,9 @@ (when (> (-> obj begin-level) 0) (let ((count 0)) (.mfc0 count Count) + (#when PC_PORT + (set! count (the int (get-cpu-clock))) + ) (set! (-> obj start-time) count) ) ) @@ -73,6 +105,9 @@ (set! (-> obj begin-level) 1) (let ((count 0)) (.mfc0 count Count) + (#when PC_PORT + (set! count (the int (get-cpu-clock))) + ) (set! (-> obj start-time) count) ) ) @@ -85,6 +120,9 @@ (let ((count 0)) (let ((count 0)) (.mfc0 count Count) ;; wrong register? a typo in a rlet? who knows. + (#when PC_PORT + (set! count (the int (get-cpu-clock))) + ) (+! (-> obj prev-time-elapsed) (- count (-> obj start-time))) ) ) @@ -96,6 +134,9 @@ (when (zero? (-> obj begin-level)) (let ((count 0)) (.mfc0 count Count) + (#when PC_PORT + (set! count (the int (get-cpu-clock))) + ) (set! (-> obj start-time) count) ) ) @@ -111,6 +152,10 @@ (set! (-> obj begin-level) 0) (let ((count 0)) (.mfc0 count Count) + (#when PC_PORT + (set! count (the int (get-cpu-clock))) + ) + (+! (-> obj prev-time-elapsed) (- count (-> obj start-time))) ) ) @@ -122,6 +167,10 @@ (when (> (-> obj begin-level) 0) (let ((count (the uint 0))) (.mfc0 count Count) + (#when PC_PORT + (set! count (get-cpu-clock)) + ) + (+! elapsed (- count (-> obj start-time))) (set! count elapsed) ;; ?? ) diff --git a/goal_src/engine/sound/gsound-h.gc b/goal_src/engine/sound/gsound-h.gc index 8465497a0d..d80207afdf 100644 --- a/goal_src/engine/sound/gsound-h.gc +++ b/goal_src/engine/sound/gsound-h.gc @@ -6,7 +6,8 @@ ;; dgos: GAME, ENGINE ;; Type definitions for sound. -;; The actual sound code is all on the IOP, and the EE can send RPCs to control. +;; Sound is handled on the IOP, a separate processor. +;; The EE sends commands using the IOP RPC system to the OVERLORD IOP driver telling it to load and play sounds. ;; There is also some sort of per-frame status update, that is not included here. (deftype sound-id (uint32) @@ -23,6 +24,7 @@ ) ;; Sound names were sometimes packed into a uint128 +;; this is also used for dgo names sent to the IOP. ;; fields added by us (deftype sound-name (uint128) ((lo uint64 :offset 0) @@ -52,6 +54,7 @@ ) ) +;; command types that can be sent to the IOP. (defenum sound-command :type uint16 (load-bank) @@ -78,8 +81,9 @@ (list-sounds) (unload-music) ) + ;; like should match the sound type in OVERLORD -;; This is shared between all sound RPCs. +;; This is shared between all sound RPCs and acts like the header for the sound messages (deftype sound-rpc-cmd (structure) ((rsvd1 uint16 :offset-assert 0) (command sound-command :offset-assert 2) diff --git a/goal_src/engine/ui/text-h.gc b/goal_src/engine/ui/text-h.gc index 31a63a6661..cb588379e6 100644 --- a/goal_src/engine/ui/text-h.gc +++ b/goal_src/engine/ui/text-h.gc @@ -13,6 +13,7 @@ :type uint32 :bitfield #f (zero 0) + (pause #x109) (sfx-volume #x10a) (music-volume #x10b) (speech-volume #x10c) diff --git a/goal_src/engine/util/types-h.gc b/goal_src/engine/util/types-h.gc index 2472765ee8..e63366bfc0 100644 --- a/goal_src/engine/util/types-h.gc +++ b/goal_src/engine/util/types-h.gc @@ -103,6 +103,7 @@ ;; set to #t to get lots of prints during loading (defglobalconstant DEBUG_LOAD #t) +(defglobalconstant DEBUG_TEX #t) (defmacro load-dbg (fmt-str &rest args) (if DEBUG_LOAD @@ -110,3 +111,10 @@ '(empty) ) ) + +(defmacro tex-dbg (fmt-str &rest args) + (if DEBUG_TEX + `(format 0 ,(string-append "[TEX] " fmt-str) ,@args) + '(empty) + ) + ) diff --git a/goal_src/kernel-defs.gc b/goal_src/kernel-defs.gc index 31c40b915a..40a14b706b 100644 --- a/goal_src/kernel-defs.gc +++ b/goal_src/kernel-defs.gc @@ -176,6 +176,10 @@ ;; *kernel-boot-mode* ;; *kernel-boot-level* +;; PC Port functions +(define-extern __read-ee-timer (function uint)) +(define-extern __mem-move (function pointer pointer uint none)) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; ksound - InitSoundScheme ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/goal_src/kernel/gkernel-h.gc b/goal_src/kernel/gkernel-h.gc index 0641953f22..14eb48d8fd 100644 --- a/goal_src/kernel/gkernel-h.gc +++ b/goal_src/kernel/gkernel-h.gc @@ -5,7 +5,8 @@ ;; name in dgo: gkernel-h ;; dgos: KERNEL -;; Type definitions for the GOAL Kernel. +;; Type definitions and constants for the GOAL Kernel and process pools. +;; The kernel is dispatched from a simple loop in C and runs all GOAL processes. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; CONSTANTS @@ -335,7 +336,7 @@ ;; This is the parent type for any stack frame. (deftype stack-frame (basic) ((name basic :offset 4) - (next stack-frame :offset 8) ;; which way does this point? + (next stack-frame :offset 8) ;; follow this to get to the root frame, away from top. ) :size-assert #xc diff --git a/goal_src/kernel/gkernel.gc b/goal_src/kernel/gkernel.gc index accbefcc4d..dd5d19f21e 100644 --- a/goal_src/kernel/gkernel.gc +++ b/goal_src/kernel/gkernel.gc @@ -5,6 +5,15 @@ ;; name in dgo: gkernel ;; dgos: KERNEL +;; The GOAL kernel provides: +;; - threads/stack management +;; - processes, and the process pools +;; - actor heap compacting GC +;; - process suspend +;; - executing the listener function and printing the result in the REPL +;; - catch/throw and stack frame utilities for the state system +;; - package loading (mostly unused loading system separate from levels) + ;; Fwd (define-extern change-parent (function process-tree process-tree process-tree)) @@ -12,7 +21,7 @@ ;; System Globals ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; HACK ADDED +;; Set to #f to not use the fancy printing of results (define *use-old-listener-print* #f) ;; Set version number symbols diff --git a/goal_src/kernel/gstring-h.gc b/goal_src/kernel/gstring-h.gc index 5061a84181..7947bd7c30 100644 --- a/goal_src/kernel/gstring-h.gc +++ b/goal_src/kernel/gstring-h.gc @@ -5,11 +5,11 @@ ;; name in dgo: gstring-h ;; dgos: KERNEL -;; generates no code. +;; generates no code, see gstring.gc for the string implementation. (define-extern *string-tmp-str* string) (define-extern *temp-string* string) (define-extern *stdcon0* string) (define-extern *stdcon1* string) (define-extern *stdcon* string) -(define-extern *debug-draw-pauseable* symbol) \ No newline at end of file +(define-extern *debug-draw-pauseable* symbol) diff --git a/goal_src/levels/common/texture-upload.gc b/goal_src/levels/common/texture-upload.gc index 02398732d5..2a2efb37ed 100644 --- a/goal_src/levels/common/texture-upload.gc +++ b/goal_src/levels/common/texture-upload.gc @@ -5,3 +5,32 @@ ;; name in dgo: texture-upload ;; dgos: GAME, ART +;; This will happen part way through the list of tpages + +;; we already got the font texture, so set that up. +;; NOTE: I added this check so you can load the engine without the font texture. +(cond + ((and *texture-page-dir* (lookup-texture-by-id (new 'static 'texture-id :index #x1 :page #x4fe))) + (setup-font-texture! *texture-pool*) + ;; Load some textures + (define *shadow-middot-texture* (lookup-texture-by-id (new 'static 'texture-id :index #x4 :page #x2))) + ;; not sure what's going on here, this isn't a valid texture ID. It ends up ignoring the 0x14 in the lower + ;; bits, and just gets you the 0th texture in the environment-generic texture page. + (define *generic-envmap-texture* (lookup-texture-by-id (the-as texture-id #x10000014))) + (define *ocean-texture* (lookup-texture-by-id (new 'static 'texture-id :page #x370))) + ) + (else + (format 0 "NOTE: skipped texture setup in texture-upload.gc, textures were not loaded.~%") + (set! *shadow-middot-texture* #f) + (set! *generic-envmap-texture* #f) + (set! *ocean-texture* #f) + ) + ) + + + +;; the next texture we're going to load is the HUD for the start menu, which shouldn't +;; be allocated with the default allocator. So for now we can set it to common-boot, which +;; will place this in common, then disable itself once it encounters another normal texture +(set! (-> *texture-pool* allocate-func) texture-page-common-boot-allocate) + diff --git a/test/decompiler/reference/engine/debug/memory-usage-h_REF.gc b/test/decompiler/reference/engine/debug/memory-usage-h_REF.gc index 5f4f4b6cc9..0d18e9d7d1 100644 --- a/test/decompiler/reference/engine/debug/memory-usage-h_REF.gc +++ b/test/decompiler/reference/engine/debug/memory-usage-h_REF.gc @@ -37,7 +37,7 @@ (:methods (reset! (_type_) _type_ 9) (calculate-total (_type_) int 10) - (dummy-11 () none 11) + (print-mem-usage (_type_ level object) none 11) ) ) @@ -56,7 +56,7 @@ ;; definition for symbol *dma-mem-usage*, type memory-usage-block (define *dma-mem-usage* (new 'debug 'memory-usage-block)) -;; definition for symbol *temp-mem-usage*, type symbol -(define *temp-mem-usage* #f) +;; definition for symbol *temp-mem-usage*, type memory-usage-block +(define *temp-mem-usage* (the-as memory-usage-block #f)) ) diff --git a/test/decompiler/reference/engine/debug/stats-h_REF.gc b/test/decompiler/reference/engine/debug/stats-h_REF.gc index 37df742eaa..acc3b408e0 100644 --- a/test/decompiler/reference/engine/debug/stats-h_REF.gc +++ b/test/decompiler/reference/engine/debug/stats-h_REF.gc @@ -94,7 +94,8 @@ ;; definition of type perf-stat-array (deftype perf-stat-array (inline-array-class) - () + ((data perf-stat :inline :dynamic :offset-assert 16) + ) :method-count-assert 9 :size-assert #x10 :flag-assert #x900000010 @@ -105,7 +106,7 @@ (format #t "[~8x] ~A~%" obj (-> obj type)) (format #t "~Tlength: ~D~%" (-> obj length)) (format #t "~Tallocated-length: ~D~%" (-> obj allocated-length)) - (format #t "~Tdata[0] @ #x~X~%" (-> obj _data)) + (format #t "~Tdata[0] @ #x~X~%" (-> obj data)) obj ) diff --git a/test/decompiler/reference/engine/entity/actor-link-h_REF.gc b/test/decompiler/reference/engine/entity/actor-link-h_REF.gc index 6356d109c1..70c11e851e 100644 --- a/test/decompiler/reference/engine/entity/actor-link-h_REF.gc +++ b/test/decompiler/reference/engine/entity/actor-link-h_REF.gc @@ -241,20 +241,21 @@ ;; definition for method 23 of type actor-link-info ;; INFO: Return type mismatch int vs none. (defmethod send-to-next actor-link-info ((obj actor-link-info) (arg0 object)) - (with-pp (let ((a0-1 (-> obj next))) - (when a0-1 - (let ((a0-2 (-> (the-as entity-links (-> a0-1 extra)) process))) - (when a0-2 - (let ((v1-4 (new 'stack-no-clear 'event-message-block))) - (set! (-> v1-4 from) pp) - (set! (-> v1-4 num-params) 0) - (set! (-> v1-4 message) (the-as basic arg0)) - (send-event-function a0-2 v1-4) - ) - ) - ) - ) - ) + (with-pp + (let ((a0-1 (-> obj next))) + (when a0-1 + (let ((a0-2 (-> (the-as entity-links (-> a0-1 extra)) process))) + (when a0-2 + (let ((v1-4 (new 'stack-no-clear 'event-message-block))) + (set! (-> v1-4 from) pp) + (set! (-> v1-4 num-params) 0) + (set! (-> v1-4 message) (the-as basic arg0)) + (send-event-function a0-2 v1-4) + ) + ) + ) + ) + ) 0 (none) ) @@ -263,20 +264,21 @@ ;; definition for method 24 of type actor-link-info ;; INFO: Return type mismatch int vs none. (defmethod send-to-prev actor-link-info ((obj actor-link-info) (arg0 object)) - (with-pp (let ((a0-1 (-> obj prev))) - (when a0-1 - (let ((a0-2 (-> (the-as entity-links (-> a0-1 extra)) process))) - (when a0-2 - (let ((v1-4 (new 'stack-no-clear 'event-message-block))) - (set! (-> v1-4 from) pp) - (set! (-> v1-4 num-params) 0) - (set! (-> v1-4 message) (the-as basic arg0)) - (send-event-function a0-2 v1-4) - ) - ) - ) - ) - ) + (with-pp + (let ((a0-1 (-> obj prev))) + (when a0-1 + (let ((a0-2 (-> (the-as entity-links (-> a0-1 extra)) process))) + (when a0-2 + (let ((v1-4 (new 'stack-no-clear 'event-message-block))) + (set! (-> v1-4 from) pp) + (set! (-> v1-4 num-params) 0) + (set! (-> v1-4 message) (the-as basic arg0)) + (send-event-function a0-2 v1-4) + ) + ) + ) + ) + ) 0 (none) ) diff --git a/test/decompiler/reference/engine/game/task/task-control_REF.gc b/test/decompiler/reference/engine/game/task/task-control_REF.gc index 0a5d692d90..99414d8600 100644 --- a/test/decompiler/reference/engine/game/task/task-control_REF.gc +++ b/test/decompiler/reference/engine/game/task/task-control_REF.gc @@ -365,8 +365,7 @@ :flags (task-flags has-entity closed-by-default) :condition - (lambda - ((arg0 task-control)) + (lambda ((arg0 task-control)) (with-pp (or (closed? arg0 (game-task jungle-eggtop) (task-status need-reminder)) @@ -398,8 +397,7 @@ :flags (task-flags has-entity closed-by-default) :condition - (lambda - ((arg0 task-control)) + (lambda ((arg0 task-control)) (with-pp (or (closed? arg0 (game-task jungle-eggtop) (task-status need-reminder)) @@ -452,8 +450,7 @@ :status (task-status unknown) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control)) + (lambda ((arg0 task-control)) (task-closed? (game-task village4-button) (task-status need-reward-speech) @@ -522,16 +519,16 @@ :status (task-status need-reward-speech) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control)) - (with-pp (let ((a1-0 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-0 from) pp) - (set! (-> a1-0 num-params) 2) - (set! (-> a1-0 message) 'query) - (set! (-> a1-0 param 0) (the-as uint 'pickup)) - (set! (-> a1-0 param 1) (the-as uint 6)) - (>= (the int (send-event-function *target* a1-0)) 45) - ) + (lambda ((arg0 task-control)) + (with-pp + (let ((a1-0 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-0 from) pp) + (set! (-> a1-0 num-params) 2) + (set! (-> a1-0 message) 'query) + (set! (-> a1-0 param 0) (the-as uint 'pickup)) + (set! (-> a1-0 param 1) (the-as uint 6)) + (>= (the int (send-event-function *target* a1-0)) 45) + ) ) ) ) @@ -555,8 +552,7 @@ :flags (task-flags has-entity closed-by-default) :condition - (lambda - ((arg0 task-control) (arg1 task-control)) + (lambda ((arg0 task-control) (arg1 task-control)) (with-pp (and (task-closed? (game-task beach-flutflut) (task-status need-reminder)) @@ -587,8 +583,7 @@ :flags (task-flags has-entity closed-by-default) :condition - (lambda - ((arg0 task-control) (arg1 task-control)) + (lambda ((arg0 task-control) (arg1 task-control)) (with-pp (and (task-closed? (game-task beach-flutflut) (task-status need-reminder)) @@ -619,8 +614,7 @@ :flags (task-flags has-entity closed-by-default) :condition - (lambda - ((arg0 task-control) (arg1 task-control)) + (lambda ((arg0 task-control) (arg1 task-control)) (with-pp (if (task-closed? (game-task beach-flutflut) (task-status need-reminder)) (or @@ -671,8 +665,7 @@ :flags (task-flags has-entity closed-by-default) :condition - (lambda - ((arg0 task-control) (arg1 task-control)) + (lambda ((arg0 task-control) (arg1 task-control)) (with-pp (if (task-closed? (game-task beach-flutflut) (task-status need-reminder)) (or @@ -732,8 +725,7 @@ :game-task (game-task swamp-flutflut) :status (task-status unknown) :condition - (lambda - ((arg0 task-control)) + (lambda ((arg0 task-control)) (task-closed? (game-task beach-flutflut) (task-status need-reminder)) ) ) @@ -742,8 +734,7 @@ :status (task-status need-reminder) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control)) + (lambda ((arg0 task-control)) (task-closed? (game-task beach-flutflut) (task-status need-reminder)) ) ) @@ -833,8 +824,7 @@ :status (task-status need-resolution) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control) (arg1 task-control)) + (lambda ((arg0 task-control) (arg1 task-control)) (closed? arg0 (game-task rolling-race) (task-status need-reward-speech)) ) ) @@ -843,8 +833,7 @@ :status (task-status need-resolution) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control) (arg1 task-control)) + (lambda ((arg0 task-control) (arg1 task-control)) (closed? arg0 (game-task village2-gambler-money) @@ -857,8 +846,7 @@ :status (task-status need-reward-speech) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control) (arg1 task-control)) + (lambda ((arg0 task-control) (arg1 task-control)) (closed? arg0 (game-task rolling-race) (task-status need-reminder)) ) ) @@ -867,8 +855,7 @@ :status (task-status need-reward-speech) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control)) + (lambda ((arg0 task-control)) (with-pp (the-as symbol @@ -899,8 +886,7 @@ :status (task-status need-reminder) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control) (arg1 task-control)) + (lambda ((arg0 task-control) (arg1 task-control)) (closed? arg0 (game-task rolling-race) (task-status need-introduction)) ) ) @@ -908,8 +894,7 @@ :game-task (game-task village2-gambler-money) :status (task-status need-reminder) :condition - (lambda - ((arg0 task-control) (arg1 task-control)) + (lambda ((arg0 task-control) (arg1 task-control)) (closed? arg0 (game-task rolling-race) (task-status need-introduction)) ) ) @@ -960,8 +945,7 @@ :status (task-status need-resolution) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control) (arg1 task-control)) + (lambda ((arg0 task-control) (arg1 task-control)) (closed? arg0 (game-task rolling-moles) (task-status need-reward-speech)) ) ) @@ -970,8 +954,7 @@ :status (task-status need-resolution) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control) (arg1 task-control)) + (lambda ((arg0 task-control) (arg1 task-control)) (closed? arg0 (game-task village2-geologist-money) @@ -984,8 +967,7 @@ :status (task-status need-reward-speech) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control) (arg1 task-control)) + (lambda ((arg0 task-control) (arg1 task-control)) (closed? arg0 (game-task rolling-moles) (task-status need-reminder)) ) ) @@ -994,8 +976,7 @@ :status (task-status need-reward-speech) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control)) + (lambda ((arg0 task-control)) (with-pp (the-as symbol @@ -1026,8 +1007,7 @@ :status (task-status need-reminder) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control) (arg1 task-control)) + (lambda ((arg0 task-control) (arg1 task-control)) (closed? arg0 (game-task rolling-moles) (task-status need-introduction)) ) ) @@ -1035,8 +1015,7 @@ :game-task (game-task village2-geologist-money) :status (task-status need-reminder) :condition - (lambda - ((arg0 task-control) (arg1 task-control)) + (lambda ((arg0 task-control) (arg1 task-control)) (closed? arg0 (game-task rolling-moles) (task-status need-introduction)) ) ) @@ -1087,8 +1066,7 @@ :status (task-status need-resolution) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control) (arg1 task-control)) + (lambda ((arg0 task-control) (arg1 task-control)) (closed? arg0 (game-task jungle-lurkerm) (task-status need-reward-speech)) ) ) @@ -1097,8 +1075,7 @@ :status (task-status need-resolution) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control) (arg1 task-control)) + (lambda ((arg0 task-control) (arg1 task-control)) (closed? arg0 (game-task village1-mayor-money) @@ -1111,8 +1088,7 @@ :status (task-status need-reward-speech) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control) (arg1 task-control)) + (lambda ((arg0 task-control) (arg1 task-control)) (closed? arg0 (game-task jungle-lurkerm) (task-status need-reminder)) ) ) @@ -1121,8 +1097,7 @@ :status (task-status need-reward-speech) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control)) + (lambda ((arg0 task-control)) (with-pp (the-as symbol @@ -1153,8 +1128,7 @@ :status (task-status need-reminder-a) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control) (arg1 task-control)) + (lambda ((arg0 task-control) (arg1 task-control)) (closed? arg0 (game-task jungle-lurkerm) (task-status need-introduction)) ) ) @@ -1163,8 +1137,7 @@ :status (task-status need-reminder) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control) (arg1 task-control)) + (lambda ((arg0 task-control) (arg1 task-control)) (closed? arg0 (game-task jungle-lurkerm) (task-status need-introduction)) ) ) @@ -1172,8 +1145,7 @@ :game-task (game-task village1-mayor-money) :status (task-status need-reminder) :condition - (lambda - ((arg0 task-control) (arg1 task-control)) + (lambda ((arg0 task-control) (arg1 task-control)) (closed? arg0 (game-task jungle-lurkerm) (task-status need-introduction)) ) ) @@ -1229,8 +1201,7 @@ :flags (task-flags has-entity closed-by-default) :condition - (lambda - ((arg0 task-control) (arg1 task-control)) + (lambda ((arg0 task-control) (arg1 task-control)) (with-pp (or (closed? arg0 (game-task beach-ecorocks) (task-status need-reminder)) @@ -1262,8 +1233,7 @@ :flags (task-flags has-entity closed-by-default) :condition - (lambda - ((arg0 task-control) (arg1 task-control)) + (lambda ((arg0 task-control) (arg1 task-control)) (with-pp (or (closed? arg0 (game-task beach-ecorocks) (task-status need-reminder)) @@ -1310,8 +1280,7 @@ :status (task-status unknown) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control)) + (lambda ((arg0 task-control)) (task-closed? (game-task village4-button) (task-status need-reward-speech) @@ -1369,8 +1338,7 @@ :flags (task-flags has-entity closed-by-default) :condition - (lambda - ((arg0 task-control) (arg1 task-control)) + (lambda ((arg0 task-control) (arg1 task-control)) (with-pp (or (closed? arg0 (game-task rolling-plants) (task-status need-reminder)) @@ -1402,8 +1370,7 @@ :flags (task-flags has-entity closed-by-default) :condition - (lambda - ((arg0 task-control) (arg1 task-control)) + (lambda ((arg0 task-control) (arg1 task-control)) (with-pp (or (closed? arg0 (game-task rolling-plants) (task-status need-reminder)) @@ -1509,8 +1476,7 @@ :status (task-status need-reward-speech) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control)) + (lambda ((arg0 task-control)) (with-pp (the-as symbol @@ -1552,8 +1518,7 @@ :status (task-status need-reward-speech) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control)) + (lambda ((arg0 task-control)) (with-pp (the-as symbol @@ -1637,8 +1602,7 @@ :status (task-status need-reward-speech) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control)) + (lambda ((arg0 task-control)) (with-pp (the-as symbol @@ -1680,8 +1644,7 @@ :status (task-status need-reward-speech) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control)) + (lambda ((arg0 task-control)) (with-pp (the-as symbol @@ -1765,8 +1728,7 @@ :status (task-status need-reward-speech) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control)) + (lambda ((arg0 task-control)) (with-pp (the-as symbol @@ -1808,8 +1770,7 @@ :status (task-status need-reward-speech) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control)) + (lambda ((arg0 task-control)) (with-pp (the-as symbol @@ -1921,8 +1882,7 @@ :status (task-status need-reward-speech) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control)) + (lambda ((arg0 task-control)) (with-pp (the-as symbol @@ -1953,8 +1913,7 @@ :status (task-status need-reward-speech) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control)) + (lambda ((arg0 task-control)) (with-pp (the-as symbol @@ -1985,8 +1944,7 @@ :status (task-status need-reward-speech) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control)) + (lambda ((arg0 task-control)) (with-pp (the-as symbol @@ -2017,8 +1975,7 @@ :status (task-status need-reward-speech) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control)) + (lambda ((arg0 task-control)) (with-pp (the-as symbol @@ -2050,8 +2007,7 @@ :flags (task-flags has-entity closed-by-default) :condition - (lambda - ((arg0 task-control) (arg1 task-control)) + (lambda ((arg0 task-control) (arg1 task-control)) (with-pp (or (closed? @@ -2087,8 +2043,7 @@ :flags (task-flags has-entity closed-by-default) :condition - (lambda - ((arg0 task-control) (arg1 task-control)) + (lambda ((arg0 task-control) (arg1 task-control)) (with-pp (or (closed? @@ -2124,8 +2079,7 @@ :flags (task-flags has-entity closed-by-default) :condition - (lambda - ((arg0 task-control) (arg1 task-control)) + (lambda ((arg0 task-control) (arg1 task-control)) (with-pp (or (closed? arg0 (game-task cave-gnawers) (task-status need-reminder)) @@ -2153,8 +2107,7 @@ :flags (task-flags has-entity closed-by-default) :condition - (lambda - ((arg0 task-control) (arg1 task-control)) + (lambda ((arg0 task-control) (arg1 task-control)) (with-pp (or (closed? arg0 (game-task cave-gnawers) (task-status need-reminder)) @@ -2335,8 +2288,7 @@ :flags (task-flags has-entity closed-by-default) :condition - (lambda - ((arg0 task-control) (arg1 task-control)) + (lambda ((arg0 task-control) (arg1 task-control)) (with-pp (or (closed? @@ -2372,8 +2324,7 @@ :flags (task-flags has-entity closed-by-default) :condition - (lambda - ((arg0 task-control) (arg1 task-control)) + (lambda ((arg0 task-control) (arg1 task-control)) (with-pp (or (closed? @@ -2861,8 +2812,7 @@ :status (task-status need-reward-speech) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control)) + (lambda ((arg0 task-control)) (with-pp (the-as symbol @@ -3388,8 +3338,7 @@ :flags (task-flags has-entity closed-by-default) :condition - (lambda - ((arg0 task-control)) + (lambda ((arg0 task-control)) (and (not (task-closed? (game-task ogre-boss) (task-status need-reminder))) (not @@ -3407,8 +3356,7 @@ :flags (task-flags has-entity closed-by-default) :condition - (lambda - ((arg0 task-control)) + (lambda ((arg0 task-control)) (and (not (task-closed? (game-task ogre-boss) (task-status need-reminder))) (not @@ -3425,8 +3373,7 @@ :status (task-status need-reward-speech) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control)) + (lambda ((arg0 task-control)) (with-pp (the-as symbol @@ -5122,16 +5069,16 @@ :status (task-status need-reward-speech) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control)) - (with-pp (let ((a1-0 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-0 from) pp) - (set! (-> a1-0 num-params) 2) - (set! (-> a1-0 message) 'query) - (set! (-> a1-0 param 0) (the-as uint 'pickup)) - (set! (-> a1-0 param 1) (the-as uint 6)) - (>= (the int (send-event-function *target* a1-0)) 20) - ) + (lambda ((arg0 task-control)) + (with-pp + (let ((a1-0 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-0 from) pp) + (set! (-> a1-0 num-params) 2) + (set! (-> a1-0 message) 'query) + (set! (-> a1-0 param 0) (the-as uint 'pickup)) + (set! (-> a1-0 param 1) (the-as uint 6)) + (>= (the int (send-event-function *target* a1-0)) 20) + ) ) ) ) @@ -5227,16 +5174,16 @@ :status (task-status need-reward-speech) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control)) - (with-pp (let ((a1-0 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-0 from) pp) - (set! (-> a1-0 num-params) 2) - (set! (-> a1-0 message) 'query) - (set! (-> a1-0 param 0) (the-as uint 'pickup)) - (set! (-> a1-0 param 1) (the-as uint 6)) - (>= (the int (send-event-function *target* a1-0)) 72) - ) + (lambda ((arg0 task-control)) + (with-pp + (let ((a1-0 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-0 from) pp) + (set! (-> a1-0 num-params) 2) + (set! (-> a1-0 message) 'query) + (set! (-> a1-0 param 0) (the-as uint 'pickup)) + (set! (-> a1-0 param 1) (the-as uint 6)) + (>= (the int (send-event-function *target* a1-0)) 72) + ) ) ) ) @@ -5406,8 +5353,7 @@ :status (task-status unknown) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control)) + (lambda ((arg0 task-control)) (task-closed? (game-task village4-button) (task-status need-reward-speech) diff --git a/test/decompiler/reference/engine/gfx/hw/display-h_REF.gc b/test/decompiler/reference/engine/gfx/hw/display-h_REF.gc index 87a777de20..d819fa94a2 100644 --- a/test/decompiler/reference/engine/gfx/hw/display-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/hw/display-h_REF.gc @@ -341,8 +341,8 @@ ;; definition for symbol *pre-draw-hook*, type (function none) (define *pre-draw-hook* nothing) -;; definition for symbol *post-draw-hook*, type (function none) -(define *post-draw-hook* nothing) +;; definition for symbol *post-draw-hook*, type (function dma-buffer none) +(define *post-draw-hook* (the-as (function dma-buffer none) nothing)) ;; failed to figure out what this is: 0 diff --git a/test/decompiler/reference/engine/gfx/texture-h_REF.gc b/test/decompiler/reference/engine/gfx/texture-h_REF.gc index 54ec916406..a4a6cff202 100644 --- a/test/decompiler/reference/engine/gfx/texture-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/texture-h_REF.gc @@ -64,7 +64,7 @@ (new (symbol type) _type_ 0) (initialize! (_type_) _type_ 9) (print-usage (_type_) _type_ 10) - (dummy-11 (_type_) none 11) + (setup-font-texture! (_type_) none 11) (allocate-defaults! (_type_) none 12) (login-level-textures (_type_ level int (pointer texture-id)) none 13) (add-tex-to-dma! (_type_ level int) none 14) @@ -73,7 +73,7 @@ (dummy-17 () none 17) (dummy-18 () none 18) (dummy-19 () none 19) - (dummy-20 (_type_ texture-page) int 20) + (unload! (_type_ texture-page) int 20) (upload-one-common! (_type_) symbol 21) (lookup-boot-common-id (_type_ int) int 22) ) @@ -106,7 +106,9 @@ ;; definition of type texture (deftype texture (basic) ((w int16 :offset-assert 4) + (wu uint16 :offset 4) (h int16 :offset-assert 6) + (hu uint16 :offset 6) (num-mips uint8 :offset-assert 8) (tex1-control uint8 :offset-assert 9) (psm gs-psm :offset-assert 10) @@ -176,7 +178,7 @@ ;; definition of type texture-page (deftype texture-page (basic) - ((info basic :offset-assert 4) + ((info file-info :offset-assert 4) (name basic :offset-assert 8) (id uint32 :offset-assert 12) (length int32 :offset-assert 16) @@ -195,7 +197,7 @@ (get-leftover-block-count (_type_ int int) int 10) (dummy-11 () none 11) (relocate-dests! (_type_ int int) none 12) - (add-to-dma-buffer (_type_ dma-buffer int) none 13) + (add-to-dma-buffer (_type_ dma-buffer int) int 13) (upload-now! (_type_ int) none 14) ) ) @@ -273,7 +275,7 @@ :flag-assert #xa00000014 (:methods (relocate (_type_ kheap (pointer uint8)) none :replace 7) - (dummy-9 (_type_ kheap) int 9) + (unlink-textures-in-heap! (_type_ kheap) int 9) ) ) @@ -314,17 +316,17 @@ ;; definition of type adgif-shader (deftype adgif-shader (structure) - ((quad qword 5 :inline :offset 0) - (prims uint64 10 :offset 0) - (tex0 uint64 :offset 0) - (tex1 uint64 :offset 16) - (miptbp1 uint64 :offset 32) - (clamp uint64 :offset 48) - (clamp-reg uint64 :offset 56) - (alpha uint64 :offset 64) - (link-test uint32 :offset 8) - (texture-id uint32 :offset 24) - (next shader-ptr :offset 40) + ((quad qword 5 :inline :offset 0) + (prims gs-reg64 10 :offset 0) + (tex0 gs-tex0 :offset 0) + (tex1 gs-tex1 :offset 16) + (miptbp1 gs-miptbp :offset 32) + (clamp gs-clamp :offset 48) + (clamp-reg gs-reg64 :offset 56) + (alpha gs-miptbp :offset 64) + (link-test link-test-flags :offset 8) + (texture-id texture-id :offset 24) + (next shader-ptr :offset 40) ) :method-count-assert 9 :size-assert #x50 @@ -334,8 +336,8 @@ ;; definition for method 3 of type adgif-shader (defmethod inspect adgif-shader ((obj adgif-shader)) (format #t "[~8x] ~A~%" obj 'adgif-shader) - (format #t "~Tquad[5] @ #x~X~%" (-> obj quad)) - (format #t "~Tprims[10] @ #x~X~%" (-> obj quad)) + (format #t "~Tquad[5] @ #x~X~%" (&-> obj tex0)) + (format #t "~Tprims[10] @ #x~X~%" (&-> obj tex0)) (format #t "~Ttex0: #x~X~%" (-> obj tex0)) (format #t "~Ttex1: #x~X~%" (-> obj tex1)) (format #t "~Tmiptbp1: #x~X~%" (-> obj miptbp1)) diff --git a/test/decompiler/reference/engine/gfx/texture_REF.gc b/test/decompiler/reference/engine/gfx/texture_REF.gc new file mode 100644 index 0000000000..131469eb94 --- /dev/null +++ b/test/decompiler/reference/engine/gfx/texture_REF.gc @@ -0,0 +1,3712 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for method 2 of type texture-page +(defmethod print texture-page ((obj texture-page)) + (format + #t + "#" + (-> obj name) + (-> obj length) + (shr (-> obj segment 0 dest) 6) + (shr (-> obj size) 8) + obj + ) + obj + ) + +;; definition for method 4 of type texture-page +(defmethod length texture-page ((obj texture-page)) + (-> obj length) + ) + +;; definition for method 5 of type texture-page +;; INFO: Return type mismatch uint vs int. +(defmethod asize-of texture-page ((obj texture-page)) + (the-as int (+ (-> obj type size) (the-as uint (* (-> obj length) 4)))) + ) + +;; definition for method 8 of type texture-page +(defmethod + mem-usage + texture-page + ((obj texture-page) (arg0 memory-usage-block) (arg1 int)) + (set! (-> arg0 length) (max 80 (-> arg0 length))) + (set! (-> arg0 data 79 name) "texture") + (set! (-> arg0 data 79 count) (+ (-> arg0 data 79 count) (-> obj length))) + (let ((v1-7 (- (asize-of obj) (the-as int (* (-> obj size) 4))))) + (dotimes (a0-6 (-> obj length)) + (if (-> obj data a0-6) + (+! v1-7 64) + ) + ) + (set! (-> arg0 data 79 used) (+ (-> arg0 data 79 used) v1-7)) + (set! + (-> arg0 data 79 total) + (+ (-> arg0 data 79 total) (logand -16 (+ v1-7 15))) + ) + ) + obj + ) + +;; definition for function texture-bpp +(defun texture-bpp ((arg0 gs-psm)) + (let ((v1-0 arg0)) + (cond + ((= v1-0 (gs-psm mt8)) + 8 + ) + ((= v1-0 (gs-psm mt4)) + 4 + ) + (else + (if + (or + (= v1-0 (gs-psm ct16)) + (= v1-0 (gs-psm ct16s)) + (= v1-0 (gs-psm mz16)) + (= v1-0 (gs-psm mz16s)) + ) + 16 + 32 + ) + ) + ) + ) + ) + +;; definition for function texture-qwc +(defun texture-qwc ((w int) (h int) (tex-format gs-psm)) + (let ((v1-0 (texture-bpp tex-format))) + (/ (+ (* (* w h) v1-0) 127) 128) + ) + ) + +;; definition for function physical-address +(defun physical-address ((arg0 pointer)) + (logand #xfffffff arg0) + ) + +;; definition for function dma-buffer-add-ref-texture +;; INFO: Return type mismatch symbol vs none. +(defun + dma-buffer-add-ref-texture + ((buf dma-buffer) (data pointer) (tex-w int) (tex-h int) (tex-format gs-psm)) + (let ((data-ptr (physical-address data)) + (qwc (texture-qwc tex-w tex-h tex-format)) + ) + (while (> qwc 0) + (let ((qwc-this-time (min #x7fff qwc))) + (let ((eop (if (= qwc qwc-this-time) + 1 + 0 + ) + ) + ) + (let* ((a2-2 buf) + (setup-dma (the-as dma-packet (-> a2-2 base))) + ) + (set! + (-> setup-dma dma) + (new 'static 'dma-tag :qwc #x1 :id (dma-tag-id cnt)) + ) + (set! (-> setup-dma vif0) (new 'static 'vif-tag)) + (set! + (-> setup-dma vif1) + (new 'static 'vif-tag :imm #x1 :cmd (vif-cmd direct) :msk #x1) + ) + (set! (-> a2-2 base) (&+ (the-as pointer setup-dma) 16)) + ) + (let* ((a2-3 buf) + (setup-dif (the-as gs-gif-tag (-> a2-3 base))) + ) + (set! + (-> setup-dif tag) + (new 'static 'gif-tag64 :flg #x2 :eop eop :nloop qwc-this-time) + ) + (set! (-> setup-dif regs) (new 'static 'gif-tag-regs)) + (set! (-> a2-3 base) (&+ (the-as pointer setup-dif) 16)) + ) + ) + (let* ((a1-9 buf) + (data-dma (the-as dma-packet (-> a1-9 base))) + ) + (set! + (-> data-dma dma) + (new 'static 'dma-tag + :id (dma-tag-id ref) + :addr (the-as int data-ptr) + :qwc qwc-this-time + ) + ) + (set! (-> data-dma vif0) (new 'static 'vif-tag)) + (set! + (-> data-dma vif1) + (new 'static 'vif-tag :cmd (vif-cmd direct) :msk #x1 :imm qwc-this-time) + ) + (set! (-> a1-9 base) (&+ (the-as pointer data-dma) 16)) + ) + (&+! data-ptr (* qwc-this-time 16)) + (set! qwc (- qwc qwc-this-time)) + ) + ) + ) + (none) + ) + +;; definition for method 2 of type texture +(defmethod print texture ((obj texture)) + (format + #t + "# obj name) + (psm->string (-> obj psm)) + (-> obj w) + (-> obj h) + (-> obj num-mips) + (shr (-> obj size) 8) + ) + (dotimes (s5-1 (the-as int (-> obj num-mips))) + (format #t " #x~X/~X" (-> obj dest s5-1) (-> obj width s5-1)) + ) + (if (< (texture-bpp (-> obj psm)) 16) + (format #t " :clut #x~X/1" (-> obj clutdest)) + ) + (format #t " @ #x~X>" obj) + obj + ) + +;; definition for symbol ct32-24-block-table, type (array int32) +(define + ct32-24-block-table + (the-as (array int32) + (new + 'static + 'boxed-array + :type int32 :length 32 :allocated-length 32 + 0 + 1 + 4 + 5 + 16 + 17 + 20 + 21 + 2 + 3 + 6 + 7 + 18 + 19 + 22 + 23 + 8 + 9 + 12 + 13 + 24 + 25 + 28 + 29 + 10 + 11 + 14 + 15 + 26 + 27 + 30 + 31 + ) + ) + ) + +;; definition for symbol mz32-24-block-table, type (array int32) +(define + mz32-24-block-table + (the-as (array int32) + (new + 'static + 'boxed-array + :type int32 :length 32 :allocated-length 32 + 16 + 17 + 20 + 21 + 0 + 1 + 4 + 5 + 18 + 19 + 22 + 23 + 2 + 3 + 6 + 7 + 24 + 25 + 28 + 29 + 8 + 9 + 12 + 13 + 26 + 27 + 30 + 31 + 10 + 11 + 14 + 15 + ) + ) + ) + +;; definition for symbol ct16-block-table, type (array int32) +(define + ct16-block-table + (the-as (array int32) + (new + 'static + 'boxed-array + :type int32 :length 32 :allocated-length 32 + 0 + 2 + 8 + 10 + 1 + 3 + 9 + 11 + 4 + 6 + 12 + 14 + 5 + 7 + 13 + 15 + 16 + 18 + 24 + 26 + 17 + 19 + 25 + 27 + 20 + 22 + 28 + 30 + 21 + 23 + 29 + 31 + ) + ) + ) + +;; definition for symbol ct16s-block-table, type (array int32) +(define + ct16s-block-table + (the-as (array int32) + (new + 'static + 'boxed-array + :type int32 :length 32 :allocated-length 32 + 0 + 2 + 16 + 18 + 1 + 3 + 17 + 19 + 8 + 10 + 24 + 26 + 9 + 11 + 25 + 27 + 4 + 6 + 20 + 22 + 5 + 7 + 21 + 23 + 12 + 14 + 28 + 30 + 13 + 15 + 29 + 31 + ) + ) + ) + +;; definition for symbol mz16-block-table, type (array int32) +(define + mz16-block-table + (the-as (array int32) + (new + 'static + 'boxed-array + :type int32 :length 32 :allocated-length 32 + 16 + 18 + 24 + 26 + 17 + 19 + 25 + 27 + 20 + 22 + 28 + 30 + 21 + 23 + 29 + 31 + 0 + 2 + 8 + 10 + 1 + 3 + 9 + 11 + 4 + 6 + 12 + 14 + 5 + 7 + 13 + 15 + ) + ) + ) + +;; definition for symbol mz16s-block-table, type (array int32) +(define + mz16s-block-table + (the-as (array int32) + (new + 'static + 'boxed-array + :type int32 :length 32 :allocated-length 32 + 16 + 18 + 0 + 2 + 17 + 19 + 1 + 3 + 24 + 26 + 8 + 10 + 25 + 27 + 9 + 11 + 20 + 22 + 4 + 6 + 21 + 23 + 5 + 7 + 28 + 30 + 12 + 14 + 29 + 31 + 13 + 15 + ) + ) + ) + +;; definition for symbol mt8-block-table, type (array int32) +(define + mt8-block-table + (the-as (array int32) + (new + 'static + 'boxed-array + :type int32 :length 32 :allocated-length 32 + 0 + 1 + 4 + 5 + 16 + 17 + 20 + 21 + 2 + 3 + 6 + 7 + 18 + 19 + 22 + 23 + 8 + 9 + 12 + 13 + 24 + 25 + 28 + 29 + 10 + 11 + 14 + 15 + 26 + 27 + 30 + 31 + ) + ) + ) + +;; definition for symbol mt4-block-table, type (array int32) +(define + mt4-block-table + (the-as (array int32) + (new + 'static + 'boxed-array + :type int32 :length 32 :allocated-length 32 + 0 + 2 + 8 + 10 + 1 + 3 + 9 + 11 + 4 + 6 + 12 + 14 + 5 + 7 + 13 + 15 + 16 + 18 + 24 + 26 + 17 + 19 + 25 + 27 + 20 + 22 + 28 + 30 + 21 + 23 + 29 + 31 + ) + ) + ) + +;; definition for function gs-find-block +(defun gs-find-block ((bx int) (by int) (tex-format gs-psm)) + (cond + ((= tex-format (gs-psm ct32)) + (-> ct32-24-block-table (+ bx (* by 8))) + ) + ((= tex-format (gs-psm ct24)) + (-> ct32-24-block-table (+ bx (* by 8))) + ) + ((= tex-format (gs-psm ct16)) + (-> ct16-block-table (+ bx (* by 4))) + ) + ((= tex-format (gs-psm ct16s)) + (-> ct16s-block-table (+ bx (* by 4))) + ) + ((= tex-format (gs-psm mz32)) + (-> mz32-24-block-table (+ bx (* by 8))) + ) + ((= tex-format (gs-psm mz24)) + (-> mz32-24-block-table (+ bx (* by 8))) + ) + ((= tex-format (gs-psm mz16)) + (-> mz16-block-table (+ bx (* by 4))) + ) + ((= tex-format (gs-psm mz16s)) + (-> mz16s-block-table (+ bx (* by 4))) + ) + ((= tex-format (gs-psm mt8)) + (-> mt8-block-table (+ bx (* by 8))) + ) + ((= tex-format (gs-psm mt4)) + (-> mt4-block-table (+ bx (* by 4))) + ) + (else + 0 + ) + ) + ) + +;; definition for function gs-page-width +(defun gs-page-width ((arg0 gs-psm)) + (let ((v1-0 arg0)) + (cond + ((or + (= v1-0 (gs-psm ct32)) + (= v1-0 (gs-psm ct24)) + (= v1-0 (gs-psm ct16)) + (= v1-0 (gs-psm ct16s)) + ) + 64 + ) + (else + (cond + ((or (= v1-0 (gs-psm mt8)) (= v1-0 (gs-psm mt4))) + 128 + ) + (else + (format #t "Warning: Unknown block width for psm ~D~%" arg0) + 1 + ) + ) + ) + ) + ) + ) + +;; definition for function gs-page-height +(defun gs-page-height ((arg0 gs-psm)) + (let ((v1-0 arg0)) + (cond + ((or (= v1-0 (gs-psm ct32)) (= v1-0 (gs-psm ct24))) + 32 + ) + (else + (cond + ((or (= v1-0 (gs-psm ct16)) (= v1-0 (gs-psm ct16s))) + 64 + ) + ((= v1-0 (gs-psm mt8)) + 64 + ) + ((= v1-0 (gs-psm mt4)) + 128 + ) + (else + (format #t "Warning: Unknown block width for psm ~D~%" arg0) + 1 + ) + ) + ) + ) + ) + ) + +;; definition for function gs-block-width +(defun gs-block-width ((arg0 gs-psm)) + (let ((v1-0 arg0)) + (cond + ((or (= v1-0 (gs-psm ct32)) (= v1-0 (gs-psm ct24))) + 8 + ) + (else + (cond + ((or (= v1-0 (gs-psm ct16)) (= v1-0 (gs-psm ct16s)) (= v1-0 (gs-psm mt8))) + 16 + ) + ((= v1-0 (gs-psm mt4)) + 32 + ) + (else + (format #t "Warning: Unknown block width for psm ~D~%" arg0) + 1 + ) + ) + ) + ) + ) + ) + +;; definition for function gs-block-height +(defun gs-block-height ((arg0 gs-psm)) + (let ((v1-0 arg0)) + (cond + ((or + (= v1-0 (gs-psm ct32)) + (= v1-0 (gs-psm ct24)) + (= v1-0 (gs-psm ct16)) + (= v1-0 (gs-psm ct16s)) + ) + 8 + ) + (else + (cond + ((or (= v1-0 (gs-psm mt8)) (= v1-0 (gs-psm mt4))) + 16 + ) + (else + (format #t "Warning: Unknown block width for psm ~D~%" arg0) + 1 + ) + ) + ) + ) + ) + ) + +;; definition for function gs-largest-block +(defun gs-largest-block ((tex-width int) (tex-height int) (tex-format gs-psm)) + (let* ((block-width (gs-block-width tex-format)) + (block-height (gs-block-height tex-format)) + (real-width + (* (/ (+ (+ block-width -1) tex-width) block-width) block-width) + ) + (real-height + (* (/ (+ (+ block-height -1) tex-height) block-height) block-height) + ) + (width-blocks (/ real-width block-width)) + (height-blocks (/ real-height block-height)) + (max-block 0) + ) + (dotimes (x width-blocks) + (dotimes (y height-blocks) + (set! max-block (max max-block (gs-find-block x y tex-format))) + ) + ) + max-block + ) + ) + +;; definition for function gs-blocks-used +(defun gs-blocks-used ((tex-width int) (tex-height int) (tex-format gs-psm)) + (let* ((page-width (gs-page-width tex-format)) + (page-height (gs-page-height tex-format)) + (real-width + (* (/ (+ (+ page-width -1) tex-width) page-width) page-width) + ) + (real-height + (* (/ (+ (+ page-height -1) tex-height) page-height) page-height) + ) + (width-blocks (/ real-width page-width)) + (height-blocks (/ real-height page-height)) + (a0-9 (- tex-width (* (+ width-blocks -1) page-width))) + (a1-7 (- tex-height (* (+ height-blocks -1) page-height))) + ) + (if (or (< a0-9 page-width) (< a1-7 page-height)) + (+ + (+ (gs-largest-block a0-9 a1-7 tex-format) 1) + (* (+ (* width-blocks height-blocks) -1) 32) + ) + (* (* height-blocks width-blocks) 32) + ) + ) + ) + +;; definition for method 0 of type texture-pool +(defmethod new texture-pool ((allocation symbol) (type-to-make type)) + (initialize! + (object-new allocation type-to-make (the-as int (-> type-to-make size))) + ) + ) + +;; definition for method 15 of type texture-pool +(defmethod + allocate-vram-words! + texture-pool + ((obj texture-pool) (word-count int)) + (let ((v0-0 (-> obj cur))) + (set! (-> obj cur) (+ (-> obj cur) word-count)) + v0-0 + ) + ) + +;; definition for method 22 of type texture-pool +(defmethod lookup-boot-common-id texture-pool ((obj texture-pool) (tpage-id int)) + (let ((v1-0 tpage-id)) + (cond + ((= v1-0 1032) + 0 + ) + ((= v1-0 1119) + 1 + ) + ((= v1-0 1478) + 2 + ) + ((= v1-0 1485) + 3 + ) + ((= v1-0 1486) + 4 + ) + ((= v1-0 1487) + 5 + ) + (else + (cond + ((or (= v1-0 635) (= v1-0 1609)) + 6 + ) + ((= v1-0 636) + 7 + ) + ((= v1-0 637) + 8 + ) + ((= v1-0 752) + 9 + ) + ((= v1-0 1598) + 10 + ) + ((= v1-0 1599) + 11 + ) + ((= v1-0 1600) + 12 + ) + ((= v1-0 1601) + 13 + ) + ((= v1-0 1602) + 14 + ) + ((= v1-0 1603) + 15 + ) + ((= v1-0 1604) + 16 + ) + ((= v1-0 1605) + 17 + ) + ((= v1-0 1606) + 18 + ) + ((= v1-0 1607) + 19 + ) + (else + -1 + ) + ) + ) + ) + ) + ) + +;; definition for method 9 of type texture-pool +(defmethod initialize! texture-pool ((obj texture-pool)) + (set! (-> obj cur) 0) + (set! (-> obj top) (-> obj cur)) + (set! (-> obj allocate-func) texture-page-default-allocate) + (allocate-defaults! obj) + (set! (-> obj font-palette) (allocate-vram-words! obj 64)) + (dotimes (v1-6 32) + (set! (-> obj common-page v1-6) (the-as texture-page 0)) + ) + (set! (-> obj common-page-mask) 0) + (dotimes (v1-9 160) + (set! (-> obj ids v1-9) (the-as uint 0)) + ) + obj + ) + +;; definition for method 10 of type texture-page +(defmethod + get-leftover-block-count + texture-page + ((obj texture-page) (segment-count int) (additional-size int)) + (let ((v1-0 additional-size)) + (dotimes (a2-1 segment-count) + (+! v1-0 (the-as int (-> obj segment a2-1 size))) + ) + (logand (/ v1-0 64) 63) + ) + ) + +;; definition for method 10 of type texture-pool +(defmethod print-usage texture-pool ((obj texture-pool)) + (format #t "--------------------~%") + (format + #t + "texture pool ~DK - ~DK (~DK used, ~DK free)~%" + (/ (-> obj top) 256) + (/ (-> obj cur) 256) + (/ (- (-> obj cur) (-> obj top)) 256) + (/ (- #xfa000 (-> obj cur)) 256) + ) + (format #t "--------------------~%") + obj + ) + +;; definition for method 16 of type texture-pool +(defmethod + allocate-segment! + texture-pool + ((obj texture-pool) (segment texture-pool-segment) (size int)) + (set! (-> segment size) (the-as uint size)) + (set! (-> segment dest) (the-as uint (allocate-vram-words! obj size))) + segment + ) + +;; definition for method 12 of type texture-pool +;; INFO: Return type mismatch int vs none. +(defmethod allocate-defaults! texture-pool ((obj texture-pool)) + (allocate-segment! obj (-> obj segment-common) #x1c000) + (allocate-segment! obj (-> obj segment-near) #x62000) + (set! *sky-base-vram-word* (allocate-vram-words! obj #x7000)) + (set! *sky-base-block* (/ *sky-base-vram-word* 64)) + (set! *sky-base-page* (sar *sky-base-vram-word* 11)) + (set! *eyes-base-vram-word* (+ *sky-base-vram-word* 6144)) + (set! *eyes-base-block* (/ *eyes-base-vram-word* 64)) + (set! *eyes-base-page* (sar *eyes-base-vram-word* 11)) + (set! *ocean-base-vram-word* (+ *sky-base-vram-word* 6144)) + (set! *ocean-base-block* (/ *ocean-base-vram-word* 64)) + (set! *ocean-base-page* (sar *ocean-base-vram-word* 11)) + (set! *depth-cue-base-vram-word* (+ *sky-base-vram-word* 6144)) + (set! *depth-cue-base-block* (/ *depth-cue-base-vram-word* 64)) + (set! *depth-cue-base-page* (sar *depth-cue-base-vram-word* 11)) + 0 + (none) + ) + +;; definition for method 9 of type texture-page +(defmethod remove-from-heap texture-page ((obj texture-page) (seg kheap)) + (set! (-> seg current) (-> obj segment 0 block-data)) + obj + ) + +;; definition for function texture-page-default-allocate +(defun + texture-page-default-allocate + ((pool texture-pool) (page texture-page) (seg kheap) (tpage-id int)) + (dotimes (seg-id 3) + (let + ((a1-2 + (allocate-vram-words! pool (the-as int (-> page segment seg-id size))) + ) + ) + (relocate-dests! page a1-2 seg-id) + ) + ) + (upload-now! page -1) + (remove-from-heap page seg) + page + ) + +;; definition for function texture-page-common-allocate +(defun + texture-page-common-allocate + ((pool texture-pool) (page texture-page) (seg kheap) (tpage-id int)) + (let ((s5-0 (-> pool segment-common dest))) + (dotimes (seg-id 3) + (relocate-dests! page (the-as int s5-0) seg-id) + (+! s5-0 (-> page segment seg-id size)) + ) + ) + page + ) + +;; definition for function texture-page-common-boot-allocate +(defun + texture-page-common-boot-allocate + ((pool texture-pool) (page texture-page) (heap kheap) (tpage-id int)) + (let ((tex-id (lookup-boot-common-id pool tpage-id))) + (cond + ((>= tex-id 0) + (texture-page-common-allocate pool page heap tpage-id) + (set! (-> pool common-page tex-id) page) + ) + (else + (set! (-> *texture-pool* allocate-func) texture-page-default-allocate) + (texture-page-default-allocate pool page heap tpage-id) + ) + ) + ) + page + ) + +;; definition for function upload-vram-data +;; INFO: Return type mismatch symbol vs none. +(defun + upload-vram-data + ((buf dma-buffer) (dest int) (tex-data pointer) (tex-h int)) + (while (> tex-h 0) + (let ((height-this-time (min 2048 tex-h))) + (let* ((v1-1 buf) + (dma (the-as dma-packet (-> v1-1 base))) + ) + (set! (-> dma dma) (new 'static 'dma-tag :qwc #x5 :id (dma-tag-id cnt))) + (set! (-> dma vif0) (new 'static 'vif-tag)) + (set! + (-> dma vif1) + (new 'static 'vif-tag :imm #x5 :cmd (vif-cmd direct) :msk #x1) + ) + (set! (-> v1-1 base) (&+ (the-as pointer dma) 16)) + ) + (let* ((v1-2 buf) + (gif (the-as gs-gif-tag (-> v1-2 base))) + ) + (set! (-> gif tag) (new 'static 'gif-tag64 :nloop #x4 :nreg #x1)) + (set! (-> gif regs) (new 'static 'gif-tag-regs :regs0 (gif-reg-id a+d))) + (set! (-> v1-2 base) (&+ (the-as pointer gif) 16)) + ) + (let* ((v1-3 buf) + (gs-data (-> v1-3 base)) + ) + (set! + (-> (the-as (pointer gs-bitbltbuf) gs-data) 0) + (new 'static 'gs-bitbltbuf :dbw #x2 :dbp dest) + ) + (set! (-> (the-as (pointer gs-reg64) gs-data) 1) (gs-reg64 bitbltbuf)) + (set! (-> (the-as (pointer gs-trxpos) gs-data) 2) (new 'static 'gs-trxpos)) + (set! (-> (the-as (pointer gs-reg64) gs-data) 3) (gs-reg64 trxpos)) + (set! + (-> (the-as (pointer gs-trxreg) gs-data) 4) + (new 'static 'gs-trxreg :rrw #x80 :rrh height-this-time) + ) + (set! (-> (the-as (pointer gs-reg64) gs-data) 5) (gs-reg64 trxreg)) + (set! (-> (the-as (pointer gs-trxdir) gs-data) 6) (new 'static 'gs-trxdir)) + (set! (-> (the-as (pointer gs-reg64) gs-data) 7) (gs-reg64 trxdir)) + (set! (-> v1-3 base) (&+ gs-data 64)) + ) + (dma-buffer-add-ref-texture buf tex-data 128 height-this-time (gs-psm ct32)) + ) + (+! dest 4096) + (&+! tex-data #x100000) + (+! tex-h -2048) + ) + (none) + ) + +;; definition for function upload-vram-pages +(defun + upload-vram-pages + ((pool texture-pool) + (segment texture-pool-segment) + (page texture-page) + (mode int) + (bucket-idx int) + ) + (local-vars + (tex-data pointer) + (tex-dest-base-chunk uint) + (chunk-count int) + (chunks-to-upload-count int) + (first-chunk-idx-to-upload int) + (tex-id uint) + ) + (let ((total-upload-size 0)) + (let* + ((dma-buf (-> *display* frames (-> *display* on-screen) frame global-buf)) + (dma-start (-> dma-buf base)) + ) + (set! tex-data (-> page segment 0 block-data)) + (set! tex-dest-base-chunk (shr (-> page segment 0 dest) 12)) + (set! chunk-count (the-as int (-> page segment 0 size))) + (set! chunks-to-upload-count 0) + (set! first-chunk-idx-to-upload 0) + (set! tex-id (-> page id)) + (let ((v1-8 mode)) + (cond + ((= v1-8 -3) + (return 0) + ) + ((zero? v1-8) + ) + ((= v1-8 -2) + (set! chunk-count (the-as int (+ chunk-count (-> page segment 1 size)))) + ) + ((= v1-8 -1) + (set! chunk-count (the-as int (-> page size))) + ) + ((= v1-8 2) + (set! tex-data (-> page segment 2 block-data)) + (set! tex-dest-base-chunk (shr (-> page segment 2 dest) 12)) + (set! chunk-count (the-as int (-> page segment 2 size))) + ) + ) + ) + (set! + chunk-count + (shr + (min (the-as int (-> segment size)) (the-as int (+ chunk-count 4095))) + 12 + ) + ) + (dotimes (upload-chunk-idx chunk-count) + (let + ((current-dest-chunk + (+ tex-dest-base-chunk (the-as uint upload-chunk-idx)) + ) + ) + (cond + ((zero? chunks-to-upload-count) + (when (!= (-> pool ids current-dest-chunk) tex-id) + (set! first-chunk-idx-to-upload upload-chunk-idx) + (set! (-> pool ids current-dest-chunk) tex-id) + (set! chunks-to-upload-count (+ chunks-to-upload-count 1)) + ) + ) + (else + (cond + ((= (-> pool ids current-dest-chunk) tex-id) + (upload-vram-data + dma-buf + (the-as + int + (* + (+ tex-dest-base-chunk (the-as uint first-chunk-idx-to-upload)) + 64 + ) + ) + (&+ tex-data (shl first-chunk-idx-to-upload 14)) + (* chunks-to-upload-count 32) + ) + (+! total-upload-size chunks-to-upload-count) + (set! chunks-to-upload-count 0) + 0 + ) + (else + (set! (-> pool ids current-dest-chunk) tex-id) + (set! chunks-to-upload-count (+ chunks-to-upload-count 1)) + ) + ) + ) + ) + ) + ) + (when (nonzero? chunks-to-upload-count) + (upload-vram-data + dma-buf + (the-as + int + (* (+ tex-dest-base-chunk (the-as uint first-chunk-idx-to-upload)) 64) + ) + (&+ tex-data (shl first-chunk-idx-to-upload 14)) + (* chunks-to-upload-count 32) + ) + (+! total-upload-size chunks-to-upload-count) + ) + (let* ((v1-47 dma-buf) + (dma (the-as dma-packet (-> v1-47 base))) + ) + (set! (-> dma dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> dma vif0) (new 'static 'vif-tag)) + (set! + (-> dma vif1) + (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1) + ) + (set! (-> v1-47 base) (&+ (the-as pointer dma) 16)) + ) + (let* ((v1-48 dma-buf) + (gif (the-as gs-gif-tag (-> v1-48 base))) + ) + (set! (-> gif tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! + (-> gif regs) + (new 'static 'gif-tag-regs + :regs0 (gif-reg-id a+d) + :regs1 (gif-reg-id a+d) + :regs2 (gif-reg-id a+d) + :regs3 (gif-reg-id a+d) + :regs4 (gif-reg-id a+d) + :regs5 (gif-reg-id a+d) + :regs6 (gif-reg-id a+d) + :regs7 (gif-reg-id a+d) + :regs8 (gif-reg-id a+d) + :regs9 (gif-reg-id a+d) + :regs10 (gif-reg-id a+d) + :regs11 (gif-reg-id a+d) + :regs12 (gif-reg-id a+d) + :regs13 (gif-reg-id a+d) + :regs14 (gif-reg-id a+d) + :regs15 (gif-reg-id a+d) + ) + ) + (set! (-> v1-48 base) (&+ (the-as pointer gif) 16)) + ) + (let* ((v1-49 dma-buf) + (gif-data (-> v1-49 base)) + ) + (set! (-> (the-as (pointer uint64) gif-data) 0) (the-as uint 1)) + (set! (-> (the-as (pointer gs-reg64) gif-data) 1) (gs-reg64 texflush)) + (set! (-> v1-49 base) (&+ gif-data 16)) + ) + (let ((a3-3 (-> dma-buf base))) + (let ((dma-end (the-as dma-packet (-> dma-buf base)))) + (set! (-> dma-end dma) (new 'static 'dma-tag :id (dma-tag-id next))) + (set! (-> dma-end vif0) (new 'static 'vif-tag)) + (set! (-> dma-end vif1) (new 'static 'vif-tag)) + (set! (-> dma-buf base) (&+ (the-as pointer dma-end) 16)) + ) + (dma-bucket-insert-tag + (-> *display* frames (-> *display* on-screen) frame bucket-group) + bucket-idx + dma-start + (the-as (pointer dma-tag) a3-3) + ) + ) + ) + (shl total-upload-size 14) + ) + ) + +;; definition for function update-vram-pages +(defun + update-vram-pages + ((pool texture-pool) + (pool-segment texture-pool-segment) + (page texture-page) + (mode int) + ) + (-> page segment 0 block-data) + (let ((dest-block (shr (-> page segment 0 dest) 12)) + (sz (-> page segment 0 size)) + (modified-chunk-count 0) + ) + 0 + (let ((page-id (-> page id))) + (cond + ((= mode -3) + (return 0) + ) + ((zero? mode) + ) + ((= mode -2) + (+! sz (-> page segment 1 size)) + ) + ((= mode -1) + (set! sz (-> page size)) + ) + ((= mode 2) + (-> page segment 2 block-data) + (set! dest-block (shr (-> page segment 2 dest) 12)) + (set! sz (-> page segment 2 size)) + ) + ) + (let + ((upload-chunks + (shr + (min (the-as int (-> pool-segment size)) (the-as int (+ sz 4095))) + 12 + ) + ) + ) + (dotimes (chunk-idx upload-chunks) + (let ((vram-chunk (+ dest-block (the-as uint chunk-idx)))) + (cond + ((zero? modified-chunk-count) + (when (!= (-> pool ids vram-chunk) page-id) + (set! (-> pool ids vram-chunk) page-id) + (+! modified-chunk-count 1) + ) + ) + (else + (cond + ((= (-> pool ids vram-chunk) page-id) + (set! modified-chunk-count 0) + ) + (else + (set! (-> pool ids vram-chunk) page-id) + (+! modified-chunk-count 1) + ) + ) + ) + ) + ) + ) + ) + ) + ) + 0 + ) + +;; definition for function upload-vram-pages-pris +(defun + upload-vram-pages-pris + ((pool texture-pool) + (segment texture-pool-segment) + (page texture-page) + (bucket-idx int) + (allow-cache-mask int) + ) + (local-vars + (tex-data pointer) + (tex-dest-base-chunk uint) + (chunk-count int) + (chunks-to-upload-count int) + (first-chunk-idx-to-upload int) + (page-id uint) + (current-dest-chunk uint) + (allow-cached symbol) + ) + (let ((total-upload-size 0)) + (let* + ((dma-buf (-> *display* frames (-> *display* on-screen) frame global-buf)) + (s4-0 (-> dma-buf base)) + ) + (set! tex-data (-> page segment 0 block-data)) + (set! tex-dest-base-chunk (shr (-> page segment 0 dest) 12)) + (set! chunk-count (the-as int (-> page size))) + (set! chunks-to-upload-count 0) + (set! first-chunk-idx-to-upload 0) + (set! page-id (-> page id)) + (set! + chunk-count + (shr + (min (the-as int (-> segment size)) (the-as int (+ chunk-count 4095))) + 12 + ) + ) + (dotimes (upload-chunk-idx chunk-count) + (set! + current-dest-chunk + (+ tex-dest-base-chunk (the-as uint upload-chunk-idx)) + ) + (set! + allow-cached + (nonzero? (logand allow-cache-mask (ash 1 upload-chunk-idx))) + ) + (cond + ((zero? chunks-to-upload-count) + (when (and (!= (-> pool ids current-dest-chunk) page-id) allow-cached) + (set! first-chunk-idx-to-upload upload-chunk-idx) + (set! (-> pool ids current-dest-chunk) page-id) + (set! chunks-to-upload-count (+ chunks-to-upload-count 1)) + ) + ) + (else + (cond + ((or (= (-> pool ids current-dest-chunk) page-id) (not allow-cached)) + (upload-vram-data + dma-buf + (the-as + int + (* + (+ tex-dest-base-chunk (the-as uint first-chunk-idx-to-upload)) + 64 + ) + ) + (&+ tex-data (shl first-chunk-idx-to-upload 14)) + (* chunks-to-upload-count 32) + ) + (+! total-upload-size chunks-to-upload-count) + (set! chunks-to-upload-count 0) + 0 + ) + (else + (set! (-> pool ids current-dest-chunk) page-id) + (set! chunks-to-upload-count (+ chunks-to-upload-count 1)) + ) + ) + ) + ) + ) + (when (nonzero? chunks-to-upload-count) + (upload-vram-data + dma-buf + (the-as + int + (* (+ tex-dest-base-chunk (the-as uint first-chunk-idx-to-upload)) 64) + ) + (&+ tex-data (shl first-chunk-idx-to-upload 14)) + (* chunks-to-upload-count 32) + ) + (+! total-upload-size chunks-to-upload-count) + ) + (let* ((v1-52 dma-buf) + (dma (the-as dma-packet (-> v1-52 base))) + ) + (set! (-> dma dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> dma vif0) (new 'static 'vif-tag)) + (set! + (-> dma vif1) + (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1) + ) + (set! (-> v1-52 base) (&+ (the-as pointer dma) 16)) + ) + (let* ((v1-53 dma-buf) + (gif (the-as gs-gif-tag (-> v1-53 base))) + ) + (set! (-> gif tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! + (-> gif regs) + (new 'static 'gif-tag-regs + :regs0 (gif-reg-id a+d) + :regs1 (gif-reg-id a+d) + :regs2 (gif-reg-id a+d) + :regs3 (gif-reg-id a+d) + :regs4 (gif-reg-id a+d) + :regs5 (gif-reg-id a+d) + :regs6 (gif-reg-id a+d) + :regs7 (gif-reg-id a+d) + :regs8 (gif-reg-id a+d) + :regs9 (gif-reg-id a+d) + :regs10 (gif-reg-id a+d) + :regs11 (gif-reg-id a+d) + :regs12 (gif-reg-id a+d) + :regs13 (gif-reg-id a+d) + :regs14 (gif-reg-id a+d) + :regs15 (gif-reg-id a+d) + ) + ) + (set! (-> v1-53 base) (&+ (the-as pointer gif) 16)) + ) + (let* ((v1-54 dma-buf) + (a0-25 (-> v1-54 base)) + ) + (set! (-> (the-as (pointer uint64) a0-25) 0) (the-as uint 1)) + (set! (-> (the-as (pointer gs-reg64) a0-25) 1) (gs-reg64 texflush)) + (set! (-> v1-54 base) (&+ a0-25 16)) + ) + (let ((a3-3 (-> dma-buf base))) + (let ((dma-end (the-as dma-packet (-> dma-buf base)))) + (set! (-> dma-end dma) (new 'static 'dma-tag :id (dma-tag-id next))) + (set! (-> dma-end vif0) (new 'static 'vif-tag)) + (set! (-> dma-end vif1) (new 'static 'vif-tag)) + (set! (-> dma-buf base) (&+ (the-as pointer dma-end) 16)) + ) + (dma-bucket-insert-tag + (-> *display* frames (-> *display* on-screen) frame bucket-group) + bucket-idx + s4-0 + (the-as (pointer dma-tag) a3-3) + ) + ) + ) + (shl total-upload-size 14) + ) + ) + +;; definition for function texture-page-near-allocate-0 +(defun + texture-page-near-allocate-0 + ((pool texture-pool) (page texture-page) (heap kheap) (mode int)) + (relocate-dests! page (the-as int (-> pool segment-near dest)) 2) + (let ((common-dest (-> pool segment-common dest))) + (dotimes (page-seg-idx 2) + (relocate-dests! page (the-as int common-dest) page-seg-idx) + (+! common-dest (-> page segment page-seg-idx size)) + ) + ) + (upload-now! page 2) + (update-vram-pages pool (-> pool segment-near) page 2) + (let + ((page-seg-2-size + (logand -4096 (the-as int (+ (-> page segment 2 size) 4095))) + ) + ) + (cond + ((< (the-as uint #x24000) page-seg-2-size) + (let ((after-seg-2-data (&+ (-> page segment 2 block-data) #x90000))) + (let ((seg-2-data (-> page segment 2 block-data))) + (set! (-> page segment 2 size) (+ -147456 (the-as int page-seg-2-size))) + (set! + (-> page segment 2 dest) + (+ #x24000 (the-as int (-> pool segment-near dest))) + ) + (set! + (-> heap current) + (&+ (-> page segment 2 block-data) (* (-> page segment 2 size) 4)) + ) + (set! (-> *texture-relocate-later* memcpy) #t) + (set! (-> *texture-relocate-later* dest) (the-as uint seg-2-data)) + ) + (set! (-> *texture-relocate-later* source) (the-as uint after-seg-2-data)) + ) + (set! (-> *texture-relocate-later* move) (* (-> page segment 2 size) 4)) + ) + (else + (set! (-> page segment 2 size) (the-as uint 0)) + (set! (-> heap current) (-> page segment 2 block-data)) + ) + ) + ) + (set! (-> *texture-pool* allocate-func) texture-page-common-allocate) + (set! (-> *level* unknown-level-2 code-memory-end) (the-as pointer page)) + page + ) + +;; definition for function texture-page-near-allocate-1 +(defun + texture-page-near-allocate-1 + ((pool texture-pool) (page texture-page) (heap kheap) (mode int)) + (let + ((seg2-size (logand -4096 (the-as int (+ (-> page segment 2 size) 4095))))) + (let + ((seg2-dest + (+ (- #x62000 (the-as int seg2-size)) (-> pool segment-near dest)) + ) + ) + (relocate-dests! page (the-as int seg2-dest) 2) + ) + (let ((common-dest (-> pool segment-common dest))) + (dotimes (page-seg-idx 2) + (relocate-dests! page (the-as int common-dest) page-seg-idx) + (+! common-dest (-> page segment page-seg-idx size)) + ) + ) + (upload-now! page 2) + (update-vram-pages pool (-> pool segment-near) page 2) + (cond + ((< (the-as uint #x24000) seg2-size) + (set! (-> page segment 2 size) (+ -147456 (the-as int seg2-size))) + (set! + (-> heap current) + (&+ (-> page segment 2 block-data) (* (-> page segment 2 size) 4)) + ) + ) + (else + (set! (-> page segment 2 size) (the-as uint 0)) + (set! (-> heap current) (-> page segment 2 block-data)) + ) + ) + ) + (set! (-> *texture-pool* allocate-func) texture-page-common-allocate) + (set! (-> *level* unknown-level-2 code-memory-end) (the-as pointer page)) + page + ) + +;; definition for function texture-page-level-allocate +(defun + texture-page-level-allocate + ((pool texture-pool) (page texture-page) (heap kheap) (mode int)) + (let ((common-id (lookup-boot-common-id pool mode))) + (cond + ((>= common-id 0) + (texture-page-common-allocate pool page heap mode) + (set! (-> pool common-page common-id) page) + ) + (else + (let ((level-idx (-> *level* unknown-level-2 index))) + (cond + ((zero? level-idx) + (texture-page-near-allocate-0 pool page heap mode) + ) + ((= level-idx 1) + (texture-page-near-allocate-1 pool page heap mode) + ) + ) + ) + ) + ) + ) + page + ) + +;; definition for function texture-page-size-check +(defun + texture-page-size-check + ((pool texture-pool) (level level) (hide-prints symbol)) + (let ((oversize 0)) + (let* ((tfrag-page (-> level texture-page 0)) + (tfrag-mip0-size (-> tfrag-page mip0-size)) + ) + (when tfrag-page + (if (< (the-as uint #x3e000) tfrag-mip0-size) + (set! oversize (logior oversize 1)) + ) + (if + (< + (the-as uint #x1c000) + (+ (-> tfrag-page segment 0 size) (-> tfrag-page segment 1 size)) + ) + (set! oversize (logior oversize 1)) + ) + (when (not hide-prints) + (format + #t + "~Tlevel ~10S TFRAG tpage ~A uses ~DK of near ~DK~%" + (-> level name) + (-> tfrag-page name) + (shr tfrag-mip0-size 8) + 992 + ) + (format + #t + "~Tlevel ~10S TFRAG tpage ~A uses ~DK of common ~DK~%" + (-> level name) + (-> tfrag-page name) + (shr (+ (-> tfrag-page segment 0 size) (-> tfrag-page segment 1 size)) 8) + 448 + ) + ) + ) + ) + (let ((pris-page (-> level texture-page 1))) + (when pris-page + (if (< (the-as uint #x1c000) (-> pris-page size)) + (set! oversize (logior oversize 2)) + ) + (if (not hide-prints) + (format + #t + "~Tlevel ~10S PRIS tpage ~A uses ~DK of common ~DK~%" + (-> level name) + (-> pris-page name) + (shr (-> pris-page size) 8) + 448 + ) + ) + ) + ) + (let ((shrub-page (-> level texture-page 2))) + (when shrub-page + (if (< (the-as uint #x1c000) (-> shrub-page size)) + (set! oversize (logior oversize 4)) + ) + (if (not hide-prints) + (format + #t + "~Tlevel ~10S SHRUB tpage ~A uses ~DK of common ~DK~%" + (-> level name) + (-> shrub-page name) + (shr (-> shrub-page size) 8) + 448 + ) + ) + ) + ) + (let ((alpha-page (-> level texture-page 3))) + (when alpha-page + (if (< (the-as uint #x1c000) (-> alpha-page size)) + (set! oversize (logior oversize 8)) + ) + (if (not hide-prints) + (format + #t + "~Tlevel ~10S ALPHA tpage ~A uses ~DK of common ~DK~%" + (-> level name) + (-> alpha-page name) + (shr (-> alpha-page size) 8) + 448 + ) + ) + ) + ) + (let ((water-page (-> level texture-page 4))) + (when water-page + (if (< (the-as uint #x1c000) (-> water-page size)) + (set! oversize (logior oversize 16)) + ) + (if (not hide-prints) + (format + #t + "~Tlevel ~10S WATER tpage ~A uses ~DK of common ~DK~%" + (-> level name) + (-> water-page name) + (shr (-> water-page size) 8) + 448 + ) + ) + ) + ) + oversize + ) + ) + +;; definition for method 13 of type texture-pool +;; INFO: Return type mismatch int vs none. +(defmethod + login-level-textures + texture-pool + ((obj texture-pool) + (level level) + (max-page-kind int) + (id-array (pointer texture-id)) + ) + (dotimes (page-idx 9) + (set! (-> level texture-page page-idx) #f) + ) + (when (>= max-page-kind 0) + (let + ((tfrag-dir-entry + (texture-page-login (-> id-array 0) (if (= (-> level index) 1) + texture-page-near-allocate-1 + texture-page-near-allocate-0 + ) + loading-level + ) + ) + ) + (if tfrag-dir-entry + (set! (-> level texture-page 0) (-> tfrag-dir-entry page)) + ) + ) + ) + (when (>= max-page-kind 1) + (let + ((pris-dir-entry + (texture-page-login + (-> id-array 1) + texture-page-common-allocate + loading-level + ) + ) + ) + (if pris-dir-entry + (set! (-> level texture-page 1) (-> pris-dir-entry page)) + ) + ) + ) + (when (>= max-page-kind 2) + (let + ((shrub-dir-entry + (texture-page-login + (-> id-array 2) + texture-page-common-allocate + loading-level + ) + ) + ) + (if shrub-dir-entry + (set! (-> level texture-page 2) (-> shrub-dir-entry page)) + ) + ) + ) + (when (>= max-page-kind 3) + (let + ((alpha-dir-entry + (texture-page-login + (-> id-array 3) + texture-page-common-allocate + loading-level + ) + ) + ) + (if alpha-dir-entry + (set! (-> level texture-page 3) (-> alpha-dir-entry page)) + ) + ) + ) + (when (>= max-page-kind 4) + (let + ((water-dir-entry + (texture-page-login + (-> id-array 4) + texture-page-common-allocate + loading-level + ) + ) + ) + (if water-dir-entry + (set! (-> level texture-page 4) (-> water-dir-entry page)) + ) + ) + ) + (let ((overflow-bits (texture-page-size-check obj level #t))) + (when (nonzero? overflow-bits) + (format + #t + "-------------------- tpage overflow error #x~X~%" + overflow-bits + ) + (texture-page-size-check obj level #f) + (format #t "--------------------~%") + ) + ) + 0 + (none) + ) + +;; definition for method 14 of type texture-pool +;; INFO: Return type mismatch int vs none. +(defmethod + add-tex-to-dma! + texture-pool + ((obj texture-pool) (level level) (tex-page-kind int)) + (when (zero? tex-page-kind) + (let ((tfrag-page (-> level texture-page 0)) + (tfrag-bucket (if (zero? (-> level index)) + 5 + 12 + ) + ) + (distance + (fmin + (fmin + (-> level closest-object 0) + (if + (and + (< 0.0 (-> level level-distance)) + (< + (+ 409600.0 (-> level level-distance)) + (-> level closest-object 5) + ) + ) + 4095996000.0 + (-> level closest-object 5) + ) + ) + (-> level closest-object 6) + ) + ) + ) + (when tfrag-page + (set! (-> level upload-size 0) 0) + (if (< distance 81920.0) + (set! + (-> level upload-size 0) + (+ + (-> level upload-size 0) + (upload-vram-pages obj (-> obj segment-near) tfrag-page 2 tfrag-bucket) + ) + ) + ) + (cond + ((= distance 4095996000.0) + ) + ((< 102400.0 distance) + (set! + (-> level upload-size 0) + (+ + (-> level upload-size 0) + (upload-vram-pages + obj + (-> obj segment-common) + tfrag-page + 0 + tfrag-bucket + ) + ) + ) + ) + (else + (set! + (-> level upload-size 0) + (+ + (-> level upload-size 0) + (upload-vram-pages + obj + (-> obj segment-common) + tfrag-page + -2 + tfrag-bucket + ) + ) + ) + ) + ) + ) + ) + 0 + ) + (when (= tex-page-kind 1) + (let ((pris-page (-> level texture-page 1))) + (when (and pris-page (nonzero? pris-page)) + (let ((pris-bucket (if (zero? (-> level index)) + 48 + 51 + ) + ) + ) + (set! + (-> level upload-size 1) + (upload-vram-pages-pris + obj + (-> obj segment-common) + pris-page + pris-bucket + (the-as int (-> level texture-mask 7)) + ) + ) + ) + ) + ) + ) + (when (= tex-page-kind 2) + (let ((shrub-page (-> level texture-page 2)) + (shrub-closest (-> level closest-object 2)) + ) + (when (and shrub-page (nonzero? shrub-page)) + (let ((shrub-bucket (if (zero? (-> level index)) + 19 + 25 + ) + ) + (shrub-mode (cond + ((= shrub-closest 4095996000.0) + -3 + ) + ((< 102400.0 shrub-closest) + 0 + ) + ((< 81920.0 shrub-closest) + -2 + ) + (else + -1 + ) + ) + ) + ) + (set! + (-> level upload-size 2) + (upload-vram-pages + obj + (-> obj segment-common) + shrub-page + shrub-mode + shrub-bucket + ) + ) + ) + ) + ) + ) + (when (= tex-page-kind 3) + (let ((alpha-page (-> level texture-page 3)) + (alpha-closest (-> level closest-object 3)) + ) + (when (and alpha-page (nonzero? alpha-page)) + (let ((alpha-bucket (if (zero? (-> level index)) + 31 + 38 + ) + ) + (alpha-mode (cond + ((< 348160.0 alpha-closest) + 0 + ) + ((< 163840.0 alpha-closest) + -2 + ) + (else + -1 + ) + ) + ) + ) + (let ((alpha-dest-chunk (shr (-> alpha-page segment 0 dest) 12))) + (when (movie?) + (set! (-> obj ids alpha-dest-chunk) (the-as uint 0)) + (set! (-> obj ids (+ alpha-dest-chunk 1)) (the-as uint 0)) + 0 + ) + ) + (set! + (-> level upload-size 3) + (upload-vram-pages + obj + (-> obj segment-common) + alpha-page + alpha-mode + alpha-bucket + ) + ) + ) + ) + ) + ) + (when (= tex-page-kind 4) + (let ((water-page (-> level texture-page 4))) + (when (and water-page (nonzero? water-page)) + (let ((water-bucket (if (zero? (-> level index)) + 57 + 60 + ) + ) + ) + (set! + (-> level upload-size 4) + (upload-vram-pages-pris + obj + (-> obj segment-common) + water-page + water-bucket + (the-as int (-> level texture-mask 8)) + ) + ) + ) + ) + ) + ) + 0 + (none) + ) + +;; definition for method 21 of type texture-pool +(defmethod upload-one-common! texture-pool ((obj texture-pool)) + (dotimes (v1-0 32) + (let ((a2-0 (-> obj common-page v1-0))) + (when + (and + (nonzero? a2-0) + (nonzero? (logand (-> obj common-page-mask) (ash 1 v1-0))) + ) + (upload-vram-pages obj (-> obj segment-common) a2-0 -2 65) + (return #f) + ) + ) + ) + #f + ) + +;; definition for method 11 of type level +;; INFO: Return type mismatch int vs none. +(defmethod add-irq-to-tex-buckets! level ((obj level)) + (cond + ((zero? (-> obj index)) + (let* + ((v1-4 (-> *display* frames (-> *display* on-screen) frame global-buf)) + (a2-0 (-> v1-4 base)) + ) + (let* ((a0-4 v1-4) + (a1-0 (the-as object (-> a0-4 base))) + ) + (set! + (-> (the-as dma-packet a1-0) dma) + (new 'static 'dma-tag :id (dma-tag-id cnt)) + ) + (set! (-> (the-as dma-packet a1-0) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a1-0) vif1) (new 'static 'vif-tag :irq #x1)) + (set! (-> a0-4 base) (&+ (the-as pointer a1-0) 16)) + ) + (let ((a3-3 (-> v1-4 base))) + (let ((a0-5 (the-as object (-> v1-4 base)))) + (set! + (-> (the-as dma-packet a0-5) dma) + (new 'static 'dma-tag :id (dma-tag-id next)) + ) + (set! (-> (the-as dma-packet a0-5) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-5) vif1) (new 'static 'vif-tag)) + (set! (-> v1-4 base) (&+ (the-as pointer a0-5) 16)) + ) + (dma-bucket-insert-tag + (-> *display* frames (-> *display* on-screen) frame bucket-group) + 5 + a2-0 + (the-as (pointer dma-tag) a3-3) + ) + ) + ) + (let* + ((v1-12 (-> *display* frames (-> *display* on-screen) frame global-buf)) + (a2-1 (-> v1-12 base)) + ) + (let* ((a0-14 v1-12) + (a1-4 (the-as object (-> a0-14 base))) + ) + (set! + (-> (the-as dma-packet a1-4) dma) + (new 'static 'dma-tag :id (dma-tag-id cnt)) + ) + (set! (-> (the-as dma-packet a1-4) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a1-4) vif1) (new 'static 'vif-tag :irq #x1)) + (set! (-> a0-14 base) (&+ (the-as pointer a1-4) 16)) + ) + (let ((a3-7 (-> v1-12 base))) + (let ((a0-15 (the-as object (-> v1-12 base)))) + (set! + (-> (the-as dma-packet a0-15) dma) + (new 'static 'dma-tag :id (dma-tag-id next)) + ) + (set! (-> (the-as dma-packet a0-15) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-15) vif1) (new 'static 'vif-tag)) + (set! (-> v1-12 base) (&+ (the-as pointer a0-15) 16)) + ) + (dma-bucket-insert-tag + (-> *display* frames (-> *display* on-screen) frame bucket-group) + 48 + a2-1 + (the-as (pointer dma-tag) a3-7) + ) + ) + ) + (let* + ((v1-20 (-> *display* frames (-> *display* on-screen) frame global-buf)) + (a2-2 (-> v1-20 base)) + ) + (let* ((a0-24 v1-20) + (a1-8 (the-as object (-> a0-24 base))) + ) + (set! + (-> (the-as dma-packet a1-8) dma) + (new 'static 'dma-tag :id (dma-tag-id cnt)) + ) + (set! (-> (the-as dma-packet a1-8) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a1-8) vif1) (new 'static 'vif-tag :irq #x1)) + (set! (-> a0-24 base) (&+ (the-as pointer a1-8) 16)) + ) + (let ((a3-11 (-> v1-20 base))) + (let ((a0-25 (the-as object (-> v1-20 base)))) + (set! + (-> (the-as dma-packet a0-25) dma) + (new 'static 'dma-tag :id (dma-tag-id next)) + ) + (set! (-> (the-as dma-packet a0-25) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-25) vif1) (new 'static 'vif-tag)) + (set! (-> v1-20 base) (&+ (the-as pointer a0-25) 16)) + ) + (dma-bucket-insert-tag + (-> *display* frames (-> *display* on-screen) frame bucket-group) + 19 + a2-2 + (the-as (pointer dma-tag) a3-11) + ) + ) + ) + (let* + ((v1-28 (-> *display* frames (-> *display* on-screen) frame global-buf)) + (a2-3 (-> v1-28 base)) + ) + (let* ((a0-34 v1-28) + (a1-12 (the-as object (-> a0-34 base))) + ) + (set! + (-> (the-as dma-packet a1-12) dma) + (new 'static 'dma-tag :id (dma-tag-id cnt)) + ) + (set! (-> (the-as dma-packet a1-12) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a1-12) vif1) (new 'static 'vif-tag :irq #x1)) + (set! (-> a0-34 base) (&+ (the-as pointer a1-12) 16)) + ) + (let ((a3-15 (-> v1-28 base))) + (let ((a0-35 (the-as object (-> v1-28 base)))) + (set! + (-> (the-as dma-packet a0-35) dma) + (new 'static 'dma-tag :id (dma-tag-id next)) + ) + (set! (-> (the-as dma-packet a0-35) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-35) vif1) (new 'static 'vif-tag)) + (set! (-> v1-28 base) (&+ (the-as pointer a0-35) 16)) + ) + (dma-bucket-insert-tag + (-> *display* frames (-> *display* on-screen) frame bucket-group) + 31 + a2-3 + (the-as (pointer dma-tag) a3-15) + ) + ) + ) + ) + (else + (let* + ((v1-36 (-> *display* frames (-> *display* on-screen) frame global-buf)) + (a2-4 (-> v1-36 base)) + ) + (let* ((a0-44 v1-36) + (a1-16 (the-as object (-> a0-44 base))) + ) + (set! + (-> (the-as dma-packet a1-16) dma) + (new 'static 'dma-tag :id (dma-tag-id cnt)) + ) + (set! (-> (the-as dma-packet a1-16) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a1-16) vif1) (new 'static 'vif-tag :irq #x1)) + (set! (-> a0-44 base) (&+ (the-as pointer a1-16) 16)) + ) + (let ((a3-19 (-> v1-36 base))) + (let ((a0-45 (the-as object (-> v1-36 base)))) + (set! + (-> (the-as dma-packet a0-45) dma) + (new 'static 'dma-tag :id (dma-tag-id next)) + ) + (set! (-> (the-as dma-packet a0-45) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-45) vif1) (new 'static 'vif-tag)) + (set! (-> v1-36 base) (&+ (the-as pointer a0-45) 16)) + ) + (dma-bucket-insert-tag + (-> *display* frames (-> *display* on-screen) frame bucket-group) + 12 + a2-4 + (the-as (pointer dma-tag) a3-19) + ) + ) + ) + (let* + ((v1-44 (-> *display* frames (-> *display* on-screen) frame global-buf)) + (a2-5 (-> v1-44 base)) + ) + (let* ((a0-54 v1-44) + (a1-20 (the-as object (-> a0-54 base))) + ) + (set! + (-> (the-as dma-packet a1-20) dma) + (new 'static 'dma-tag :id (dma-tag-id cnt)) + ) + (set! (-> (the-as dma-packet a1-20) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a1-20) vif1) (new 'static 'vif-tag :irq #x1)) + (set! (-> a0-54 base) (&+ (the-as pointer a1-20) 16)) + ) + (let ((a3-23 (-> v1-44 base))) + (let ((a0-55 (the-as object (-> v1-44 base)))) + (set! + (-> (the-as dma-packet a0-55) dma) + (new 'static 'dma-tag :id (dma-tag-id next)) + ) + (set! (-> (the-as dma-packet a0-55) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-55) vif1) (new 'static 'vif-tag)) + (set! (-> v1-44 base) (&+ (the-as pointer a0-55) 16)) + ) + (dma-bucket-insert-tag + (-> *display* frames (-> *display* on-screen) frame bucket-group) + 51 + a2-5 + (the-as (pointer dma-tag) a3-23) + ) + ) + ) + (let* + ((v1-52 (-> *display* frames (-> *display* on-screen) frame global-buf)) + (a2-6 (-> v1-52 base)) + ) + (let* ((a0-64 v1-52) + (a1-24 (the-as object (-> a0-64 base))) + ) + (set! + (-> (the-as dma-packet a1-24) dma) + (new 'static 'dma-tag :id (dma-tag-id cnt)) + ) + (set! (-> (the-as dma-packet a1-24) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a1-24) vif1) (new 'static 'vif-tag :irq #x1)) + (set! (-> a0-64 base) (&+ (the-as pointer a1-24) 16)) + ) + (let ((a3-27 (-> v1-52 base))) + (let ((a0-65 (the-as object (-> v1-52 base)))) + (set! + (-> (the-as dma-packet a0-65) dma) + (new 'static 'dma-tag :id (dma-tag-id next)) + ) + (set! (-> (the-as dma-packet a0-65) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-65) vif1) (new 'static 'vif-tag)) + (set! (-> v1-52 base) (&+ (the-as pointer a0-65) 16)) + ) + (dma-bucket-insert-tag + (-> *display* frames (-> *display* on-screen) frame bucket-group) + 25 + a2-6 + (the-as (pointer dma-tag) a3-27) + ) + ) + ) + (let* + ((v1-60 (-> *display* frames (-> *display* on-screen) frame global-buf)) + (a2-7 (-> v1-60 base)) + ) + (let* ((a0-74 v1-60) + (a1-28 (the-as object (-> a0-74 base))) + ) + (set! + (-> (the-as dma-packet a1-28) dma) + (new 'static 'dma-tag :id (dma-tag-id cnt)) + ) + (set! (-> (the-as dma-packet a1-28) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a1-28) vif1) (new 'static 'vif-tag :irq #x1)) + (set! (-> a0-74 base) (&+ (the-as pointer a1-28) 16)) + ) + (let ((a3-31 (-> v1-60 base))) + (let ((a0-75 (the-as object (-> v1-60 base)))) + (set! + (-> (the-as dma-packet a0-75) dma) + (new 'static 'dma-tag :id (dma-tag-id next)) + ) + (set! (-> (the-as dma-packet a0-75) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-75) vif1) (new 'static 'vif-tag)) + (set! (-> v1-60 base) (&+ (the-as pointer a0-75) 16)) + ) + (dma-bucket-insert-tag + (-> *display* frames (-> *display* on-screen) frame bucket-group) + 38 + a2-7 + (the-as (pointer dma-tag) a3-31) + ) + ) + ) + ) + ) + 0 + (none) + ) + +;; definition for symbol *txt-dma-list*, type dma-buffer +(define *txt-dma-list* (new 'global 'dma-buffer 4096)) + +;; definition for method 14 of type texture-page +;; INFO: Return type mismatch int vs none. +(defmethod upload-now! texture-page ((obj texture-page) (arg0 int)) + (let ((gp-0 *txt-dma-list*)) + (let ((v1-0 gp-0)) + (set! (-> v1-0 base) (-> v1-0 data)) + (set! (-> v1-0 end) (&-> v1-0 data-buffer (-> v1-0 allocated-length))) + ) + (add-to-dma-buffer obj gp-0 arg0) + (let* ((v1-3 gp-0) + (a0-1 (the-as object (-> v1-3 base))) + ) + (set! + (-> (the-as dma-packet a0-1) dma) + (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt)) + ) + (set! (-> (the-as dma-packet a0-1) vif0) (new 'static 'vif-tag)) + (set! + (-> (the-as dma-packet a0-1) vif1) + (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1) + ) + (set! (-> v1-3 base) (&+ (the-as pointer a0-1) 16)) + ) + (let* ((v1-4 gp-0) + (a0-3 (the-as object (-> v1-4 base))) + ) + (set! + (-> (the-as gs-gif-tag a0-3) tag) + (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1) + ) + (set! + (-> (the-as gs-gif-tag a0-3) regs) + (new 'static 'gif-tag-regs + :regs0 (gif-reg-id a+d) + :regs1 (gif-reg-id a+d) + :regs2 (gif-reg-id a+d) + :regs3 (gif-reg-id a+d) + :regs4 (gif-reg-id a+d) + :regs5 (gif-reg-id a+d) + :regs6 (gif-reg-id a+d) + :regs7 (gif-reg-id a+d) + :regs8 (gif-reg-id a+d) + :regs9 (gif-reg-id a+d) + :regs10 (gif-reg-id a+d) + :regs11 (gif-reg-id a+d) + :regs12 (gif-reg-id a+d) + :regs13 (gif-reg-id a+d) + :regs14 (gif-reg-id a+d) + :regs15 (gif-reg-id a+d) + ) + ) + (set! (-> v1-4 base) (&+ (the-as pointer a0-3) 16)) + ) + (let* ((v1-5 gp-0) + (a0-5 (-> v1-5 base)) + ) + (set! (-> (the-as (pointer uint64) a0-5) 0) (the-as uint 1)) + (set! (-> (the-as (pointer gs-reg64) a0-5) 1) (gs-reg64 texflush)) + (set! (-> v1-5 base) (&+ a0-5 16)) + ) + (let* ((v1-6 gp-0) + (a0-7 (the-as object (-> v1-6 base))) + ) + (set! + (-> (the-as dma-packet a0-7) dma) + (new 'static 'dma-tag :id (dma-tag-id end)) + ) + (set! (-> (the-as (pointer uint64) a0-7) 1) (the-as uint 0)) + (set! (-> v1-6 base) (&+ (the-as pointer a0-7) 16)) + ) + (dma-buffer-send-chain (the-as dma-bank-source #x1000a000) gp-0) + ) + (dma-sync (the-as pointer #x1000a000) 0 0) + (none) + ) + +;; definition for method 13 of type texture-page +(defmethod + add-to-dma-buffer + texture-page + ((obj texture-page) (dma-buff dma-buffer) (mode int)) + (local-vars (total-size int)) + (let ((v1-0 mode)) + (set! total-size (the-as int (cond + ((= v1-0 -3) + 0 + ) + ((= v1-0 -2) + (the-as + int + (+ + (-> obj segment 0 size) + (-> obj segment 1 size) + ) + ) + ) + ((= v1-0 -1) + (the-as int (-> obj size)) + ) + (else + (the-as int (-> obj segment mode size)) + ) + ) + ) + ) + ) + (let* ((start-segment (max 0 mode)) + (chunk-count (* (/ (+ (/ total-size 64) 63) 64) 32)) + (current-dest (shr (-> obj segment start-segment dest) 6)) + (current-data (-> obj segment start-segment block-data)) + ) + (while (> chunk-count 0) + (let ((chunks-now (min 2048 chunk-count))) + (let* ((v1-11 dma-buff) + (pkt (the-as dma-packet (-> v1-11 base))) + ) + (set! (-> pkt dma) (new 'static 'dma-tag :qwc #x5 :id (dma-tag-id cnt))) + (set! (-> pkt vif0) (new 'static 'vif-tag)) + (set! + (-> pkt vif1) + (new 'static 'vif-tag :imm #x5 :cmd (vif-cmd direct) :msk #x1) + ) + (set! (-> v1-11 base) (&+ (the-as pointer pkt) 16)) + ) + (let* ((v1-12 dma-buff) + (gs-tag (the-as gs-gif-tag (-> v1-12 base))) + ) + (set! (-> gs-tag tag) (new 'static 'gif-tag64 :nloop #x4 :nreg #x1)) + (set! + (-> gs-tag regs) + (new 'static 'gif-tag-regs :regs0 (gif-reg-id a+d)) + ) + (set! (-> v1-12 base) (&+ (the-as pointer gs-tag) 16)) + ) + (let* ((v1-13 dma-buff) + (gs-reg-data (-> v1-13 base)) + ) + (set! + (-> (the-as (pointer gs-bitbltbuf) gs-reg-data) 0) + (new 'static 'gs-bitbltbuf :dbw #x2 :dbp current-dest) + ) + (set! (-> (the-as (pointer gs-reg64) gs-reg-data) 1) (gs-reg64 bitbltbuf)) + (set! + (-> (the-as (pointer gs-trxpos) gs-reg-data) 2) + (new 'static 'gs-trxpos) + ) + (set! (-> (the-as (pointer gs-reg64) gs-reg-data) 3) (gs-reg64 trxpos)) + (set! + (-> (the-as (pointer gs-trxreg) gs-reg-data) 4) + (new 'static 'gs-trxreg :rrw #x80 :rrh chunks-now) + ) + (set! (-> (the-as (pointer gs-reg64) gs-reg-data) 5) (gs-reg64 trxreg)) + (set! + (-> (the-as (pointer gs-trxdir) gs-reg-data) 6) + (new 'static 'gs-trxdir) + ) + (set! (-> (the-as (pointer gs-reg64) gs-reg-data) 7) (gs-reg64 trxdir)) + (set! (-> v1-13 base) (&+ gs-reg-data 64)) + ) + (dma-buffer-add-ref-texture + dma-buff + current-data + 128 + chunks-now + (gs-psm ct32) + ) + ) + (+! current-dest 4096) + (&+! current-data #x100000) + (+! chunk-count -2048) + ) + ) + total-size + ) + +;; definition for function texture-relocate +(defun + texture-relocate + ((dma-buff dma-buffer) + (tex texture) + (dest-loc int) + (dest-fmt gs-psm) + (clut-dst int) + ) + (dotimes (mip-level (the-as int (-> tex num-mips))) + (let ((mip-w (ash (-> tex w) (- mip-level))) + (mip-h (ash (-> tex h) (- mip-level))) + ) + (let* ((t3-2 dma-buff) + (dma-pkt (the-as dma-packet (-> t3-2 base))) + ) + (set! + (-> dma-pkt dma) + (new 'static 'dma-tag :qwc #x5 :id (dma-tag-id cnt)) + ) + (set! (-> dma-pkt vif0) (new 'static 'vif-tag)) + (set! + (-> dma-pkt vif1) + (new 'static 'vif-tag :imm #x5 :cmd (vif-cmd direct) :msk #x1) + ) + (set! (-> t3-2 base) (&+ (the-as pointer dma-pkt) 16)) + ) + (let* ((t3-3 dma-buff) + (gs-pkt (the-as gs-gif-tag (-> t3-3 base))) + ) + (set! + (-> gs-pkt tag) + (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x4) + ) + (set! + (-> gs-pkt regs) + (new 'static 'gif-tag-regs + :regs0 (gif-reg-id a+d) + :regs1 (gif-reg-id a+d) + :regs2 (gif-reg-id a+d) + :regs3 (gif-reg-id a+d) + :regs4 (gif-reg-id a+d) + :regs5 (gif-reg-id a+d) + :regs6 (gif-reg-id a+d) + :regs7 (gif-reg-id a+d) + :regs8 (gif-reg-id a+d) + :regs9 (gif-reg-id a+d) + :regs10 (gif-reg-id a+d) + :regs11 (gif-reg-id a+d) + :regs12 (gif-reg-id a+d) + :regs13 (gif-reg-id a+d) + :regs14 (gif-reg-id a+d) + :regs15 (gif-reg-id a+d) + ) + ) + (set! (-> t3-3 base) (&+ (the-as pointer gs-pkt) 16)) + ) + (let* ((t3-4 dma-buff) + (t4-4 (-> t3-4 base)) + ) + (set! + (-> (the-as (pointer gs-bitbltbuf) t4-4) 0) + (new 'static 'gs-bitbltbuf + :sbp (-> tex dest mip-level) + :sbw (-> tex width mip-level) + :spsm (the-as int (-> tex psm)) + :dbp (/ dest-loc 64) + :dbw (-> tex width mip-level) + :dpsm (the-as int dest-fmt) + ) + ) + (set! (-> (the-as (pointer gs-reg64) t4-4) 1) (gs-reg64 bitbltbuf)) + (set! (-> (the-as (pointer gs-trxpos) t4-4) 2) (new 'static 'gs-trxpos)) + (set! (-> (the-as (pointer gs-reg64) t4-4) 3) (gs-reg64 trxpos)) + (set! + (-> (the-as (pointer gs-trxreg) t4-4) 4) + (new 'static 'gs-trxreg :rrw mip-w :rrh mip-h) + ) + (set! (-> (the-as (pointer gs-reg64) t4-4) 5) (gs-reg64 trxreg)) + (set! + (-> (the-as (pointer gs-trxdir) t4-4) 6) + (new 'static 'gs-trxdir :xdir #x2) + ) + (set! (-> (the-as (pointer gs-reg64) t4-4) 7) (gs-reg64 trxdir)) + (set! (-> t3-4 base) (&+ t4-4 64)) + ) + ) + (set! (-> tex dest mip-level) (the-as uint (/ dest-loc 64))) + ) + (cond + ((< clut-dst 0) + ) + ((= (-> tex psm) (gs-psm mt4)) + (let* ((v1-7 dma-buff) + (a2-2 (the-as object (-> v1-7 base))) + ) + (set! + (-> (the-as dma-packet a2-2) dma) + (new 'static 'dma-tag :qwc #x5 :id (dma-tag-id cnt)) + ) + (set! (-> (the-as dma-packet a2-2) vif0) (new 'static 'vif-tag)) + (set! + (-> (the-as dma-packet a2-2) vif1) + (new 'static 'vif-tag :imm #x5 :cmd (vif-cmd direct) :msk #x1) + ) + (set! (-> v1-7 base) (&+ (the-as pointer a2-2) 16)) + ) + (let* ((v1-8 dma-buff) + (a2-4 (the-as object (-> v1-8 base))) + ) + (set! + (-> (the-as gs-gif-tag a2-4) tag) + (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x4) + ) + (set! + (-> (the-as gs-gif-tag a2-4) regs) + (new 'static 'gif-tag-regs + :regs0 (gif-reg-id a+d) + :regs1 (gif-reg-id a+d) + :regs2 (gif-reg-id a+d) + :regs3 (gif-reg-id a+d) + :regs4 (gif-reg-id a+d) + :regs5 (gif-reg-id a+d) + :regs6 (gif-reg-id a+d) + :regs7 (gif-reg-id a+d) + :regs8 (gif-reg-id a+d) + :regs9 (gif-reg-id a+d) + :regs10 (gif-reg-id a+d) + :regs11 (gif-reg-id a+d) + :regs12 (gif-reg-id a+d) + :regs13 (gif-reg-id a+d) + :regs14 (gif-reg-id a+d) + :regs15 (gif-reg-id a+d) + ) + ) + (set! (-> v1-8 base) (&+ (the-as pointer a2-4) 16)) + ) + (let* ((v1-9 dma-buff) + (a2-6 (-> v1-9 base)) + ) + (set! + (-> (the-as (pointer gs-bitbltbuf) a2-6) 0) + (new 'static 'gs-bitbltbuf + :sbw #x1 + :dbw #x1 + :dpsm (-> tex clutpsm) + :dbp (/ clut-dst 64) + :spsm (-> tex clutpsm) + :sbp (-> tex clutdest) + ) + ) + (set! (-> (the-as (pointer gs-reg64) a2-6) 1) (gs-reg64 bitbltbuf)) + (set! (-> (the-as (pointer gs-trxpos) a2-6) 2) (new 'static 'gs-trxpos)) + (set! (-> (the-as (pointer gs-reg64) a2-6) 3) (gs-reg64 trxpos)) + (set! + (-> (the-as (pointer gs-trxreg) a2-6) 4) + (new 'static 'gs-trxreg :rrw #x8 :rrh #x2) + ) + (set! (-> (the-as (pointer gs-reg64) a2-6) 5) (gs-reg64 trxreg)) + (set! + (-> (the-as (pointer gs-trxdir) a2-6) 6) + (new 'static 'gs-trxdir :xdir #x2) + ) + (set! (-> (the-as (pointer gs-reg64) a2-6) 7) (gs-reg64 trxdir)) + (set! (-> v1-9 base) (&+ a2-6 64)) + ) + (set! (-> tex clutdest) (the-as uint (/ clut-dst 64))) + ) + ((= (-> tex psm) (gs-psm mt8)) + (let* ((v1-13 dma-buff) + (a2-9 (the-as object (-> v1-13 base))) + ) + (set! + (-> (the-as dma-packet a2-9) dma) + (new 'static 'dma-tag :qwc #x5 :id (dma-tag-id cnt)) + ) + (set! (-> (the-as dma-packet a2-9) vif0) (new 'static 'vif-tag)) + (set! + (-> (the-as dma-packet a2-9) vif1) + (new 'static 'vif-tag :imm #x5 :cmd (vif-cmd direct) :msk #x1) + ) + (set! (-> v1-13 base) (&+ (the-as pointer a2-9) 16)) + ) + (let* ((v1-14 dma-buff) + (a2-11 (the-as object (-> v1-14 base))) + ) + (set! + (-> (the-as gs-gif-tag a2-11) tag) + (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x4) + ) + (set! + (-> (the-as gs-gif-tag a2-11) regs) + (new 'static 'gif-tag-regs + :regs0 (gif-reg-id a+d) + :regs1 (gif-reg-id a+d) + :regs2 (gif-reg-id a+d) + :regs3 (gif-reg-id a+d) + :regs4 (gif-reg-id a+d) + :regs5 (gif-reg-id a+d) + :regs6 (gif-reg-id a+d) + :regs7 (gif-reg-id a+d) + :regs8 (gif-reg-id a+d) + :regs9 (gif-reg-id a+d) + :regs10 (gif-reg-id a+d) + :regs11 (gif-reg-id a+d) + :regs12 (gif-reg-id a+d) + :regs13 (gif-reg-id a+d) + :regs14 (gif-reg-id a+d) + :regs15 (gif-reg-id a+d) + ) + ) + (set! (-> v1-14 base) (&+ (the-as pointer a2-11) 16)) + ) + (let* ((v1-15 dma-buff) + (a2-13 (-> v1-15 base)) + ) + (set! + (-> (the-as (pointer gs-bitbltbuf) a2-13) 0) + (new 'static 'gs-bitbltbuf + :sbw #x2 + :dbw #x2 + :dpsm (-> tex clutpsm) + :dbp (/ clut-dst 64) + :spsm (-> tex clutpsm) + :sbp (-> tex clutdest) + ) + ) + (set! (-> (the-as (pointer gs-reg64) a2-13) 1) (gs-reg64 bitbltbuf)) + (set! (-> (the-as (pointer gs-trxpos) a2-13) 2) (new 'static 'gs-trxpos)) + (set! (-> (the-as (pointer gs-reg64) a2-13) 3) (gs-reg64 trxpos)) + (set! + (-> (the-as (pointer gs-trxreg) a2-13) 4) + (new 'static 'gs-trxreg :rrw #x10 :rrh #x10) + ) + (set! (-> (the-as (pointer gs-reg64) a2-13) 5) (gs-reg64 trxreg)) + (set! + (-> (the-as (pointer gs-trxdir) a2-13) 6) + (new 'static 'gs-trxdir :xdir #x2) + ) + (set! (-> (the-as (pointer gs-reg64) a2-13) 7) (gs-reg64 trxdir)) + (set! (-> v1-15 base) (&+ a2-13 64)) + ) + (set! (-> tex clutdest) (the-as uint (/ clut-dst 64))) + ) + ) + (set! (-> tex psm) dest-fmt) + dma-buff + ) + +;; definition (perm) for symbol *font-texture*, type texture +(define-perm *font-texture* texture #f) + +;; definition for method 11 of type texture-pool +;; WARN: Stack slot offset 20 signed mismatch +;; WARN: Stack slot offset 20 signed mismatch +;; WARN: Stack slot offset 20 signed mismatch +;; WARN: Stack slot offset 20 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 20 signed mismatch +;; WARN: Stack slot offset 20 signed mismatch +;; WARN: Stack slot offset 20 signed mismatch +;; WARN: Stack slot offset 20 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 20 signed mismatch +;; WARN: Stack slot offset 20 signed mismatch +;; WARN: Stack slot offset 20 signed mismatch +;; WARN: Stack slot offset 20 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; INFO: Return type mismatch int vs none. +(defmethod setup-font-texture! texture-pool ((obj texture-pool)) + (local-vars (heap-before-font-tex int) (clut-dest-addr int)) + (let ((font-clut (-> obj font-palette))) + (set! heap-before-font-tex (-> obj cur)) + (set! clut-dest-addr (/ font-clut 64)) + (set! + *font-texture* + (lookup-texture-by-id (new 'static 'texture-id :index #x1 :page #x4fe)) + ) + (let + ((main-font-tx + (texture-page-login + (new 'static 'texture-id :index #x1 :page #x4fe) + texture-page-default-allocate + global + ) + ) + ) + (if (and main-font-tx (-> main-font-tx page)) + (set! + heap-before-font-tex + (the-as int (-> main-font-tx page segment 0 dest)) + ) + ) + (let ((dma-buff *txt-dma-list*)) + (let ((v1-6 dma-buff)) + (set! (-> v1-6 base) (-> v1-6 data)) + (set! (-> v1-6 end) (&-> v1-6 data-buffer (-> v1-6 allocated-length))) + ) + (let ((font-tx-1 *font-texture*) + (font-tx-1-dest #xe0000) + (font-tx-1-fmt 36) + ) + (texture-relocate + dma-buff + font-tx-1 + font-tx-1-dest + (the-as gs-psm font-tx-1-fmt) + font-clut + ) + (font-set-tex0 + (the-as (pointer gs-tex0) (-> *font-work* small-font-lo-tmpl)) + font-tx-1 + (the-as uint font-tx-1-dest) + (the-as uint font-tx-1-fmt) + (the-as uint clut-dest-addr) + ) + ) + (let + ((font-tx-0 (lookup-texture-by-id (new 'static 'texture-id :page #x4fe))) + (font-tx-0-dest #xe0000) + (font-tx-0-fmt 44) + ) + (texture-relocate + dma-buff + font-tx-0 + font-tx-0-dest + (the-as gs-psm font-tx-0-fmt) + font-clut + ) + (font-set-tex0 + (the-as (pointer gs-tex0) (-> *font-work* small-font-hi-tmpl)) + font-tx-0 + (the-as uint font-tx-0-dest) + (the-as uint font-tx-0-fmt) + (the-as uint clut-dest-addr) + ) + ) + (let + ((font-tx-3 + (lookup-texture-by-id (new 'static 'texture-id :index #x3 :page #x4fe)) + ) + (font-tx-3-dest #xe6000) + (font-tx-3-fmt 36) + ) + (texture-relocate + dma-buff + font-tx-3 + font-tx-3-dest + (the-as gs-psm font-tx-3-fmt) + font-clut + ) + (font-set-tex0 + (the-as (pointer gs-tex0) (-> *font-work* large-font-lo-tmpl)) + font-tx-3 + (the-as uint font-tx-3-dest) + (the-as uint font-tx-3-fmt) + (the-as uint clut-dest-addr) + ) + ) + (let + ((font-tx-2 + (lookup-texture-by-id (new 'static 'texture-id :index #x2 :page #x4fe)) + ) + (font-tx-2-dest #xe6000) + (font-tx-2-fmt 44) + ) + (texture-relocate + dma-buff + font-tx-2 + font-tx-2-dest + (the-as gs-psm font-tx-2-fmt) + font-clut + ) + (font-set-tex0 + (the-as (pointer gs-tex0) (-> *font-work* large-font-hi-tmpl)) + font-tx-2 + (the-as uint font-tx-2-dest) + (the-as uint font-tx-2-fmt) + (the-as uint clut-dest-addr) + ) + ) + (let* ((v1-15 dma-buff) + (a0-18 (the-as object (-> v1-15 base))) + ) + (set! + (-> (the-as dma-packet a0-18) dma) + (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt)) + ) + (set! (-> (the-as dma-packet a0-18) vif0) (new 'static 'vif-tag)) + (set! + (-> (the-as dma-packet a0-18) vif1) + (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1) + ) + (set! (-> v1-15 base) (&+ (the-as pointer a0-18) 16)) + ) + (let* ((v1-16 dma-buff) + (a0-20 (the-as object (-> v1-16 base))) + ) + (set! + (-> (the-as gs-gif-tag a0-20) tag) + (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1) + ) + (set! + (-> (the-as gs-gif-tag a0-20) regs) + (new 'static 'gif-tag-regs + :regs0 (gif-reg-id a+d) + :regs1 (gif-reg-id a+d) + :regs2 (gif-reg-id a+d) + :regs3 (gif-reg-id a+d) + :regs4 (gif-reg-id a+d) + :regs5 (gif-reg-id a+d) + :regs6 (gif-reg-id a+d) + :regs7 (gif-reg-id a+d) + :regs8 (gif-reg-id a+d) + :regs9 (gif-reg-id a+d) + :regs10 (gif-reg-id a+d) + :regs11 (gif-reg-id a+d) + :regs12 (gif-reg-id a+d) + :regs13 (gif-reg-id a+d) + :regs14 (gif-reg-id a+d) + :regs15 (gif-reg-id a+d) + ) + ) + (set! (-> v1-16 base) (&+ (the-as pointer a0-20) 16)) + ) + (let* ((v1-17 dma-buff) + (a0-22 (-> v1-17 base)) + ) + (set! (-> (the-as (pointer uint64) a0-22) 0) (the-as uint 1)) + (set! (-> (the-as (pointer gs-reg64) a0-22) 1) (gs-reg64 texflush)) + (set! (-> v1-17 base) (&+ a0-22 16)) + ) + (let* ((v1-18 dma-buff) + (a0-24 (the-as object (-> v1-18 base))) + ) + (set! + (-> (the-as dma-packet a0-24) dma) + (new 'static 'dma-tag :id (dma-tag-id end)) + ) + (set! (-> (the-as (pointer uint64) a0-24) 1) (the-as uint 0)) + (set! (-> v1-18 base) (&+ (the-as pointer a0-24) 16)) + ) + (dma-buffer-send-chain (the-as dma-bank-source #x10009000) dma-buff) + ) + (dma-sync (the-as pointer #x10009000) 0 0) + (if + (and + main-font-tx + (-> main-font-tx page) + (= + (-> obj cur) + (+ heap-before-font-tex (the-as int (-> main-font-tx page size))) + ) + ) + (set! (-> obj cur) heap-before-font-tex) + (format 0 "ERROR: could not resize heap to remove gamefont.~%") + ) + ) + ) + 0 + (none) + ) + +;; definition for method 5 of type texture-page-dir +;; INFO: Return type mismatch uint vs int. +(defmethod asize-of texture-page-dir ((obj texture-page-dir)) + (the-as + int + (+ (-> texture-page-dir size) (the-as uint (* 12 (+ (-> obj length) -1)))) + ) + ) + +;; definition for method 4 of type texture-page-dir +(defmethod length texture-page-dir ((obj texture-page-dir)) + (-> obj length) + ) + +;; definition for method 7 of type texture-page-dir +;; INFO: Return type mismatch texture-page-dir vs none. +(defmethod + relocate + texture-page-dir + ((obj texture-page-dir) (arg0 kheap) (arg1 (pointer uint8))) + (set! *texture-page-dir* obj) + (none) + ) + +;; definition for method 12 of type texture-page +;; INFO: Return type mismatch texture-page vs none. +(defmethod + relocate-dests! + texture-page + ((obj texture-page) (new-dest int) (seg-id int)) + (let ((v1-0 (shr new-dest 6)) + (dst-block (shr (-> obj segment seg-id dest) 6)) + ) + (when (!= v1-0 dst-block) + (dotimes (tex-id (-> obj length)) + (when (-> obj data tex-id) + (let* ((tex (-> obj data tex-id)) + (num-mips (-> tex num-mips)) + ) + (if (zero? seg-id) + (set! + (-> tex clutdest) + (+ (- (-> tex clutdest) dst-block) (the-as uint v1-0)) + ) + ) + (dotimes (mip-id (the-as int num-mips)) + (let ((t4-0 mip-id) + (t5-0 num-mips) + ) + (if (= seg-id (if (>= (the-as uint 2) t5-0) + (+ (- -1 t4-0) (the-as int t5-0)) + (max 0 (- 2 t4-0)) + ) + ) + (set! + (-> tex dest mip-id) + (+ (- (-> tex dest mip-id) dst-block) (the-as uint v1-0)) + ) + ) + ) + ) + ) + ) + ) + (set! (-> obj segment seg-id dest) (the-as uint new-dest)) + ) + ) + (none) + ) + +;; definition for method 7 of type texture-page +;; INFO: Return type mismatch texture-page vs none. +(defmethod + relocate + texture-page + ((obj texture-page) (arg0 kheap) (arg1 (pointer uint8))) + (local-vars (s4-0 texture-page-dir-entry)) + (cond + ((or + (not obj) + (not (file-info-correct-version? (-> obj info) (file-kind tpage) 0)) + ) + (set! obj (the-as texture-page #f)) + ) + ((begin + (let ((v1-2 (-> *level* unknown-level-2))) + (when v1-2 + (set! + (-> v1-2 loaded-texture-page (-> v1-2 loaded-texture-page-count)) + obj + ) + (set! + (-> v1-2 loaded-texture-page-count) + (+ (-> v1-2 loaded-texture-page-count) 1) + ) + ) + ) + (set! (-> obj segment 1 dest) (-> obj segment 0 size)) + (set! + (-> obj segment 2 dest) + (+ (-> obj segment 0 size) (-> obj segment 1 size)) + ) + (let ((a3-0 (-> obj id))) + (set! s4-0 (-> *texture-page-dir* entries a3-0)) + (set! (-> *texture-relocate-later* memcpy) #f) + ((-> *texture-pool* allocate-func) + *texture-pool* + obj + arg0 + (the-as int a3-0) + ) + ) + (not (-> *texture-relocate-later* memcpy)) + ) + (set! (-> s4-0 page) obj) + (if (not (-> s4-0 link)) + (set! + (-> s4-0 link) + (the-as + texture-link + (malloc 'loading-level (* (max (-> s4-0 length) (-> obj length)) 4)) + ) + ) + ) + ) + (else + (let ((v1-19 *texture-relocate-later*)) + (set! (-> v1-19 entry) s4-0) + (set! (-> v1-19 page) obj) + ) + ) + ) + (none) + ) + +;; definition for function relocate-later +(defun relocate-later () + (let ((gp-0 *texture-relocate-later*)) + (let ((s5-0 (-> gp-0 entry)) + (s4-0 (-> gp-0 page)) + ) + (ultimate-memcpy + (the-as pointer (-> gp-0 dest)) + (the-as pointer (-> gp-0 source)) + (-> gp-0 move) + ) + (set! (-> s5-0 page) s4-0) + (if (not (-> s5-0 link)) + (set! + (-> s5-0 link) + (the-as + texture-link + (malloc 'loading-level (* (max (-> s5-0 length) (-> s4-0 length)) 4)) + ) + ) + ) + ) + (set! (-> gp-0 memcpy) #f) + ) + #f + ) + +;; definition for function texture-page-login +(defun + texture-page-login + ((id texture-id) + (alloc-func (function texture-pool texture-page kheap int texture-page)) + (heap kheap) + ) + (when + (and + (nonzero? (-> id page)) + (< (the-as uint (-> id page)) (the-as uint (-> *texture-page-dir* length))) + ) + (let ((dir-entry (-> *texture-page-dir* entries (the-as uint (-> id page))))) + (when (not (-> dir-entry page)) + (let ((old-alloc-func (-> *texture-pool* allocate-func))) + (set! (-> *texture-pool* allocate-func) alloc-func) + (let* + ((file-name + (make-file-name + (file-kind tpage) + (the-as string (* (-> id page) 8)) + 0 + #f + ) + ) + (s2-0 (the-as texture-page (loado file-name heap))) + ) + (if s2-0 + (relocate s2-0 heap (charp-basename (-> file-name data))) + ) + ) + (set! (-> *texture-pool* allocate-func) old-alloc-func) + ) + ) + dir-entry + ) + ) + ) + +;; definition for function lookup-texture-by-id +(defun lookup-texture-by-id ((arg0 texture-id)) + (let + ((v1-0 (texture-page-login arg0 texture-page-default-allocate loading-level)) + ) + (if (and v1-0 (< (-> arg0 index) (the-as uint (-> v1-0 page length)))) + (-> v1-0 page data (-> arg0 index)) + ) + ) + ) + +;; definition for method 20 of type texture-pool +(defmethod unload! texture-pool ((obj texture-pool) (arg0 texture-page)) + (local-vars (a0-2 int)) + (let ((v1-0 *texture-page-dir*)) + (dotimes (a0-1 (-> v1-0 length)) + (if (= arg0 (-> v1-0 entries a0-1 page)) + (begin + (set! a0-2 a0-1) + (goto cfg-7) + ) + ) + ) + (set! a0-2 -1) + (label cfg-7) + (when (>= a0-2 0) + (set! (-> v1-0 entries a0-2 page) #f) + (set! (-> v1-0 entries a0-2 link) #f) + ) + ) + 0 + ) + +;; definition for symbol *shader-list*, type pair +(define *shader-list* '()) + +;; definition for symbol *edit-shader*, type int +(define *edit-shader* 0) + +;; definition for function link-texture-by-id +(defun link-texture-by-id ((arg0 texture-id) (arg1 adgif-shader)) + (when + (not + (or + (zero? (-> arg0 page)) + (>= + (the-as uint (-> arg0 page)) + (the-as uint (-> *texture-page-dir* length)) + ) + ) + ) + (let + ((dir-entry (-> *texture-page-dir* entries (the-as uint (-> arg0 page))))) + (if (not (-> dir-entry link)) + (set! + (-> dir-entry link) + (the-as texture-link (malloc 'loading-level (* (-> dir-entry length) 4))) + ) + ) + (when (< (-> arg0 index) (the-as uint (-> dir-entry length))) + (set! + (-> arg1 next shader) + (-> dir-entry link next (-> arg0 index) shader) + ) + (set! + (-> dir-entry link next (-> arg0 index) shader) + (shr (the-as uint arg1) 4) + ) + ) + dir-entry + ) + ) + ) + +;; definition for method 9 of type texture-page-dir +(defmethod + unlink-textures-in-heap! + texture-page-dir + ((obj texture-page-dir) (heap kheap)) + (local-vars (dist-past-end uint)) + (let ((mem-start (-> heap base)) + (mem-end (-> heap top-base)) + ) + (dotimes (entry-idx (-> obj length)) + (let* ((entry (-> obj entries entry-idx)) + (tex-page (-> entry page)) + (link-arr (-> entry link next)) + (tex-count (min (-> tex-page length) (-> entry length))) + ) + 0 + (when link-arr + (dotimes (tex-idx tex-count) + (let ((link-slot (&-> link-arr 0)) + (shader (the-as adgif-shader (* (-> link-arr 0 shader) 16))) + ) + (while (nonzero? (the-as int shader)) + (b! + (< (the-as int (- (the-as int shader) (the-as int mem-start))) 0) + cfg-7 + :delay + (set! dist-past-end (the-as uint (- (the-as int shader) mem-end))) + ) + (b! (>= (the-as int dist-past-end) 0) cfg-7 :delay (nop!)) + (let ((t4-2 (-> shader next))) + (b! #t cfg-8 :delay (set! (-> link-slot 0) t4-2)) + ) + (label cfg-7) + (set! link-slot (&-> shader next)) + (label cfg-8) + (set! shader (the-as adgif-shader (* (-> shader next shader) 16))) + ) + ) + (set! link-arr (&-> link-arr 1)) + ) + ) + ) + ) + ) + 0 + ) + +;; definition for function adgif-shader<-texture! +(defun adgif-shader<-texture! ((arg0 adgif-shader) (arg1 texture)) + (set! (-> arg0 tex1 mxl) (+ (-> arg1 num-mips) -1)) + (set! (-> arg0 tex1 l) (-> arg1 mip-shift)) + (set! (-> arg0 tex1 mmag) (logand (-> arg1 tex1-control) 1)) + (set! (-> arg0 tex1 mmin) (shr (-> arg1 tex1-control) 1)) + (set! + (-> arg0 tex0) + (new 'static 'gs-tex0 + :tcc #x1 + :cld #x1 + :cpsm (-> arg1 clutpsm) + :cbp (-> arg1 clutdest) + :tfx (-> arg0 tex0 tfx) + :th (log2 (-> arg1 h)) + :tw (log2 (-> arg1 w)) + :tbw (-> arg1 width 0) + :tbp0 (-> arg1 dest 0) + :psm (the-as int (-> arg1 psm)) + ) + ) + (set! + (-> arg0 miptbp1) + (new 'static 'gs-miptbp + :tbp1 (-> arg1 dest 1) + :tbw1 (-> arg1 width 1) + :tbp2 (-> arg1 dest 2) + :tbw2 (-> arg1 width 2) + :tbp3 (-> arg1 dest 3) + :tbw3 (-> arg1 width 3) + ) + ) + (when (< (the-as uint 4) (-> arg1 num-mips)) + (set! + (-> arg0 alpha) + (new 'static 'gs-miptbp + :tbp1 (-> arg1 dest 4) + :tbw1 (-> arg1 width 4) + :tbp2 (-> arg1 dest 5) + :tbw2 (-> arg1 width 5) + :tbp3 (-> arg1 dest 6) + :tbw3 (-> arg1 width 6) + ) + ) + (set! (-> (&-> arg0 quad 4 vector4w z) 0) 54) + ) + arg0 + ) + +;; definition for function adgif-shader-update! +;; INFO: Return type mismatch gs-tex1 vs none. +(defun adgif-shader-update! ((arg0 adgif-shader) (arg1 texture)) + (let ((s5-0 (the int (/ 256.0 (-> arg1 uv-dist)))) + (v1-2 (-> arg0 tex1 l)) + ) + (if (= v1-2 1) + (set! + (-> arg0 tex1 k) + (+ (+ (logand (ash s5-0 (- 5 (log2 s5-0))) 31) -350) (* (log2 s5-0) 32)) + ) + (set! + (-> arg0 tex1 k) + (+ (+ (logand (ash s5-0 (- 4 (log2 s5-0))) 15) -175) (* (log2 s5-0) 16)) + ) + ) + ) + (none) + ) + +;; definition for function adgif-shader<-texture-with-update! +;; WARN: Unsupported inline assembly instruction kind - [plzcw v1, v1] +;; WARN: Unsupported inline assembly instruction kind - [subu v1, t0, v1] +;; WARN: Unsupported inline assembly instruction kind - [plzcw a3, a3] +;; WARN: Unsupported inline assembly instruction kind - [subu a3, t0, a3] +;; WARN: Unsupported inline assembly instruction kind - [plzcw a3, v1] +;; WARN: Unsupported inline assembly instruction kind - [subu a3, t0, a3] +(defun adgif-shader<-texture-with-update! ((arg0 adgif-shader) (arg1 texture)) + (local-vars + (v1-11 int) + (v1-12 int) + (a3-4 int) + (a3-5 int) + (a3-9 int) + (a3-10 int) + (a3-13 int) + (a3-22 uint) + ) + (let* ((a2-0 (-> arg0 tex1)) + (v1-0 256) + (a2-1 (incomplete-bitfield-access a2-0)) + (f0-1 (the float v1-0)) + (v1-1 (-> arg1 num-mips)) + (f1-0 (-> arg1 uv-dist)) + (v1-2 (+ v1-1 -1)) + (f0-2 (/ f0-1 f1-0)) + (a2-2 (logior a2-1 (the-as uint (* v1-2 4)))) + (v1-5 (shl (-> arg1 mip-shift) 19)) + (a3-0 (-> arg1 tex1-control)) + (a2-4 + (logior (logior a2-2 (the-as uint v1-5)) (the-as uint (* a3-0 32))) + ) + ) + (let* ((t1-1 (incomplete-bitfield-access (-> arg0 tex0))) + (v1-6 (-> arg1 psm)) + (t1-2 (sar t1-1 62)) + (v1-7 (shl (the-as int v1-6) 20)) + (t1-3 (shl t1-2 35)) + (a3-2 (-> arg1 dest 0)) + (t1-4 (logior t1-3 v1-7)) + (v1-8 (-> arg1 width 0)) + (t1-6 (logior (logior t1-4 a3-2) (shl v1-8 14))) + ) + (let ((v1-10 (-> arg1 wu))) + (.plzcw v1-11 v1-10) + ) + (let ((t0-0 30)) + (.subu v1-12 t0-0 v1-11) + (let ((a3-3 (-> arg1 hu)) + (v1-13 (shl v1-12 26)) + ) + (.plzcw a3-4 a3-3) + (let ((t1-7 (logior t1-6 (the-as uint v1-13)))) + (.subu a3-5 t0-0 a3-4) + (let* ((a3-6 (shl a3-5 30)) + (v1-14 1) + (t1-9 + (logior + (logior t1-7 (the-as uint a3-6)) + (the-as uint (shl v1-14 34)) + ) + ) + (v1-17 (shl (-> arg1 clutdest) 37)) + (a3-8 (shl (-> arg1 clutpsm) 51)) + (t1-11 (logior (logior t1-9 v1-17) a3-8)) + (v1-19 (shl 1 61)) + (f0-3 (the int f0-2)) + (t1-12 (logior t1-11 (the-as uint v1-19))) + (v1-20 f0-3) + ) + (set! (-> arg0 tex0) (the-as gs-tex0 t1-12)) + (.plzcw a3-9 v1-20) + (.subu a3-10 t0-0 a3-9) + (let ((t0-2 (+ (-> arg1 mip-shift) -1))) + (nop!) + (b! (zero? t0-2) cfg-2) + ) + (let* ((t0-3 (+ a3-10 -4)) + (a3-11 (* a3-10 16)) + (t0-4 (sar v1-20 t0-3)) + (a3-12 (+ a3-11 -175)) + (t0-5 (logand t0-4 15)) + ) + (nop!) + (b! #t cfg-3 :delay (set! a3-13 (the-as int (+ a3-12 t0-5)))) + ) + (label cfg-2) + (let* ((t0-6 (+ a3-10 -5)) + (a3-14 (* a3-10 32)) + (t0-7 (sar v1-20 t0-6)) + (a3-15 (+ a3-14 -350)) + (t0-8 (logand t0-7 31)) + ) + (nop!) + (set! a3-13 (+ a3-15 t0-8)) + ) + ) + ) + ) + ) + ) + (nop!) + (label cfg-3) + (let* ((a3-16 (logand a3-13 4095)) + (t1-13 (-> arg1 dest 1)) + (a3-17 (shl a3-16 32)) + (v1-21 (-> arg1 width 1)) + (a2-5 (logior a2-4 (the-as uint a3-17))) + (v1-22 (shl v1-21 14)) + ) + (set! (-> arg0 tex1) a2-5) + (let ((a2-6 (logior t1-13 v1-22)) + (v1-23 (-> arg1 dest 2)) + ) + (nop!) + (let* ((a3-18 (-> arg1 width 2)) + (a2-8 (logior (logior a2-6 (shl v1-23 20)) (shl a3-18 34))) + (v1-25 (-> arg1 dest 3)) + (a3-20 (-> arg1 width 3)) + (a2-10 (logior (logior a2-8 (shl v1-25 40)) (shl a3-20 54))) + (t0-10 (+ (-> arg1 num-mips) -5)) + ) + (set! (-> arg0 miptbp1) (the-as gs-miptbp a2-10)) + (b! + (< (the-as int t0-10) 0) + cfg-5 + :delay + (set! a3-22 (the-as uint (-> arg1 width 4))) + ) + ) + ) + ) + ) + (let* ((a2-12 (logior (-> arg1 dest 4) (shl a3-22 14))) + (v1-28 (shl (-> arg1 dest 5) 20)) + (a3-24 (-> arg1 width 5)) + (a2-14 (logior (logior a2-12 v1-28) (shl a3-24 34))) + (v1-30 (shl (-> arg1 dest 6) 40)) + (a3-26 (-> arg1 width 6)) + (a2-16 (logior (logior a2-14 v1-30) (shl a3-26 54))) + (v1-31 54) + ) + (set! (-> arg0 alpha) (the-as gs-miptbp a2-16)) + (nop!) + (set! (-> arg0 quad 4 vector4w z) v1-31) + ) + (nop!) + (label cfg-5) + arg0 + ) + +;; definition for function adgif-shader-login +(defun adgif-shader-login ((shader adgif-shader)) + (when (nonzero? (logand (-> shader link-test) (link-test-flags needs-log-in))) + (set! + (-> shader link-test) + (logand (lognot (link-test-flags needs-log-in bit-9)) (-> shader link-test)) + ) + (set! (-> shader texture-id) (level-remap-texture (-> shader texture-id))) + (link-texture-by-id (-> shader texture-id) shader) + (let ((tex (lookup-texture-by-id (-> shader texture-id)))) + (if tex + (adgif-shader<-texture-with-update! shader tex) + (format + 0 + "login could not find texture ~X in shader ~X~%" + (-> shader texture-id) + shader + ) + ) + tex + ) + ) + ) + +;; definition for function adgif-shader-login-no-remap +(defun adgif-shader-login-no-remap ((arg0 adgif-shader)) + (when (nonzero? (logand (-> arg0 link-test) (link-test-flags needs-log-in))) + (set! + (-> arg0 link-test) + (logand (lognot (link-test-flags needs-log-in bit-9)) (-> arg0 link-test)) + ) + (link-texture-by-id (-> arg0 texture-id) arg0) + (let ((s5-0 (lookup-texture-by-id (-> arg0 texture-id)))) + (if s5-0 + (adgif-shader<-texture-with-update! arg0 s5-0) + (format + 0 + "login could not find texture ~X in shader ~X~%" + (-> arg0 texture-id) + arg0 + ) + ) + s5-0 + ) + ) + ) + +;; definition for function adgif-shader-login-fast +(defun adgif-shader-login-fast ((shader adgif-shader)) + (when (nonzero? (logand (-> shader link-test) (link-test-flags needs-log-in))) + (set! + (-> shader link-test) + (logand (lognot (link-test-flags needs-log-in bit-9)) (-> shader link-test)) + ) + (set! (-> shader texture-id) (level-remap-texture (-> shader texture-id))) + (let ((tex-id (-> shader texture-id))) + (when + (and + (nonzero? (-> tex-id page)) + (< + (the-as uint (-> tex-id page)) + (the-as uint (-> *texture-page-dir* length)) + ) + ) + (let + ((dir-entry + (-> *texture-page-dir* entries (the-as uint (-> tex-id page))) + ) + ) + (when + (and + (< (-> tex-id index) (the-as uint (-> dir-entry length))) + (-> dir-entry link) + ) + (set! + (-> shader next shader) + (-> dir-entry link next (-> tex-id index) shader) + ) + (set! + (-> dir-entry link next (-> tex-id index) shader) + (shr (the-as uint shader) 4) + ) + ) + (when + (and + (-> dir-entry page) + (< (-> tex-id index) (the-as uint (-> dir-entry page length))) + ) + (let ((tex (-> dir-entry page data (-> tex-id index)))) + (if tex + (adgif-shader<-texture-with-update! shader tex) + ) + tex + ) + ) + ) + ) + ) + ) + ) + +;; definition for function adgif-shader-login-no-remap-fast +(defun adgif-shader-login-no-remap-fast ((arg0 adgif-shader)) + (when (nonzero? (logand (-> arg0 link-test) (link-test-flags needs-log-in))) + (set! + (-> arg0 link-test) + (logand (lognot (link-test-flags needs-log-in bit-9)) (-> arg0 link-test)) + ) + (let ((v1-4 (-> arg0 texture-id))) + (when + (and + (nonzero? (-> v1-4 page)) + (< + (the-as uint (-> v1-4 page)) + (the-as uint (-> *texture-page-dir* length)) + ) + ) + (let ((a1-7 (-> *texture-page-dir* entries (the-as uint (-> v1-4 page))))) + (when + (and (< (-> v1-4 index) (the-as uint (-> a1-7 length))) (-> a1-7 link)) + (set! (-> arg0 next shader) (-> a1-7 link next (-> v1-4 index) shader)) + (set! + (-> a1-7 link next (-> v1-4 index) shader) + (shr (the-as uint arg0) 4) + ) + ) + (when + (and + (-> a1-7 page) + (< (-> v1-4 index) (the-as uint (-> a1-7 page length))) + ) + (let ((gp-0 (-> a1-7 page data (-> v1-4 index)))) + (if gp-0 + (adgif-shader<-texture-with-update! arg0 gp-0) + ) + gp-0 + ) + ) + ) + ) + ) + ) + ) + +;; failed to figure out what this is: +(when (not *debug-segment*) + (set! adgif-shader-login adgif-shader-login-fast) + (set! adgif-shader-login-no-remap adgif-shader-login-no-remap-fast) + ) + +;; definition for function adgif-shader<-texture-simple! +(defun adgif-shader<-texture-simple! ((arg0 adgif-shader) (arg1 texture)) + (set! (-> arg0 tex1) (new 'static 'gs-tex1 :mmag #x1 :mmin #x1)) + (set! + (-> arg0 tex0) + (the-as + gs-tex0 + (logand (the-as uint (-> arg0 tex0)) (the-as uint #xffffffe7ffffffff)) + ) + ) + (if arg1 + (adgif-shader<-texture! arg0 arg1) + ) + (set! (-> arg0 clamp) (new 'static 'gs-clamp :wms #x1 :wmt #x1)) + (set! (-> arg0 alpha) (new 'static 'gs-miptbp :tbp1 #x44)) + (set! (-> arg0 prims 1) (gs-reg64 tex0-1)) + (set! (-> arg0 prims 3) (gs-reg64 tex1-1)) + (set! (-> arg0 prims 5) (gs-reg64 miptbp1-1)) + (set! (-> arg0 clamp-reg) (gs-reg64 clamp-1)) + (set! (-> arg0 prims 9) (gs-reg64 alpha-1)) + arg0 + ) + +;; definition (debug) for function texture-page-dir-inspect +;; INFO: Return type mismatch texture-page-dir vs none. +(defun-debug texture-page-dir-inspect ((dir texture-page-dir) (mode symbol)) + (format #t "[~8x] ~A~%" dir (-> dir type)) + (let ((pool *texture-pool*)) + (format + #t + "~Ttexture pool (~DK used, ~DK free)~%" + (/ (- (-> pool cur) (-> pool top)) 256) + (/ (- #xa0000 (-> pool cur)) 256) + ) + ) + (dotimes (level-idx (-> *level* length)) + (let ((lev (-> *level* level level-idx))) + (if (= (-> lev status) 'active) + (texture-page-size-check *texture-pool* lev #f) + ) + ) + ) + (format #t "~Tlength: ~D~%" (-> dir length)) + (format #t "~Tdata[~D]: @ #x~X~%" (-> dir length) (-> dir entries)) + (dotimes (entry-idx (-> dir length)) + (let ((entry-page (-> dir entries entry-idx page)) + (entry-link (-> dir entries entry-idx link)) + ) + (cond + (entry-page + (format #t "~T [~3D] loaded ~S ~A~%" entry-idx (if entry-link + " linked" + "unlinked" + ) + entry-page + ) + ) + (else + (if (= mode 'full) + (format + #t + "~T [~3D] unloaded ~S #~%" + entry-idx + (if entry-link + " linked" + "unlinked" + ) + (-> dir entries entry-idx length) + ) + ) + ) + ) + (when (and (or entry-page entry-link) mode) + (dotimes (entry-list-length (-> dir entries entry-idx length)) + (cond + ((not entry-link) + (format #t "~T [~3D] unlinked" entry-list-length) + ) + ((zero? (-> entry-link next entry-list-length shader)) + (format #t "~T [~3D] UNUSED " entry-list-length) + ) + (else + (let ((t9-9 format) + (a0-12 #t) + (a1-10 "~T [~3D] ~3D links ") + (a2-11 entry-list-length) + (a3-7 0) + ) + (let + ((v1-40 + (the-as object (* (-> entry-link next entry-list-length shader) 16)) + ) + ) + (while (nonzero? (the-as int v1-40)) + (nop!) + (+! a3-7 1) + (set! v1-40 (* (-> (the-as adgif-shader v1-40) next shader) 16)) + ) + ) + (t9-9 a0-12 a1-10 a2-11 a3-7) + ) + ) + ) + (cond + ((not entry-page) + (format #t " unloaded~%") + ) + ((not (-> entry-page data entry-list-length)) + (format #t " empty~%") + ) + (else + (format #t " ~A~%" (-> entry-page data entry-list-length)) + ) + ) + ) + ) + ) + ) + (none) + ) + +;; definition for method 3 of type texture-page-dir +(defmethod inspect texture-page-dir ((obj texture-page-dir)) + (texture-page-dir-inspect obj #f) + obj + ) + +;; definition for symbol *texture-pool*, type texture-pool +(define *texture-pool* (new 'global 'texture-pool)) + + + + diff --git a/test/decompiler/reference/engine/gfx/tie/prototype_REF.gc b/test/decompiler/reference/engine/gfx/tie/prototype_REF.gc index 76009b8778..ce162db556 100644 --- a/test/decompiler/reference/engine/gfx/tie/prototype_REF.gc +++ b/test/decompiler/reference/engine/gfx/tie/prototype_REF.gc @@ -16,14 +16,14 @@ (let ((s4-1 (-> s4-0 envmap-shader))) (when (nonzero? s4-1) (adgif-shader-login-no-remap s4-1) - (set! (-> s4-1 tex1) (the-as uint 96)) - (set! (-> s4-1 clamp) (the-as uint 5)) - (set! (-> s4-1 alpha) (the-as uint 88)) - (set! (-> s4-1 prims 1) (the-as uint 6)) - (set! (-> s4-1 prims 3) (the-as uint 20)) - (set! (-> s4-1 prims 5) (the-as uint 52)) - (set! (-> s4-1 clamp-reg) (the-as uint 8)) - (set! (-> s4-1 prims 9) (the-as uint 66)) + (set! (-> s4-1 tex1) (new 'static 'gs-tex1 :mmag #x1 :mmin #x1)) + (set! (-> s4-1 clamp) (new 'static 'gs-clamp :wms #x1 :wmt #x1)) + (set! (-> s4-1 alpha) (new 'static 'gs-miptbp :tbp1 #x58)) + (set! (-> s4-1 prims 1) (gs-reg64 tex0-1)) + (set! (-> s4-1 prims 3) (gs-reg64 tex1-1)) + (set! (-> s4-1 prims 5) (gs-reg64 miptbp1-1)) + (set! (-> s4-1 clamp-reg) (gs-reg64 clamp-1)) + (set! (-> s4-1 prims 9) (gs-reg64 alpha-1)) ) ) ) diff --git a/test/decompiler/reference/engine/level/level-h_REF.gc b/test/decompiler/reference/engine/level/level-h_REF.gc index 3d94458b22..7b33006f5a 100644 --- a/test/decompiler/reference/engine/level/level-h_REF.gc +++ b/test/decompiler/reference/engine/level/level-h_REF.gc @@ -173,7 +173,7 @@ (vis-self-index int32 :offset-assert 440) (vis-adj-index int32 :offset-assert 444) (vis-buffer uint8 2048 :offset-assert 448) - (mem-usage-block basic :offset-assert 2496) + (mem-usage-block memory-usage-block :offset-assert 2496) (mem-usage int32 :offset-assert 2500) (code-memory-start pointer :offset-assert 2504) (code-memory-end pointer :offset-assert 2508) @@ -187,10 +187,10 @@ (:methods (deactivate (_type_) _type_ 9) (dummy-10 (_type_ int) symbol 10) - (dummy-11 (_type_) none 11) + (add-irq-to-tex-buckets! (_type_) none 11) (unload! (_type_) _type_ 12) (bsp-name (_type_) symbol 13) - (dummy-14 (_type_) none 14) + (dummy-14 (_type_ object) none 14) (dummy-15 (_type_ vector) symbol 15) (dummy-16 (_type_) none 16) (load-continue (_type_) _type_ 17) diff --git a/test/decompiler/reference/engine/math/quaternion_REF.gc b/test/decompiler/reference/engine/math/quaternion_REF.gc index 6965e17f9d..217a8fe76a 100644 --- a/test/decompiler/reference/engine/math/quaternion_REF.gc +++ b/test/decompiler/reference/engine/math/quaternion_REF.gc @@ -1069,19 +1069,16 @@ ;; definition (debug) for function quaternion-validate ;; INFO: Return type mismatch int vs none. (defun-debug quaternion-validate ((arg0 quaternion)) - (with-pp (let ((f0-0 (quaternion-norm arg0))) - (when (or (< 1.01 f0-0) (< f0-0 0.99)) - (format - #t - "WARNING: bad quaternion (magnitude ~F) process is " - f0-0 - ) - (if (and pp (type-type? (-> pp type) process-tree)) - (format #t "~A~%" (-> pp name)) - (format #t "#f~%") - ) - ) - ) + (with-pp + (let ((f0-0 (quaternion-norm arg0))) + (when (or (< 1.01 f0-0) (< f0-0 0.99)) + (format #t "WARNING: bad quaternion (magnitude ~F) process is " f0-0) + (if (and pp (type-type? (-> pp type) process-tree)) + (format #t "~A~%" (-> pp name)) + (format #t "#f~%") + ) + ) + ) 0 (none) ) diff --git a/test/decompiler/reference/engine/nav/navigate-h_REF.gc b/test/decompiler/reference/engine/nav/navigate-h_REF.gc index d2afb92d61..7b30793a36 100644 --- a/test/decompiler/reference/engine/nav/navigate-h_REF.gc +++ b/test/decompiler/reference/engine/nav/navigate-h_REF.gc @@ -449,103 +449,91 @@ ;; Used lq/sq (defun nav-mesh-connect ((proc process) (trans trsqv) (nav-cont nav-control)) (local-vars (sv-16 type) (sv-32 symbol)) - (with-pp (let ((ent (-> proc entity))) - (when (zero? (-> (the-as entity-actor ent) nav-mesh)) - (let - ((lookup-entity - (entity-actor-lookup - (the-as entity-actor ent) - 'nav-mesh-actor - 0 - ) - ) - ) - (if lookup-entity - (set! ent lookup-entity) - ) + (with-pp + (let ((ent (-> proc entity))) + (when (zero? (-> (the-as entity-actor ent) nav-mesh)) + (let + ((lookup-entity + (entity-actor-lookup (the-as entity-actor ent) 'nav-mesh-actor 0) + ) + ) + (if lookup-entity + (set! ent lookup-entity) + ) + ) + ) + (let ((entity-nav-mesh (-> (the-as entity-actor ent) nav-mesh))) + (cond + ((nonzero? entity-nav-mesh) + (when (zero? (-> entity-nav-mesh user-list)) + (set! + process-level-heap + (-> + (the-as entity-links (-> (the-as entity (-> pp entity)) extra)) + level + heap + ) + ) + (let ((s1-0 (method-of-type engine new)) + (s0-0 'process-level-heap) ) - ) - (let ((entity-nav-mesh (-> (the-as entity-actor ent) nav-mesh))) - (cond - ((nonzero? entity-nav-mesh) - (when (zero? (-> entity-nav-mesh user-list)) - (set! - process-level-heap - (-> - (the-as - entity-links - (-> (the-as entity (-> pp entity)) extra) - ) - level - heap - ) - ) - (let ((s1-0 (method-of-type engine new)) - (s0-0 'process-level-heap) - ) - (set! sv-16 engine) - (set! sv-32 'nav-engine) - (let - ((a3-1 - ((method-of-type res-lump get-property-value) - ent - 'nav-max-users - 'interp - -1000000000.0 - (the-as uint128 32) - (the-as (pointer res-tag) #f) - *res-static-buf* - ) - ) - ) - (set! - (-> entity-nav-mesh user-list) - (s1-0 s0-0 sv-16 sv-32 (the-as int a3-1)) - ) - ) - ) - (dummy-13 entity-nav-mesh) - (dummy-17 entity-nav-mesh) - ) - (add-connection - (-> entity-nav-mesh user-list) - proc - (the-as (function object object object object object) nothing) - proc - nav-cont - trans - ) - ) - (else - (if (and nav-cont (-> proc entity)) - (set! - (-> - (the-as - entity-links - (-> (the-as entity (-> proc entity)) extra) - ) - perm - status - ) - (logior - (-> - (the-as - entity-links - (-> (the-as entity (-> proc entity)) extra) - ) - perm - status - ) - (entity-perm-status bit-1) - ) - ) - ) - (set! entity-nav-mesh *default-nav-mesh*) - ) - ) - entity-nav-mesh + (set! sv-16 engine) + (set! sv-32 'nav-engine) + (let + ((a3-1 + ((method-of-type res-lump get-property-value) + ent + 'nav-max-users + 'interp + -1000000000.0 + (the-as uint128 32) + (the-as (pointer res-tag) #f) + *res-static-buf* ) ) + ) + (set! + (-> entity-nav-mesh user-list) + (s1-0 s0-0 sv-16 sv-32 (the-as int a3-1)) + ) + ) + ) + (dummy-13 entity-nav-mesh) + (dummy-17 entity-nav-mesh) + ) + (add-connection + (-> entity-nav-mesh user-list) + proc + (the-as (function object object object object object) nothing) + proc + nav-cont + trans + ) + ) + (else + (if (and nav-cont (-> proc entity)) + (set! + (-> + (the-as entity-links (-> (the-as entity (-> proc entity)) extra)) + perm + status + ) + (logior + (-> + (the-as entity-links (-> (the-as entity (-> proc entity)) extra)) + perm + status + ) + (entity-perm-status bit-1) + ) + ) + ) + (set! entity-nav-mesh *default-nav-mesh*) + ) + ) + entity-nav-mesh + ) + ) ) ) diff --git a/test/decompiler/reference/kernel/gkernel_REF.gc b/test/decompiler/reference/kernel/gkernel_REF.gc index 8abe605873..badd604ae2 100644 --- a/test/decompiler/reference/kernel/gkernel_REF.gc +++ b/test/decompiler/reference/kernel/gkernel_REF.gc @@ -1131,12 +1131,13 @@ ;; INFO: Return type mismatch process-tree vs process. (defun process-by-name ((arg0 object) (arg1 process-tree)) (set! *global-search-name* (the-as basic arg0)) - (the-as - process - (search-process-tree - arg1 - (lambda ((arg0 process)) (name= (-> arg0 name) *global-search-name*)) - ) + (the-as process (search-process-tree arg1 (lambda ((arg0 process)) + (name= + (-> arg0 name) + *global-search-name* + ) + ) + ) ) ) @@ -1144,25 +1145,28 @@ ;; INFO: Return type mismatch process-tree vs process. (defun process-not-name ((arg0 object) (arg1 process-tree)) (set! *global-search-name* (the-as basic arg0)) - (the-as - process - (search-process-tree - arg1 - (lambda ((arg0 process)) (not (name= (-> arg0 name) *global-search-name*))) - ) + (the-as process (search-process-tree arg1 (lambda ((arg0 process)) + (not + (name= + (-> arg0 name) + *global-search-name* + ) + ) + ) + ) ) ) ;; definition for function process-count (defun process-count ((arg0 process-tree)) (set! *global-search-count* 0) - (iterate-process-tree - arg0 - (lambda - ((arg0 process)) - (set! *global-search-count* (+ *global-search-count* 1)) - #t - ) + (iterate-process-tree arg0 (lambda ((arg0 process)) + (set! + *global-search-count* + (+ *global-search-count* 1) + ) + #t + ) *null-kernel-context* ) *global-search-count* @@ -1185,12 +1189,13 @@ (local-vars (a0-1 process-tree)) (set! *global-search-name* (the-as basic arg0)) (while (begin - (set! - a0-1 - (search-process-tree - arg1 - (lambda ((arg0 process)) (= (-> arg0 type) *global-search-name*)) - ) + (set! a0-1 (search-process-tree arg1 (lambda ((arg0 process)) + (= + (-> arg0 type) + *global-search-name* + ) + ) + ) ) a0-1 ) @@ -1216,12 +1221,13 @@ (local-vars (a0-1 process-tree)) (set! *global-search-name* (the-as basic arg0)) (while (begin - (set! - a0-1 - (search-process-tree - arg1 - (lambda ((arg0 process)) (!= (-> arg0 type) *global-search-name*)) - ) + (set! a0-1 (search-process-tree arg1 (lambda ((arg0 process)) + (!= + (-> arg0 type) + *global-search-name* + ) + ) + ) ) a0-1 ) @@ -1340,98 +1346,112 @@ (set! *enable-method-set* (+ *enable-method-set* -1)) 0 ) - (execute-process-tree - *active-pool* - (lambda ((arg0 process)) (let ((s5-0 *kernel-context*) - (v1-0 (-> arg0 status)) - ) - (cond - ((or (= v1-0 'waiting-to-run) (= v1-0 'suspended)) - (set! (-> s5-0 current-process) arg0) - (cond - ((nonzero? - (logand (-> arg0 mask) (process-mask pause)) - ) - (set! *stdcon* *stdcon1*) - (set! *debug-draw-pauseable* #t) - ) - (else - (set! *stdcon* *stdcon0*) - (set! *debug-draw-pauseable* #f) - ) - ) - (when (-> arg0 trans-hook) - (let - ((s4-0 - (new - 'process - 'cpu-thread - arg0 - 'trans - 256 - (-> arg0 main-thread stack-top) - ) - ) - ) - (reset-and-call s4-0 (-> arg0 trans-hook)) - (delete s4-0) - ) - (when (= (-> arg0 status) 'dead) - (set! (-> s5-0 current-process) #f) - (return 'dead) - ) - ) - (if - (nonzero? - (logand - (-> arg0 mask) - (process-mask sleep-code) - ) - ) - (set! (-> arg0 status) 'suspended) - ((-> arg0 main-thread resume-hook) - (-> arg0 main-thread) - ) - ) - (cond - ((= (-> arg0 status) 'dead) - (set! (-> s5-0 current-process) #f) - 'dead - ) - (else - (when (-> arg0 post-hook) - (let - ((s4-1 - (new - 'process - 'cpu-thread - arg0 - 'post - 256 - (&-> *dram-stack* 14336) - ) - ) - ) - (reset-and-call s4-1 (-> arg0 post-hook)) - (delete s4-1) - ) - (when (= (-> arg0 status) 'dead) - (set! (-> s5-0 current-process) #f) - (return 'dead) - ) - (set! (-> arg0 status) 'suspended) - ) - (set! (-> s5-0 current-process) #f) - #f - ) - ) - ) - ((= v1-0 'dead) - 'dead - ) - ) - ) - ) + (execute-process-tree *active-pool* (lambda ((arg0 process)) + (let ((s5-0 *kernel-context*) + (v1-0 (-> arg0 status)) + ) + (cond + ((or + (= v1-0 'waiting-to-run) + (= v1-0 'suspended) + ) + (set! (-> s5-0 current-process) arg0) + (cond + ((nonzero? + (logand + (-> arg0 mask) + (process-mask pause) + ) + ) + (set! *stdcon* *stdcon1*) + (set! *debug-draw-pauseable* #t) + ) + (else + (set! *stdcon* *stdcon0*) + (set! *debug-draw-pauseable* #f) + ) + ) + (when (-> arg0 trans-hook) + (let + ((s4-0 + (new + 'process + 'cpu-thread + arg0 + 'trans + 256 + (-> arg0 main-thread stack-top) + ) + ) + ) + (reset-and-call + s4-0 + (-> arg0 trans-hook) + ) + (delete s4-0) + ) + (when (= (-> arg0 status) 'dead) + (set! (-> s5-0 current-process) #f) + (return 'dead) + ) + ) + (if + (nonzero? + (logand + (-> arg0 mask) + (process-mask sleep-code) + ) + ) + (set! (-> arg0 status) 'suspended) + ((-> arg0 main-thread resume-hook) + (-> arg0 main-thread) + ) + ) + (cond + ((= (-> arg0 status) 'dead) + (set! (-> s5-0 current-process) #f) + 'dead + ) + (else + (when (-> arg0 post-hook) + (let + ((s4-1 + (new + 'process + 'cpu-thread + arg0 + 'post + 256 + (&-> *dram-stack* 14336) + ) + ) + ) + (reset-and-call + s4-1 + (-> arg0 post-hook) + ) + (delete s4-1) + ) + (when (= (-> arg0 status) 'dead) + (set! + (-> s5-0 current-process) + #f + ) + (return 'dead) + ) + (set! (-> arg0 status) 'suspended) + ) + (set! (-> s5-0 current-process) #f) + #f + ) + ) + ) + ((= v1-0 'dead) + 'dead + ) + ) + ) + ) *kernel-context* ) ) @@ -1497,14 +1517,15 @@ new protect-frame ((allocation symbol) (type-to-make type) (arg0 (function object))) - (with-pp (let ((v0-0 (the-as object (+ (the-as int allocation) 4)))) - (set! (-> (the-as protect-frame v0-0) type) type-to-make) - (set! (-> (the-as protect-frame v0-0) name) 'protect-frame) - (set! (-> (the-as protect-frame v0-0) exit) arg0) - (set! (-> (the-as protect-frame v0-0) next) (-> pp stack-frame-top)) - (set! (-> pp stack-frame-top) (the-as protect-frame v0-0)) - (the-as protect-frame v0-0) - ) + (with-pp + (let ((v0-0 (the-as object (+ (the-as int allocation) 4)))) + (set! (-> (the-as protect-frame v0-0) type) type-to-make) + (set! (-> (the-as protect-frame v0-0) name) 'protect-frame) + (set! (-> (the-as protect-frame v0-0) exit) arg0) + (set! (-> (the-as protect-frame v0-0) next) (-> pp stack-frame-top)) + (set! (-> pp stack-frame-top) (the-as protect-frame v0-0)) + (the-as protect-frame v0-0) + ) ) ) @@ -1797,55 +1818,56 @@ ;; WARN: Unsupported inline assembly instruction kind - [jr ra] (defmethod deactivate process ((obj process)) (local-vars (s7-0 none) (ra-0 int)) - (with-pp (when (!= (-> obj status) 'dead) - (set! (-> obj next-state) dead-state) - (if (-> obj entity) - (entity-deactivate-handler obj (-> obj entity)) - ) - (let ((s5-0 pp)) - (let ((s4-0 (-> obj stack-frame-top))) - (while (the-as protect-frame s4-0) - (let ((v1-5 (-> s4-0 type))) - (if (or (= v1-5 protect-frame) (= v1-5 state)) - ((-> (the-as protect-frame s4-0) exit)) - ) - ) - (set! s4-0 (-> (the-as protect-frame s4-0) next)) - ) - ) - (let ((s6-2 s5-0)) - ) - ) - (process-disconnect obj) - (let ((v1-11 (-> obj child))) - (while v1-11 - (let ((s5-1 (-> v1-11 0 brother))) - (deactivate (-> v1-11 0)) - (set! v1-11 s5-1) - ) - ) - ) - (return-process (-> obj pool) obj) - (set! (-> obj state) #f) - (set! (-> obj next-state) #f) - (set! (-> obj entity) #f) - (set! (-> obj pid) 0) - (cond - ((= (-> *kernel-context* current-process) obj) - (set! (-> obj status) 'dead) - (.lw ra-0 return-from-thread s7-0) - (.jr ra-0) - (nop!) - 0 - ) - ((= (-> obj status) 'initialize) - (set! (-> obj status) 'dead) - (throw 'initialize #f) - ) - ) - (set! (-> obj status) 'dead) - 0 - ) + (with-pp + (when (!= (-> obj status) 'dead) + (set! (-> obj next-state) dead-state) + (if (-> obj entity) + (entity-deactivate-handler obj (-> obj entity)) + ) + (let ((s5-0 pp)) + (let ((s4-0 (-> obj stack-frame-top))) + (while (the-as protect-frame s4-0) + (let ((v1-5 (-> s4-0 type))) + (if (or (= v1-5 protect-frame) (= v1-5 state)) + ((-> (the-as protect-frame s4-0) exit)) + ) + ) + (set! s4-0 (-> (the-as protect-frame s4-0) next)) + ) + ) + (let ((s6-2 s5-0)) + ) + ) + (process-disconnect obj) + (let ((v1-11 (-> obj child))) + (while v1-11 + (let ((s5-1 (-> v1-11 0 brother))) + (deactivate (-> v1-11 0)) + (set! v1-11 s5-1) + ) + ) + ) + (return-process (-> obj pool) obj) + (set! (-> obj state) #f) + (set! (-> obj next-state) #f) + (set! (-> obj entity) #f) + (set! (-> obj pid) 0) + (cond + ((= (-> *kernel-context* current-process) obj) + (set! (-> obj status) 'dead) + (.lw ra-0 return-from-thread s7-0) + (.jr ra-0) + (nop!) + 0 + ) + ((= (-> obj status) 'initialize) + (set! (-> obj status) 'dead) + (throw 'initialize #f) + ) + ) + (set! (-> obj status) 'dead) + 0 + ) (none) ) ) diff --git a/test/offline/offline_test_main.cpp b/test/offline/offline_test_main.cpp index 56d624aed6..dfea7700f0 100644 --- a/test/offline/offline_test_main.cpp +++ b/test/offline/offline_test_main.cpp @@ -146,6 +146,10 @@ const std::unordered_set g_functions_to_skip_compiling = { "curve-evaluate!", // asm requiring manual rewrite "point-in-triangle-cross", // logior on floats manual fixup + // texture + "(method 9 texture-page-dir)", // multiplication on pointers + "adgif-shader<-texture-with-update!", // misrecognized bitfield stuff. + // asm "invalidate-cache-line", From 759b69474cb65d9b21a3bb534a65fa166778a80a Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 10 Jul 2021 02:21:51 +0000 Subject: [PATCH 04/63] Updated github pages site --- docs/gh-pages-proj/src/config/progress.json | 2 +- docs/index.html | 2 +- docs/js/{about.cfbc2b74.js => about.09fda0d1.js} | 4 ++-- docs/js/{about.cfbc2b74.js.map => about.09fda0d1.js.map} | 2 +- docs/js/{app.c8ce51d9.js => app.66fed943.js} | 4 ++-- docs/js/{app.c8ce51d9.js.map => app.66fed943.js.map} | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) rename docs/js/{about.cfbc2b74.js => about.09fda0d1.js} (99%) rename docs/js/{about.cfbc2b74.js.map => about.09fda0d1.js.map} (99%) rename docs/js/{app.c8ce51d9.js => app.66fed943.js} (97%) rename docs/js/{app.c8ce51d9.js.map => app.66fed943.js.map} (98%) diff --git a/docs/gh-pages-proj/src/config/progress.json b/docs/gh-pages-proj/src/config/progress.json index d80538f0bd..fd8e27abc1 100644 --- a/docs/gh-pages-proj/src/config/progress.json +++ b/docs/gh-pages-proj/src/config/progress.json @@ -1,7 +1,7 @@ { "jak1": { "locPercentage": { - "value": 100839, + "value": 102746, "label": "Lines of Code" } } diff --git a/docs/index.html b/docs/index.html index 559069ee70..c00a3e8501 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1 +1 @@ -OpenGOAL Tooling
\ No newline at end of file +OpenGOAL Tooling
\ No newline at end of file diff --git a/docs/js/about.cfbc2b74.js b/docs/js/about.09fda0d1.js similarity index 99% rename from docs/js/about.cfbc2b74.js rename to docs/js/about.09fda0d1.js index 50205ee1ee..511b593f61 100644 --- a/docs/js/about.cfbc2b74.js +++ b/docs/js/about.09fda0d1.js @@ -1,2 +1,2 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":100839,"label":"Lines of Code"}}}')}}]); -//# sourceMappingURL=about.cfbc2b74.js.map \ No newline at end of file +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":102746,"label":"Lines of Code"}}}')}}]); +//# sourceMappingURL=about.09fda0d1.js.map \ No newline at end of file diff --git a/docs/js/about.cfbc2b74.js.map b/docs/js/about.09fda0d1.js.map similarity index 99% rename from docs/js/about.cfbc2b74.js.map rename to docs/js/about.09fda0d1.js.map index 0d8d78629e..2b103cc266 100644 --- a/docs/js/about.cfbc2b74.js.map +++ b/docs/js/about.09fda0d1.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?b24d","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.cfbc2b74.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?b24d","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.09fda0d1.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/js/app.c8ce51d9.js b/docs/js/app.66fed943.js similarity index 97% rename from docs/js/app.c8ce51d9.js rename to docs/js/app.66fed943.js index cf995c1b68..907ee42a02 100644 --- a/docs/js/app.c8ce51d9.js +++ b/docs/js/app.66fed943.js @@ -1,2 +1,2 @@ -(function(e){function t(t){for(var n,o,i=t[0],c=t[1],l=t[2],s=0,p=[];s\n \n \n \n \n \n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?7eb4","webpack:///src/App.vue","webpack:///./src/App.vue?1160","webpack:///./src/App.vue","webpack:///./src/plugins/vuetify.js","webpack:///./src/router/index.js","webpack:///./src/main.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_h","$createElement","_c","_self","staticRenderFns","components","component","VApp","VMain","Vue","use","Vuetify","theme","dark","VueRouter","routes","path","router","base","process","config","productionTip","vuetify","render","h","App","$mount"],"mappings":"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","file":"js/app.66fed943.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"09fda0d1\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"about\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"8d0e9591\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/jak-project/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[_c('v-main',[_c('router-view')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file From 0e4a9d26793ae31123513385d1aa2007e1219c01 Mon Sep 17 00:00:00 2001 From: Tyler Wilding Date: Sat, 10 Jul 2021 10:18:48 -0400 Subject: [PATCH 05/63] decomp: finish `path` (#685) * decomp: finish `path` * address feedback --- decompiler/config/all-types.gc | 30 +- .../jak1_ntsc_black_label/label_types.jsonc | 8 + .../stack_structures.jsonc | 11 + goal_src/engine/debug/debug.gc | 2 +- goal_src/engine/nav/path-h.gc | 57 ++- goal_src/engine/nav/path.gc | 460 +++++++++++++++++ .../reference/engine/nav/path-h_REF.gc | 51 +- .../reference/engine/nav/path_REF.gc | 463 ++++++++++++++++++ 8 files changed, 1015 insertions(+), 67 deletions(-) create mode 100644 test/decompiler/reference/engine/nav/path_REF.gc diff --git a/decompiler/config/all-types.gc b/decompiler/config/all-types.gc index 7e52a48b35..656f88a0db 100644 --- a/decompiler/config/all-types.gc +++ b/decompiler/config/all-types.gc @@ -610,6 +610,9 @@ :bitfield #t :type uint32 (display 0) + (draw-line 1) ;; TODO - only seen it used to control debug drawing so far + (draw-point 2) ;; TODO - only seen it used to control debug drawing so far + (draw-text 3) ;; TODO - only seen it used to control debug drawing so far (not-found 4) ) @@ -14121,35 +14124,34 @@ (deftype path-control (basic) ((flags path-control-flag :offset-assert 4) - (name basic :offset-assert 8) - (process basic :offset-assert 12) + (name symbol :offset-assert 8) + (process process-drawable :offset-assert 12) (curve curve :inline :offset-assert 16) (num-cverts int32 :offset 20) - (cverts pointer :offset 16) + (cverts (inline-array vector) :score 100 :offset 16) ) :method-count-assert 21 :size-assert #x24 :flag-assert #x1500000024 (:methods (new (symbol type process symbol float) _type_) - (dummy-9 () none 9) - (dummy-10 () none 10) - (dummy-11 () none 11) - (dummy-12 () none 12) - (dummy-13 () none 13) - (dummy-14 () none 14) + (dummy-9 (_type_) none 9) + (eval-path-curve-div! (_type_ vector float symbol) vector 10) + (get-random-point (_type_ vector) vector 11) + (TODO-RENAME-12 (_type_ vector float) vector 12) + (eval-path-curve! (_type_ vector float symbol) vector 13) + (TODO-RENAME-14 (_type_ vector float) vector 14) (length-as-float (_type_) float 15) - (dummy-16 () none 16) + (path-distance (_type_) float 16) (get-num-verts (_type_) int 17) (should-display? (_type_) symbol 18) - (dummy-19 () none 19) - (dummy-20 () none 20) + (TODO-RENAME-19 (_type_) float 19) + (TODO-RENAME-20 (_type_) float 20) ) ) (deftype curve-control (path-control) () - (:methods (new (symbol type process symbol float) _type_) ) @@ -15088,7 +15090,7 @@ (define-extern add-debug-rot-matrix (function symbol bucket-id matrix vector matrix)) (define-extern add-debug-yrot-vector (function symbol bucket-id vector float float rgba symbol)) (define-extern add-debug-arc (function symbol bucket-id vector float float float rgba matrix symbol)) -(define-extern add-debug-curve2 (function symbol bucket-id curve rgba symbol)) +(define-extern add-debug-curve2 (function symbol bucket-id curve rgba symbol symbol)) (define-extern add-debug-points (function symbol bucket-id (inline-array vector) int rgba float int symbol)) ;; unused (define-extern debug-percent-bar (function symbol bucket-id int int float rgba symbol)) (define-extern debug-pad-display (function cpad-info symbol)) ;; unused diff --git a/decompiler/config/jak1_ntsc_black_label/label_types.jsonc b/decompiler/config/jak1_ntsc_black_label/label_types.jsonc index 0c313ea2bd..b9f31659f1 100644 --- a/decompiler/config/jak1_ntsc_black_label/label_types.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/label_types.jsonc @@ -1166,6 +1166,14 @@ "memory-usage": [ ["L15", "_lambda_", true] ], + + "path": [ + ["L47", "float", true], + ["L49", "float", true], + ["L78", "rgba", true], + ["L79", "rgba", true] + ], + // please do not add things after this entry! git is dumb. "object-file-that-doesnt-actually-exist-and-i-just-put-this-here-to-prevent-merge-conflicts-with-this-file": [] } diff --git a/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc b/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc index bb1130a4e0..82a5c0ad26 100644 --- a/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc @@ -529,5 +529,16 @@ [16, "sphere"] ], + "(method 14 curve-control)": [ + [16, "vector"] + ], + + "(method 19 path-control)": [ + [16, "vector"], + [32, "vector"], + [48, "vector"], + [64, "vector"] + ], + "placeholder-do-not-add-below!": [] } diff --git a/goal_src/engine/debug/debug.gc b/goal_src/engine/debug/debug.gc index 83ac3ff0e6..c1b0567f0e 100644 --- a/goal_src/engine/debug/debug.gc +++ b/goal_src/engine/debug/debug.gc @@ -1332,7 +1332,7 @@ #f ) -(defun-debug add-debug-curve2 ((arg0 symbol) (arg1 bucket-id) (arg2 curve) (arg3 rgba)) +(defun-debug add-debug-curve2 ((arg0 symbol) (arg1 bucket-id) (arg2 curve) (arg3 rgba) (arg4 symbol)) (if arg0 (add-debug-curve #t diff --git a/goal_src/engine/nav/path-h.gc b/goal_src/engine/nav/path-h.gc index e40c1b3468..3f979d207f 100644 --- a/goal_src/engine/nav/path-h.gc +++ b/goal_src/engine/nav/path-h.gc @@ -6,39 +6,42 @@ ;; dgos: GAME, ENGINE (defenum path-control-flag - :bitfield #t - :type uint32 - (display 0) - (not-found 4) - ) + :bitfield #t + :type uint32 + (display 0) + (draw-line 1) ;; TODO - only seen it used to control debug drawing so far + (draw-point 2) ;; TODO - only seen it used to control debug drawing so far + (draw-text 3) ;; TODO - only seen it used to control debug drawing so far + (not-found 4) + ) ;; A path-control is a curve that can be loaded from res-lump/entities. (deftype path-control (basic) - ((flags path-control-flag :offset-assert 4) - (name basic :offset-assert 8) - (process basic :offset-assert 12) - (curve curve :inline :offset-assert 16) - (num-cverts int32 :offset 20) - (cverts pointer :offset 16) + ((flags path-control-flag :offset-assert 4) + (name symbol :offset-assert 8) + (process process-drawable :offset-assert 12) + (curve curve :inline :offset-assert 16) + (num-cverts int32 :offset 20) + (cverts (inline-array vector) :score 100 :offset 16) ) :method-count-assert 21 :size-assert #x24 :flag-assert #x1500000024 (:methods - (new (symbol type process symbol float) _type_ 0) - (dummy-9 () none 9) - (dummy-10 () none 10) - (dummy-11 () none 11) - (dummy-12 () none 12) - (dummy-13 () none 13) - (dummy-14 () none 14) - (length-as-float (_type_) float 15) - (dummy-16 () none 16) - (get-num-verts (_type_) int 17) - (should-display? (_type_) symbol 18) - (dummy-19 () none 19) - (dummy-20 () none 20) - ) + (new (symbol type process symbol float) _type_) + (dummy-9 (_type_) none 9) + (eval-path-curve-div! (_type_ vector float symbol) vector 10) + (get-random-point (_type_ vector) vector 11) + (TODO-RENAME-12 (_type_ vector float) vector 12) + (eval-path-curve! (_type_ vector float symbol) vector 13) + (TODO-RENAME-14 (_type_ vector float) vector 14) + (length-as-float (_type_) float 15) + (path-distance (_type_) float 16) + (get-num-verts (_type_) int 17) + (should-display? (_type_) symbol 18) + (TODO-RENAME-19 (_type_) float 19) + (TODO-RENAME-20 (_type_) float 20) + ) ) ;; A curve-control is very similar, but also gets knots. @@ -63,7 +66,7 @@ (goto cfg-9) ) - (set! (-> obj process) proc) + (set! (-> obj process) (the-as process-drawable proc)) (set! (-> obj name) name) (let ((ent (-> proc entity))) (when (= name 'path) @@ -128,7 +131,7 @@ (defmethod new curve-control ((allocation symbol) (type-to-make type) (proc process) (name symbol) (time float)) (let ((obj (object-new allocation type-to-make (the-as int (-> type-to-make size))))) - (set! (-> obj process) proc) + (set! (-> obj process) (the-as process-drawable proc)) (set! (-> obj name) name) (let* ((ent (the-as entity (-> proc entity))) (v1-2 name) diff --git a/goal_src/engine/nav/path.gc b/goal_src/engine/nav/path.gc index c86e5cb5c1..358bd92232 100644 --- a/goal_src/engine/nav/path.gc +++ b/goal_src/engine/nav/path.gc @@ -5,3 +5,463 @@ ;; name in dgo: path ;; dgos: GAME, ENGINE +;; definition for method 9 of type path-control +;; INFO: Return type mismatch int vs none. +(defmethod dummy-9 path-control ((obj path-control)) + (cond + ((nonzero? (logand (-> obj flags) (path-control-flag not-found))) + (when + (and + (type-type? (-> obj process type) process-drawable) + *display-entity-errors* + ) + (let ((s5-0 add-debug-text-3d) + (s4-0 #t) + (s3-0 68) + ) + (format + (clear *temp-string*) + "path data error in ~S" + (-> obj process name) + ) + (s5-0 + s4-0 + (the-as bucket-id s3-0) + *temp-string* + (-> obj process root trans) + (new 'static 'rgba :r #x3) + (the-as vector2h #f) + ) + ) + ) + ) + ((let ((a0-5 obj)) + (and + *display-path-marks* + (nonzero? (logand (-> a0-5 flags) (path-control-flag display))) + ) + ) + (dotimes (s5-1 (-> obj curve num-cverts)) + (let ((s4-1 (-> obj cverts s5-1))) + (if + (and + (nonzero? (logand (-> obj flags) (path-control-flag draw-line))) + (< s5-1 (+ (-> obj curve num-cverts) -1)) + ) + (add-debug-line + #t + (bucket-id debug-draw1) + s4-1 + (-> obj cverts (+ s5-1 1)) + (new 'static 'rgba :r #xff :g #x80 :a #x80) + #f + (the-as rgba -1) + ) + ) + (if (nonzero? (logand (-> obj flags) (path-control-flag draw-point))) + (add-debug-x + #t + (bucket-id debug-draw1) + s4-1 + (new 'static 'rgba :r #xff :a #x80) + ) + ) + (when (nonzero? (logand (-> obj flags) (path-control-flag draw-text))) + (let ((s3-1 add-debug-text-3d) + (s2-1 #t) + (s1-0 68) + ) + (format (clear *temp-string*) "~D" s5-1) + (s3-1 + s2-1 + (the-as bucket-id s1-0) + *temp-string* + s4-1 + (new 'static 'rgba :r #x4) + (the-as vector2h #f) + ) + ) + ) + ) + ) + ) + ) + 0 + (none) + ) + +;; definition for method 16 of type path-control +(defmethod path-distance path-control ((obj path-control)) + (let ((f30-0 0.0)) + (dotimes (s5-0 (+ (-> obj curve num-cverts) -1)) + (+! + f30-0 + (vector-vector-distance (-> obj cverts s5-0) (-> obj cverts (+ s5-0 1))) + ) + ) + f30-0 + ) + ) + +;; definition for method 16 of type curve-control +(defmethod path-distance curve-control ((obj curve-control)) + (let ((f0-0 (-> obj curve length))) + (when (= f0-0 0.0) + (set! f0-0 (curve-length (the-as curve (&-> obj cverts)))) + (set! (-> obj curve length) f0-0) + ) + f0-0 + ) + ) + +;; definition for method 10 of type path-control +;; Used lq/sq +(defmethod + eval-path-curve-div! + path-control + ((obj path-control) (arg0 vector) (arg1 float) (arg2 symbol)) + (let ((a1-1 (-> obj curve num-cverts)) + (f0-3 (the float (the int arg1))) + ) + (cond + ((< arg1 0.0) + (set! (-> arg0 quad) (-> obj cverts 0 quad)) + ) + ((>= f0-3 (the float (+ a1-1 -1))) + (set! (-> arg0 quad) (-> obj cverts (+ a1-1 -1) quad)) + ) + (else + (if (or (= arg2 'exact) (= f0-3 arg1)) + (set! (-> arg0 quad) (-> obj cverts (the int f0-3) quad)) + (vector-lerp! + arg0 + (-> obj cverts (the int f0-3)) + (-> obj cverts (the int (+ 1.0 f0-3))) + (- arg1 f0-3) + ) + ) + ) + ) + ) + arg0 + ) + +;; definition for method 11 of type path-control +;; Used lq/sq +(defmethod get-random-point path-control ((obj path-control) (arg0 vector)) + (with-pp + (cond + ((> (-> obj curve num-cverts) 0) + (let ((s4-0 (rand-vu-int-count (-> obj curve num-cverts)))) + (when *run-time-assert-enable* + (set-pos *__private-assert-info* "path" (the-as uint 83) (the-as uint 6)) + (__assert-zero-lim-range-int + s4-0 + (-> obj curve num-cverts) + "rand-index" + "(-> obj num-cverts)" + ) + ) + (set! (-> arg0 quad) (-> obj cverts s4-0 quad)) + ) + ) + (else + (format + #t + "WARNING: method get-random-point called on a path-control object with no vertices.~%" + ) + (if pp + (format #t "current process is ~A~%" (-> pp name)) + ) + (set! (-> arg0 quad) (-> *null-vector* quad)) + ) + ) + arg0 + ) + ) + +;; definition for method 13 of type path-control +(defmethod + eval-path-curve! + path-control + ((obj path-control) (arg0 vector) (arg1 float) (arg2 symbol)) + (eval-path-curve-div! + obj + arg0 + (* arg1 (the float (+ (-> obj curve num-cverts) -1))) + arg2 + ) + ) + +;; definition for method 13 of type curve-control +;; INFO: Return type mismatch object vs vector. +(defmethod + eval-path-curve! + curve-control + ((obj curve-control) (arg0 vector) (arg1 float) (arg2 symbol)) + (the-as + vector + (if (nonzero? (logand (-> obj flags) (path-control-flag not-found))) + 0.0 + (curve-evaluate! + arg0 + arg1 + (the-as pointer (-> obj cverts)) + (-> obj curve num-cverts) + (-> obj curve knots) + (-> obj curve num-knots) + ) + ) + ) + ) + +;; definition for method 10 of type curve-control +;; INFO: Return type mismatch object vs vector. +(defmethod + eval-path-curve-div! + curve-control + ((obj curve-control) (arg0 vector) (arg1 float) (arg2 symbol)) + (the-as + vector + (if (nonzero? (logand (-> obj flags) (path-control-flag not-found))) + 0.0 + (curve-evaluate! + arg0 + (/ arg1 (the float (+ (-> obj curve num-cverts) -1))) + (the-as pointer (-> obj cverts)) + (-> obj curve num-cverts) + (-> obj curve knots) + (-> obj curve num-knots) + ) + ) + ) + ) + +;; definition for method 12 of type path-control +(defmethod + TODO-RENAME-12 + path-control + ((obj path-control) (arg0 vector) (arg1 float)) + (when (zero? (logand (-> obj flags) (path-control-flag not-found))) + (let ((v1-3 (-> obj curve num-cverts)) + (f0-3 (the float (the int arg1))) + ) + (cond + ((< v1-3 2) + ) + ((< arg1 0.0) + (vector-! arg0 (-> obj cverts 1) (-> obj cverts 0)) + ) + (else + (let ((f0-4 (fmin f0-3 (the float (+ v1-3 -2))))) + (vector-! + arg0 + (-> obj cverts (the int (+ 1.0 f0-4))) + (-> obj cverts (the int f0-4)) + ) + ) + ) + ) + ) + ) + (vector-normalize! arg0 1.0) + ) + +;; definition for method 14 of type path-control +(defmethod + TODO-RENAME-14 + path-control + ((obj path-control) (arg0 vector) (arg1 float)) + (TODO-RENAME-12 + obj + arg0 + (* arg1 (the float (+ (-> obj curve num-cverts) -1))) + ) + ) + +;; definition for method 14 of type curve-control +(defmethod + TODO-RENAME-14 + curve-control + ((obj curve-control) (arg0 vector) (arg1 float)) + (when (zero? (logand (-> obj flags) (path-control-flag not-found))) + (let ((s4-0 (new 'stack-no-clear 'vector))) + (curve-evaluate! + arg0 + arg1 + (the-as pointer (-> obj cverts)) + (-> obj curve num-cverts) + (-> obj curve knots) + (-> obj curve num-knots) + ) + (cond + ((< arg1 0.99) + (curve-evaluate! + s4-0 + (+ 0.01 arg1) + (the-as pointer (-> obj cverts)) + (-> obj curve num-cverts) + (-> obj curve knots) + (-> obj curve num-knots) + ) + (vector-! arg0 s4-0 arg0) + ) + (else + (curve-evaluate! + s4-0 + (+ -0.01 arg1) + (the-as pointer (-> obj cverts)) + (-> obj curve num-cverts) + (-> obj curve knots) + (-> obj curve num-knots) + ) + (vector-! arg0 arg0 s4-0) + ) + ) + ) + ) + (vector-normalize! arg0 1.0) + ) + +;; definition for method 12 of type curve-control +(defmethod + TODO-RENAME-12 + curve-control + ((obj curve-control) (arg0 vector) (arg1 float)) + (TODO-RENAME-14 + obj + arg0 + (/ arg1 (the float (+ (-> obj curve num-cverts) -1))) + ) + ) + +;; definition for method 19 of type path-control +;; Used lq/sq +(defmethod TODO-RENAME-19 path-control ((obj path-control)) + (let ((s5-0 (new 'stack-no-clear 'vector)) + (s4-0 (new 'stack-no-clear 'vector)) + (s3-0 (new 'stack-no-clear 'vector)) + (f30-0 4096000000.0) + (f28-0 0.0) + ) + (let ((s2-0 (new 'stack-no-clear 'vector))) + (set! (-> s3-0 quad) (-> (target-pos 0) quad)) + (set! (-> s3-0 y) 0.0) + (eval-path-curve-div! obj s4-0 0.0 'interp) + (set! (-> s4-0 y) 0.0) + (dotimes (s1-1 (+ (-> obj curve num-cverts) -1)) + (set! (-> s5-0 quad) (-> s4-0 quad)) + (eval-path-curve-div! obj s4-0 (the float (+ s1-1 1)) 'interp) + (set! (-> s4-0 y) 0.0) + (let ((f0-5 (vector-segment-distance-point! s3-0 s5-0 s4-0 s2-0))) + (when (< f0-5 f30-0) + (set! f30-0 f0-5) + (set! + f28-0 + (+ + (/ + (vector-vector-xz-distance s2-0 s5-0) + (vector-vector-xz-distance s4-0 s5-0) + ) + (the float s1-1) + ) + ) + ) + ) + ) + ) + f28-0 + ) + ) + +;; definition for method 20 of type path-control +(defmethod TODO-RENAME-20 path-control ((obj path-control)) + (/ (TODO-RENAME-19 obj) (the float (+ (-> obj curve num-cverts) -1))) + ) + +;; definition for method 9 of type curve-control +;; INFO: Return type mismatch int vs none. +(defmethod dummy-9 curve-control ((obj curve-control)) + (cond + ((nonzero? (logand (-> obj flags) (path-control-flag not-found))) + (when + (and + (type-type? (-> obj process type) process-drawable) + *display-entity-errors* + ) + (let ((s5-0 add-debug-text-3d) + (s4-0 #t) + (s3-0 68) + ) + (format + (clear *temp-string*) + "curve data error in ~S" + (-> obj process name) + ) + (s5-0 + s4-0 + (the-as bucket-id s3-0) + *temp-string* + (-> obj process root trans) + (new 'static 'rgba :r #x3) + (the-as vector2h #f) + ) + ) + ) + ) + ((let ((a0-5 obj)) + (and + *display-path-marks* + (nonzero? (logand (-> a0-5 flags) (path-control-flag display))) + ) + ) + (if + (and + (nonzero? (logand (-> obj flags) (path-control-flag draw-line))) + (> (-> obj curve num-cverts) 0) + ) + (add-debug-curve2 + #t + (bucket-id debug-draw1) + (the-as curve (&-> obj cverts)) + (new 'static 'rgba :r #xff :g #x80 :a #x80) + #f + ) + ) + (dotimes (s5-1 (-> obj curve num-cverts)) + (let ((s4-1 (-> obj cverts s5-1))) + (if (nonzero? (logand (-> obj flags) (path-control-flag draw-point))) + (add-debug-x + #t + (bucket-id debug-draw1) + s4-1 + (new 'static 'rgba :r #xff :a #x80) + ) + ) + (when (nonzero? (logand (-> obj flags) (path-control-flag draw-text))) + (let ((s3-1 add-debug-text-3d) + (s2-1 #t) + (s1-0 68) + ) + (format (clear *temp-string*) "~D" s5-1) + (s3-1 + s2-1 + (the-as bucket-id s1-0) + *temp-string* + s4-1 + (new 'static 'rgba :r #x4) + (the-as vector2h #f) + ) + ) + ) + ) + ) + ) + ) + 0 + (none) + ) + + + + diff --git a/test/decompiler/reference/engine/nav/path-h_REF.gc b/test/decompiler/reference/engine/nav/path-h_REF.gc index d435d8522c..65b2e517f5 100644 --- a/test/decompiler/reference/engine/nav/path-h_REF.gc +++ b/test/decompiler/reference/engine/nav/path-h_REF.gc @@ -3,30 +3,30 @@ ;; definition of type path-control (deftype path-control (basic) - ((flags path-control-flag :offset-assert 4) - (name basic :offset-assert 8) - (process basic :offset-assert 12) - (curve curve :inline :offset-assert 16) - (num-cverts int32 :offset 20) - (cverts pointer :offset 16) + ((flags path-control-flag :offset-assert 4) + (name symbol :offset-assert 8) + (process process-drawable :offset-assert 12) + (curve curve :inline :offset-assert 16) + (num-cverts int32 :offset 20) + (cverts (inline-array vector) :offset 16) ) :method-count-assert 21 :size-assert #x24 :flag-assert #x1500000024 (:methods (new (symbol type process symbol float) _type_ 0) - (dummy-9 () none 9) - (dummy-10 () none 10) - (dummy-11 () none 11) - (dummy-12 () none 12) - (dummy-13 () none 13) - (dummy-14 () none 14) + (dummy-9 (_type_) none 9) + (eval-path-curve-div! (_type_ vector float symbol) vector 10) + (get-random-point (_type_ vector) vector 11) + (TODO-RENAME-12 (_type_ vector float) vector 12) + (eval-path-curve! (_type_ vector float symbol) vector 13) + (TODO-RENAME-14 (_type_ vector float) vector 14) (length-as-float (_type_) float 15) - (dummy-16 () none 16) + (path-distance (_type_) float 16) (get-num-verts (_type_) int 17) (should-display? (_type_) symbol 18) - (dummy-19 () none 19) - (dummy-20 () none 20) + (TODO-RENAME-19 (_type_) float 19) + (TODO-RENAME-20 (_type_) float 20) ) ) @@ -36,9 +36,9 @@ (format #t "~Tflags: #x~X~%" (-> obj flags)) (format #t "~Tname: ~A~%" (-> obj name)) (format #t "~Tprocess: ~A~%" (-> obj process)) - (format #t "~Tcurve: #~%" (-> obj curve)) + (format #t "~Tcurve: #~%" (&-> obj cverts)) (format #t "~Tnum-cverts: ~D~%" (-> obj curve num-cverts)) - (format #t "~Tcverts: #x~X~%" (-> obj curve cverts)) + (format #t "~Tcverts: #x~X~%" (-> obj cverts)) obj ) @@ -59,9 +59,9 @@ (format #t "~Tflags: #x~X~%" (-> obj flags)) (format #t "~Tname: ~A~%" (-> obj name)) (format #t "~Tprocess: ~A~%" (-> obj process)) - (format #t "~Tcurve: #~%" (-> obj curve)) + (format #t "~Tcurve: #~%" (&-> obj cverts)) (format #t "~Tnum-cverts: ~D~%" (-> obj curve num-cverts)) - (format #t "~Tcverts: #x~X~%" (-> obj curve cverts)) + (format #t "~Tcverts: #x~X~%" (-> obj cverts)) obj ) @@ -96,7 +96,7 @@ (goto cfg-9) ) ) - (set! (-> obj process) proc) + (set! (-> obj process) (the-as process-drawable proc)) (set! (-> obj name) name) (let ((ent (-> proc entity))) (when (= name 'path) @@ -122,7 +122,7 @@ ) (cond (data - (set! (-> obj curve cverts) data) + (set! (-> obj cverts) (the-as (inline-array vector) data)) (set! (-> obj curve num-cverts) (the-as int (-> tag elt-count))) ) (else @@ -130,7 +130,7 @@ (-> obj flags) (logior (-> obj flags) (path-control-flag not-found)) ) - (set! (-> obj curve cverts) (the-as pointer #f)) + (set! (-> obj cverts) (the-as (inline-array vector) #f)) (set! (-> obj curve num-cverts) 0) 0 ) @@ -176,7 +176,7 @@ (object-new allocation type-to-make (the-as int (-> type-to-make size))) ) ) - (set! (-> obj process) proc) + (set! (-> obj process) (the-as process-drawable proc)) (set! (-> obj name) name) (let* ((ent (-> proc entity)) (v1-2 name) @@ -198,7 +198,8 @@ (set! ent lookup-entity) ) ) - (when (not (get-curve-data! ent (-> obj curve) name s2-0 time)) + (when + (not (get-curve-data! ent (the-as curve (&-> obj cverts)) name s2-0 time)) (cond ((> (-> obj curve num-cverts) 0) (set! (-> obj type) path-control) @@ -208,7 +209,7 @@ (-> obj flags) (logior (-> obj flags) (path-control-flag not-found)) ) - (set! (-> obj curve cverts) (the-as pointer #f)) + (set! (-> obj cverts) (the-as (inline-array vector) #f)) (set! (-> obj curve num-cverts) 0) 0 ) diff --git a/test/decompiler/reference/engine/nav/path_REF.gc b/test/decompiler/reference/engine/nav/path_REF.gc new file mode 100644 index 0000000000..24b5c00320 --- /dev/null +++ b/test/decompiler/reference/engine/nav/path_REF.gc @@ -0,0 +1,463 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for method 9 of type path-control +;; INFO: Return type mismatch int vs none. +(defmethod dummy-9 path-control ((obj path-control)) + (cond + ((nonzero? (logand (-> obj flags) (path-control-flag not-found))) + (when + (and + (type-type? (-> obj process type) process-drawable) + *display-entity-errors* + ) + (let ((s5-0 add-debug-text-3d) + (s4-0 #t) + (s3-0 68) + ) + (format + (clear *temp-string*) + "path data error in ~S" + (-> obj process name) + ) + (s5-0 + s4-0 + (the-as bucket-id s3-0) + *temp-string* + (-> obj process root trans) + (new 'static 'rgba :r #x3) + (the-as vector2h #f) + ) + ) + ) + ) + ((let ((a0-5 obj)) + (and + *display-path-marks* + (nonzero? (logand (-> a0-5 flags) (path-control-flag display))) + ) + ) + (dotimes (s5-1 (-> obj curve num-cverts)) + (let ((s4-1 (-> obj cverts s5-1))) + (if + (and + (nonzero? (logand (-> obj flags) (path-control-flag draw-line))) + (< s5-1 (+ (-> obj curve num-cverts) -1)) + ) + (add-debug-line + #t + (bucket-id debug-draw1) + s4-1 + (-> obj cverts (+ s5-1 1)) + (new 'static 'rgba :r #xff :g #x80 :a #x80) + #f + (the-as rgba -1) + ) + ) + (if (nonzero? (logand (-> obj flags) (path-control-flag draw-point))) + (add-debug-x + #t + (bucket-id debug-draw1) + s4-1 + (new 'static 'rgba :r #xff :a #x80) + ) + ) + (when (nonzero? (logand (-> obj flags) (path-control-flag draw-text))) + (let ((s3-1 add-debug-text-3d) + (s2-1 #t) + (s1-0 68) + ) + (format (clear *temp-string*) "~D" s5-1) + (s3-1 + s2-1 + (the-as bucket-id s1-0) + *temp-string* + s4-1 + (new 'static 'rgba :r #x4) + (the-as vector2h #f) + ) + ) + ) + ) + ) + ) + ) + 0 + (none) + ) + +;; definition for method 16 of type path-control +(defmethod path-distance path-control ((obj path-control)) + (let ((f30-0 0.0)) + (dotimes (s5-0 (+ (-> obj curve num-cverts) -1)) + (+! + f30-0 + (vector-vector-distance (-> obj cverts s5-0) (-> obj cverts (+ s5-0 1))) + ) + ) + f30-0 + ) + ) + +;; definition for method 16 of type curve-control +(defmethod path-distance curve-control ((obj curve-control)) + (let ((f0-0 (-> obj curve length))) + (when (= f0-0 0.0) + (set! f0-0 (curve-length (the-as curve (&-> obj cverts)))) + (set! (-> obj curve length) f0-0) + ) + f0-0 + ) + ) + +;; definition for method 10 of type path-control +;; Used lq/sq +(defmethod + eval-path-curve-div! + path-control + ((obj path-control) (arg0 vector) (arg1 float) (arg2 symbol)) + (let ((a1-1 (-> obj curve num-cverts)) + (f0-3 (the float (the int arg1))) + ) + (cond + ((< arg1 0.0) + (set! (-> arg0 quad) (-> obj cverts 0 quad)) + ) + ((>= f0-3 (the float (+ a1-1 -1))) + (set! (-> arg0 quad) (-> obj cverts (+ a1-1 -1) quad)) + ) + (else + (if (or (= arg2 'exact) (= f0-3 arg1)) + (set! (-> arg0 quad) (-> obj cverts (the int f0-3) quad)) + (vector-lerp! + arg0 + (-> obj cverts (the int f0-3)) + (-> obj cverts (the int (+ 1.0 f0-3))) + (- arg1 f0-3) + ) + ) + ) + ) + ) + arg0 + ) + +;; definition for method 11 of type path-control +;; Used lq/sq +(defmethod get-random-point path-control ((obj path-control) (arg0 vector)) + (with-pp + (cond + ((> (-> obj curve num-cverts) 0) + (let ((s4-0 (rand-vu-int-count (-> obj curve num-cverts)))) + (when *run-time-assert-enable* + (set-pos *__private-assert-info* "path" (the-as uint 83) (the-as uint 6)) + (__assert-zero-lim-range-int + s4-0 + (-> obj curve num-cverts) + "rand-index" + "(-> obj num-cverts)" + ) + ) + (set! (-> arg0 quad) (-> obj cverts s4-0 quad)) + ) + ) + (else + (format + #t + "WARNING: method get-random-point called on a path-control object with no vertices.~%" + ) + (if pp + (format #t "current process is ~A~%" (-> pp name)) + ) + (set! (-> arg0 quad) (-> *null-vector* quad)) + ) + ) + arg0 + ) + ) + +;; definition for method 13 of type path-control +(defmethod + eval-path-curve! + path-control + ((obj path-control) (arg0 vector) (arg1 float) (arg2 symbol)) + (eval-path-curve-div! + obj + arg0 + (* arg1 (the float (+ (-> obj curve num-cverts) -1))) + arg2 + ) + ) + +;; definition for method 13 of type curve-control +;; INFO: Return type mismatch object vs vector. +(defmethod + eval-path-curve! + curve-control + ((obj curve-control) (arg0 vector) (arg1 float) (arg2 symbol)) + (the-as + vector + (if (nonzero? (logand (-> obj flags) (path-control-flag not-found))) + 0.0 + (curve-evaluate! + arg0 + arg1 + (the-as pointer (-> obj cverts)) + (-> obj curve num-cverts) + (-> obj curve knots) + (-> obj curve num-knots) + ) + ) + ) + ) + +;; definition for method 10 of type curve-control +;; INFO: Return type mismatch object vs vector. +(defmethod + eval-path-curve-div! + curve-control + ((obj curve-control) (arg0 vector) (arg1 float) (arg2 symbol)) + (the-as + vector + (if (nonzero? (logand (-> obj flags) (path-control-flag not-found))) + 0.0 + (curve-evaluate! + arg0 + (/ arg1 (the float (+ (-> obj curve num-cverts) -1))) + (the-as pointer (-> obj cverts)) + (-> obj curve num-cverts) + (-> obj curve knots) + (-> obj curve num-knots) + ) + ) + ) + ) + +;; definition for method 12 of type path-control +(defmethod + TODO-RENAME-12 + path-control + ((obj path-control) (arg0 vector) (arg1 float)) + (when (zero? (logand (-> obj flags) (path-control-flag not-found))) + (let ((v1-3 (-> obj curve num-cverts)) + (f0-3 (the float (the int arg1))) + ) + (cond + ((< v1-3 2) + ) + ((< arg1 0.0) + (vector-! arg0 (-> obj cverts 1) (-> obj cverts 0)) + ) + (else + (let ((f0-4 (fmin f0-3 (the float (+ v1-3 -2))))) + (vector-! + arg0 + (-> obj cverts (the int (+ 1.0 f0-4))) + (-> obj cverts (the int f0-4)) + ) + ) + ) + ) + ) + ) + (vector-normalize! arg0 1.0) + ) + +;; definition for method 14 of type path-control +(defmethod + TODO-RENAME-14 + path-control + ((obj path-control) (arg0 vector) (arg1 float)) + (TODO-RENAME-12 + obj + arg0 + (* arg1 (the float (+ (-> obj curve num-cverts) -1))) + ) + ) + +;; definition for method 14 of type curve-control +(defmethod + TODO-RENAME-14 + curve-control + ((obj curve-control) (arg0 vector) (arg1 float)) + (when (zero? (logand (-> obj flags) (path-control-flag not-found))) + (let ((s4-0 (new 'stack-no-clear 'vector))) + (curve-evaluate! + arg0 + arg1 + (the-as pointer (-> obj cverts)) + (-> obj curve num-cverts) + (-> obj curve knots) + (-> obj curve num-knots) + ) + (cond + ((< arg1 0.99) + (curve-evaluate! + s4-0 + (+ 0.01 arg1) + (the-as pointer (-> obj cverts)) + (-> obj curve num-cverts) + (-> obj curve knots) + (-> obj curve num-knots) + ) + (vector-! arg0 s4-0 arg0) + ) + (else + (curve-evaluate! + s4-0 + (+ -0.01 arg1) + (the-as pointer (-> obj cverts)) + (-> obj curve num-cverts) + (-> obj curve knots) + (-> obj curve num-knots) + ) + (vector-! arg0 arg0 s4-0) + ) + ) + ) + ) + (vector-normalize! arg0 1.0) + ) + +;; definition for method 12 of type curve-control +(defmethod + TODO-RENAME-12 + curve-control + ((obj curve-control) (arg0 vector) (arg1 float)) + (TODO-RENAME-14 + obj + arg0 + (/ arg1 (the float (+ (-> obj curve num-cverts) -1))) + ) + ) + +;; definition for method 19 of type path-control +;; Used lq/sq +(defmethod TODO-RENAME-19 path-control ((obj path-control)) + (let ((s5-0 (new 'stack-no-clear 'vector)) + (s4-0 (new 'stack-no-clear 'vector)) + (s3-0 (new 'stack-no-clear 'vector)) + (f30-0 4096000000.0) + (f28-0 0.0) + ) + (let ((s2-0 (new 'stack-no-clear 'vector))) + (set! (-> s3-0 quad) (-> (target-pos 0) quad)) + (set! (-> s3-0 y) 0.0) + (eval-path-curve-div! obj s4-0 0.0 'interp) + (set! (-> s4-0 y) 0.0) + (dotimes (s1-1 (+ (-> obj curve num-cverts) -1)) + (set! (-> s5-0 quad) (-> s4-0 quad)) + (eval-path-curve-div! obj s4-0 (the float (+ s1-1 1)) 'interp) + (set! (-> s4-0 y) 0.0) + (let ((f0-5 (vector-segment-distance-point! s3-0 s5-0 s4-0 s2-0))) + (when (< f0-5 f30-0) + (set! f30-0 f0-5) + (set! + f28-0 + (+ + (/ + (vector-vector-xz-distance s2-0 s5-0) + (vector-vector-xz-distance s4-0 s5-0) + ) + (the float s1-1) + ) + ) + ) + ) + ) + ) + f28-0 + ) + ) + +;; definition for method 20 of type path-control +(defmethod TODO-RENAME-20 path-control ((obj path-control)) + (/ (TODO-RENAME-19 obj) (the float (+ (-> obj curve num-cverts) -1))) + ) + +;; definition for method 9 of type curve-control +;; INFO: Return type mismatch int vs none. +(defmethod dummy-9 curve-control ((obj curve-control)) + (cond + ((nonzero? (logand (-> obj flags) (path-control-flag not-found))) + (when + (and + (type-type? (-> obj process type) process-drawable) + *display-entity-errors* + ) + (let ((s5-0 add-debug-text-3d) + (s4-0 #t) + (s3-0 68) + ) + (format + (clear *temp-string*) + "curve data error in ~S" + (-> obj process name) + ) + (s5-0 + s4-0 + (the-as bucket-id s3-0) + *temp-string* + (-> obj process root trans) + (new 'static 'rgba :r #x3) + (the-as vector2h #f) + ) + ) + ) + ) + ((let ((a0-5 obj)) + (and + *display-path-marks* + (nonzero? (logand (-> a0-5 flags) (path-control-flag display))) + ) + ) + (if + (and + (nonzero? (logand (-> obj flags) (path-control-flag draw-line))) + (> (-> obj curve num-cverts) 0) + ) + (add-debug-curve2 + #t + (bucket-id debug-draw1) + (the-as curve (&-> obj cverts)) + (new 'static 'rgba :r #xff :g #x80 :a #x80) + #f + ) + ) + (dotimes (s5-1 (-> obj curve num-cverts)) + (let ((s4-1 (-> obj cverts s5-1))) + (if (nonzero? (logand (-> obj flags) (path-control-flag draw-point))) + (add-debug-x + #t + (bucket-id debug-draw1) + s4-1 + (new 'static 'rgba :r #xff :a #x80) + ) + ) + (when (nonzero? (logand (-> obj flags) (path-control-flag draw-text))) + (let ((s3-1 add-debug-text-3d) + (s2-1 #t) + (s1-0 68) + ) + (format (clear *temp-string*) "~D" s5-1) + (s3-1 + s2-1 + (the-as bucket-id s1-0) + *temp-string* + s4-1 + (new 'static 'rgba :r #x4) + (the-as vector2h #f) + ) + ) + ) + ) + ) + ) + ) + 0 + (none) + ) + + + + From 06b6a027b20cf12cb18b122c1285c38af5763ad7 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 10 Jul 2021 14:20:08 +0000 Subject: [PATCH 06/63] Updated github pages site --- docs/gh-pages-proj/src/config/progress.json | 2 +- docs/index.html | 2 +- docs/js/{about.09fda0d1.js => about.c7b7de46.js} | 4 ++-- docs/js/{about.09fda0d1.js.map => about.c7b7de46.js.map} | 2 +- docs/js/{app.66fed943.js => app.5b8d0e0d.js} | 4 ++-- docs/js/{app.66fed943.js.map => app.5b8d0e0d.js.map} | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) rename docs/js/{about.09fda0d1.js => about.c7b7de46.js} (99%) rename docs/js/{about.09fda0d1.js.map => about.c7b7de46.js.map} (99%) rename docs/js/{app.66fed943.js => app.5b8d0e0d.js} (97%) rename docs/js/{app.66fed943.js.map => app.5b8d0e0d.js.map} (98%) diff --git a/docs/gh-pages-proj/src/config/progress.json b/docs/gh-pages-proj/src/config/progress.json index fd8e27abc1..d58cd63ac3 100644 --- a/docs/gh-pages-proj/src/config/progress.json +++ b/docs/gh-pages-proj/src/config/progress.json @@ -1,7 +1,7 @@ { "jak1": { "locPercentage": { - "value": 102746, + "value": 103209, "label": "Lines of Code" } } diff --git a/docs/index.html b/docs/index.html index c00a3e8501..cf2f882df0 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1 +1 @@ -OpenGOAL Tooling
\ No newline at end of file +OpenGOAL Tooling
\ No newline at end of file diff --git a/docs/js/about.09fda0d1.js b/docs/js/about.c7b7de46.js similarity index 99% rename from docs/js/about.09fda0d1.js rename to docs/js/about.c7b7de46.js index 511b593f61..906ebb2b46 100644 --- a/docs/js/about.09fda0d1.js +++ b/docs/js/about.c7b7de46.js @@ -1,2 +1,2 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":102746,"label":"Lines of Code"}}}')}}]); -//# sourceMappingURL=about.09fda0d1.js.map \ No newline at end of file +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":103209,"label":"Lines of Code"}}}')}}]); +//# sourceMappingURL=about.c7b7de46.js.map \ No newline at end of file diff --git a/docs/js/about.09fda0d1.js.map b/docs/js/about.c7b7de46.js.map similarity index 99% rename from docs/js/about.09fda0d1.js.map rename to docs/js/about.c7b7de46.js.map index 2b103cc266..35a72d6299 100644 --- a/docs/js/about.09fda0d1.js.map +++ b/docs/js/about.c7b7de46.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?b24d","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.09fda0d1.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?b24d","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.c7b7de46.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/js/app.66fed943.js b/docs/js/app.5b8d0e0d.js similarity index 97% rename from docs/js/app.66fed943.js rename to docs/js/app.5b8d0e0d.js index 907ee42a02..8e291f0f41 100644 --- a/docs/js/app.66fed943.js +++ b/docs/js/app.5b8d0e0d.js @@ -1,2 +1,2 @@ -(function(e){function t(t){for(var n,o,i=t[0],c=t[1],l=t[2],s=0,p=[];s\n \n \n \n \n \n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?7eb4","webpack:///src/App.vue","webpack:///./src/App.vue?1160","webpack:///./src/App.vue","webpack:///./src/plugins/vuetify.js","webpack:///./src/router/index.js","webpack:///./src/main.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_h","$createElement","_c","_self","staticRenderFns","components","component","VApp","VMain","Vue","use","Vuetify","theme","dark","VueRouter","routes","path","router","base","process","config","productionTip","vuetify","render","h","App","$mount"],"mappings":"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","file":"js/app.5b8d0e0d.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"c7b7de46\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"about\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"8d0e9591\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/jak-project/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[_c('v-main',[_c('router-view')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file From 1b5c5239b198891e286d8d3c2ef74de36156f885 Mon Sep 17 00:00:00 2001 From: Tyler Wilding Date: Sun, 11 Jul 2021 16:19:03 -0400 Subject: [PATCH 07/63] decomp: mostly finish `aligner` (#686) * decomp: mostly finish `aligner` Issues in aligner/aligner-h that require hand-editing after decompilation * linting --- .vscode/settings.json | 81 ++++-- decompiler/config/all-types.gc | 18 +- .../stack_structures.jsonc | 9 + .../jak1_ntsc_black_label/type_casts.jsonc | 4 + goal_src/engine/anim/aligner-h.gc | 30 +- goal_src/engine/anim/aligner.gc | 265 ++++++++++++++++++ goal_src/engine/anim/joint.gc | 2 + goal_src/engine/collide/collide-shape-h.gc | 1 - goal_src/engine/math/transformq-h.gc | 2 +- .../reference/engine/anim/aligner-h_REF.gc | 30 +- .../reference/engine/anim/aligner_REF.gc | 265 ++++++++++++++++++ .../reference/engine/math/transformq-h_REF.gc | 2 +- test/offline/offline_test_main.cpp | 22 +- 13 files changed, 658 insertions(+), 73 deletions(-) create mode 100644 test/decompiler/reference/engine/anim/aligner_REF.gc diff --git a/.vscode/settings.json b/.vscode/settings.json index f6b26adec6..023166ced3 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -11,20 +11,38 @@ "filterFileRegex": ".*ir2\\.asm", "decorations": [ { - "overviewRulerColor": "transparent", // TODO - fix this bug, it extends beyond the line match + "overviewRulerColor": "transparent", "color": "#41f041", "fontWeight": "bold" } ] }, + "()": { + "filterFileRegex": ".*ir2\\.asm", + "decorations": [ + { + "overviewRulerColor": "transparent", + "color": "#c72855" + } + ] + }, "(INFO:.*)": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ { "overviewRulerColor": "transparent", "color": "yellow", - "fontWeight": "bold", - "filterFileRegex": ".*ir2\\.asm" + "fontWeight": "bold" + } + ] + }, + "(sp, -?\\d+ )": { + "filterFileRegex": ".*ir2\\.asm", + "decorations": [ + { + "overviewRulerColor": "transparent", + "color": "#00ff08", + "fontWeight": "bold" } ] }, @@ -57,6 +75,24 @@ } ] }, + "(lwu t9)": { + "filterFileRegex": ".*ir2\\.asm", + "decorations": [ + { + "overviewRulerColor": "transparent", + "color": "magenta" + } + ] + }, + "(jalr)": { + "filterFileRegex": ".*ir2\\.asm", + "decorations": [ + { + "overviewRulerColor": "transparent", + "color": "magenta" + } + ] + }, "(L\\d+)": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ @@ -75,117 +111,130 @@ } ] }, - "(at)": { + "([\\s\\(])(at)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "red" } ] }, - "(gp)": { + "([\\s\\(])(gp)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "#64c5e3" } ] }, - "(v0)": { + "([\\s\\(])(v0)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "#c6c1e6" } ] }, - "(v1)": { + "([\\s\\(])(v1)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "#dae6be" } ] }, - "(s6)": { + "([\\s\\(])(s6)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "#41f0b0" } ] }, - "(a0)": { + "([\\s\\(])(a0)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "pink" } ] }, - "(a1)": { + "([\\s\\(])(a1)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "#e065bb" } ] }, - "(a2)": { + "([\\s\\(])(a2)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "#6dd1a6" } ] }, - "(a3)": { + "([\\s\\(])(a3)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "#bad192" } ] }, - "(t0)": { + "([\\s\\(])(t0)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "#b56b82" } ] }, - "(t1)": { + "([\\s\\(])(t1)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "#6d32ba" } ] }, - "(t2)": { + "([\\s\\(])(t2)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "#db9267" } ] }, - "(t3)": { + "([\\s\\(])(t3)([\\s\\),:-])": { "filterFileRegex": ".*ir2\\.asm", "decorations": [ + {}, { "overviewRulerColor": "transparent", "color": "#92db67" diff --git a/decompiler/config/all-types.gc b/decompiler/config/all-types.gc index 656f88a0db..cb31abfc1e 100644 --- a/decompiler/config/all-types.gc +++ b/decompiler/config/all-types.gc @@ -2194,7 +2194,7 @@ (global-y-angle-to-point (_type_ vector) float 23) (relative-y-angle-to-point (_type_ vector) float 24) (TODO-VECTOR-MATH-ISSUES-25 (_type_) float 25) - (dummy-26 () none 26) + (TODO-RENAME-26 (_type_ int vector float) trsqv 26) (get-quaternion (_type_) quaternion 27) ) ) @@ -9672,10 +9672,11 @@ ;; - Types +(declare-type process-drawable process) (deftype align-control (basic) ((flags uint32 :offset-assert 4) - (process process :offset-assert 8) - (frame-group basic :offset-assert 12) + (process process-drawable :offset-assert 8) + (frame-group art-joint-anim :offset-assert 12) (frame-num float :offset-assert 16) (matrix matrix 2 :inline :offset-assert 32) (transform transform 2 :inline :offset-assert 160) @@ -9688,11 +9689,11 @@ :flag-assert #xe00000134 (:methods (new (symbol type process) _type_ :behavior process-drawable 0) - (dummy-9 () none 9) - (dummy-10 () none 10) - (dummy-11 () none 11) - (dummy-12 () none 12) - (dummy-13 () none 13) + (TODO-RENAME-9 (_type_) transformq 9) + (TODO-RENAME-10 (_type_ int float float float) trsqv 10) + (TODO-RENAME-11 (_type_ int vector int float float) none 11) ;; 3rd arg is unused + (first-transform (_type_) transform 12) + (snd-transform (_type_) transform 13) ) ) @@ -10823,7 +10824,6 @@ :flag-assert #x38000000b8 (:methods (new (symbol type process collide-list-enum) _type_) - (dummy-26 () none 26) (dummy-28 () none 28) (dummy-29 () none 29) (dummy-30 () none 30) diff --git a/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc b/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc index 82a5c0ad26..f7d04b7e99 100644 --- a/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc @@ -540,5 +540,14 @@ [64, "vector"] ], + "(method 9 align-control)": [ + [16, "matrix"], + [80, "quaternion"] + ], + + "(method 10 align-control)": [ + [16, "vector"] + ], + "placeholder-do-not-add-below!": [] } diff --git a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc index 6a8048bbe5..8655fb818d 100644 --- a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc @@ -1154,5 +1154,9 @@ [6, "a3", "symbol"] ], + "(method 9 align-control)": [ + [[27, 31], "t9", "(function object object object object)"] + ], + "placeholder-do-not-add-below": [] } diff --git a/goal_src/engine/anim/aligner-h.gc b/goal_src/engine/anim/aligner-h.gc index 144b935e06..134f144a53 100644 --- a/goal_src/engine/anim/aligner-h.gc +++ b/goal_src/engine/anim/aligner-h.gc @@ -7,26 +7,26 @@ (deftype align-control (basic) - ((flags uint32 :offset-assert 4) - (process process :offset-assert 8) - (frame-group basic :offset-assert 12) - (frame-num float :offset-assert 16) - (matrix matrix 2 :inline :offset-assert 32) - (transform transform 2 :inline :offset-assert 160) - (delta transformq :inline :offset-assert 256) - (last-speed float :offset-assert 304) ;; meters - (align transformq :inline :offset 160) + ((flags uint32 :offset-assert 4) + (process process-drawable :offset-assert 8) + (frame-group art-joint-anim :offset-assert 12) + (frame-num float :offset-assert 16) + (matrix matrix 2 :inline :offset-assert 32) + (transform transform 2 :inline :offset-assert 160) + (delta transformq :inline :offset-assert 256) + (last-speed float :offset-assert 304);; meters + (align transformq :inline :offset 160) ) :method-count-assert 14 :size-assert #x134 :flag-assert #xe00000134 (:methods (new (symbol type process) _type_ :behavior process-drawable 0) - (dummy-9 () none 9) - (dummy-10 () none 10) - (dummy-11 () none 11) - (dummy-12 () none 12) - (dummy-13 () none 13) + (TODO-RENAME-9 (_type_) transformq 9) + (TODO-RENAME-10 (_type_ int float float float) trsqv 10) + (TODO-RENAME-11 (_type_ int vector int float float) none 11) ;; 3rd arg is unused + (first-transform (_type_) transform 12) + (snd-transform (_type_) transform 13) ) ) @@ -39,7 +39,7 @@ (return (the align-control 0)) ) - (set! (-> obj process) proc) + (set! (-> obj process) (the-as process-drawable proc)) obj ) ) diff --git a/goal_src/engine/anim/aligner.gc b/goal_src/engine/anim/aligner.gc index 17ce77543f..dcf9b4b9da 100644 --- a/goal_src/engine/anim/aligner.gc +++ b/goal_src/engine/anim/aligner.gc @@ -5,3 +5,268 @@ ;; name in dgo: aligner ;; dgos: GAME, ENGINE +;; definition for method 9 of type align-control +;; WARN: Unsupported inline assembly instruction kind - [lw ra, return-from-thread(s7)] +;; WARN: Unsupported inline assembly instruction kind - [jr ra] +;; Used lq/sq +(defmethod TODO-RENAME-9 align-control ((obj align-control)) + (local-vars (a0-9 symbol) (s7-0 none) (ra-0 int)) + (with-pp + (let ((s5-0 (-> obj process skel active-channels))) + (dotimes (s4-0 s5-0) + (let* ((a0-3 (-> obj process skel channel s4-0)) + (v1-5 (-> a0-3 frame-group)) + (a0-4 (-> a0-3 command)) + (a1-0 'stack) + (a2-0 (= a0-4 a1-0)) + ) + (cond + ((or a2-0 (begin + (set! a1-0 'stack1) + (= a0-4 a1-0) + ) + ) + ) + (else + ; TODO - support decompiling the return-from-thread + ; TODO - properly decompile the `go`to + ; (when (!= (-> v1-5 type) art-joint-anim) + ; (let + ; ((t9-0 (the-as (function object object object object) enter-state)) + ; (a0-7 "align joint-anim") + ; ) + ; (set! (-> pp next-state) process-drawable-art-error) + ; (t9-0 a0-7 (the-as none a1-0) a2-0) + ; ) + ; (.lw ra-0 return-from-thread s7-0) + ; (.jr ra-0) + ; (nop!) + ; 0 + ; ) + 0 + ) + ) + ) + ) + ) + (let* ((a0-8 (-> obj process skel root-channel 0)) + (v1-16 (-> a0-8 frame-group)) + (f0-0 (-> a0-8 frame-num)) + ) + (= (-> a0-8 num-func) num-func-loop!) + (cond + ((or (not v1-16) (!= (-> obj frame-group) v1-16)) + (set! a0-9 #t) + ) + (else + (if (= (-> a0-8 num-func) num-func-loop!) + (set! a0-9 (< (* (-> a0-8 param 0) (- f0-0 (-> obj frame-num))) 0.0)) + (set! a0-9 (= f0-0 0.0)) + ) + ) + ) + (if a0-9 + (set! (-> obj flags) (logior (-> obj flags) 1)) + (set! (-> obj flags) (logand -2 (the-as int (-> obj flags)))) + ) + (set! (-> obj frame-group) v1-16) + (set! (-> obj frame-num) f0-0) + ) + (mem-copy! + (the-as pointer (-> obj transform 1)) + (the-as pointer (-> obj transform)) + 48 + ) + (quaternion-copy! + (the-as quaternion (-> obj transform 1 rot)) + (-> obj align quat) + ) + (set! (-> obj transform 1 scale quad) (-> obj align scale quad)) + (let* ((a2-5 (-> obj matrix 1)) + (a3-0 (-> obj matrix)) + (v1-19 (-> a3-0 0 vector 0 quad)) + (a0-18 (-> a3-0 0 vector 1 quad)) + (a1-12 (-> a3-0 0 vector 2 quad)) + (a3-1 (-> a3-0 0 vector 3 quad)) + ) + (set! (-> a2-5 vector 0 quad) v1-19) + (set! (-> a2-5 vector 1 quad) a0-18) + (set! (-> a2-5 vector 2 quad) a1-12) + (set! (-> a2-5 vector 3 quad) a3-1) + ) + (let ((s5-1 (-> obj process node-list data 1))) + (cspace<-matrix-no-push-joint! s5-1 (the-as matrix (-> obj process skel))) + (let* ((v1-23 (-> obj matrix)) + (a3-2 (-> s5-1 bone transform)) + (a0-21 (-> a3-2 vector 0 quad)) + (a1-14 (-> a3-2 vector 1 quad)) + (a2-6 (-> a3-2 vector 2 quad)) + (a3-3 (-> a3-2 vector 3 quad)) + ) + (set! (-> v1-23 0 vector 0 quad) a0-21) + (set! (-> v1-23 0 vector 1 quad) a1-14) + (set! (-> v1-23 0 vector 2 quad) a2-6) + (set! (-> v1-23 0 vector 3 quad) a3-3) + ) + (vector*! + (the-as vector (-> obj transform)) + (-> s5-1 bone position) + (-> obj process root scale) + ) + ) + (vector-! + (the-as vector (-> obj delta)) + (the-as vector (-> obj transform)) + (the-as vector (-> obj transform 1)) + ) + (let ((s5-2 (-> obj align scale))) + (set! (-> s5-2 x) (vector-length (the-as vector (-> obj matrix)))) + (set! (-> s5-2 y) (vector-length (-> obj matrix 0 vector 1))) + (set! (-> s5-2 z) (vector-length (-> obj matrix 0 vector 2))) + (set! (-> s5-2 w) 1.0) + ) + (vector-! + (-> obj delta scale) + (-> obj align scale) + (-> obj transform 1 scale) + ) + (let + ((a2-8 + (matrix-inv-scale! (new 'stack-no-clear 'matrix) (-> obj align scale)) + ) + ) + (quaternion-normalize! + (matrix->quaternion + (-> obj align quat) + (matrix*! a2-8 (the-as matrix (-> obj matrix)) a2-8) + ) + ) + ) + (let + ((a1-24 + (quaternion-inverse! + (new 'stack-no-clear 'quaternion) + (the-as quaternion (-> obj transform 1 rot)) + ) + ) + ) + (quaternion-normalize! + (quaternion*! (-> obj delta quat) a1-24 (-> obj align quat)) + ) + ) + (-> obj delta) + ) + ) + +;; definition for method 12 of type align-control +;; INFO: Return type mismatch (inline-array transform) vs transform. +(defmethod first-transform align-control ((obj align-control)) + (the-as transform (-> obj transform)) + ) + +;; definition for method 13 of type align-control +(defmethod snd-transform align-control ((obj align-control)) + (-> obj transform 1) + ) + +;; definition for method 10 of type align-control +(defmethod + TODO-RENAME-10 + align-control + ((obj align-control) (arg0 int) (arg1 float) (arg2 float) (arg3 float)) + (when (zero? (logand (-> obj flags) 1)) + (let* ((a0-1 (-> obj process)) + (t9-0 (method-of-object a0-1 dummy-16)) + (v1-4 (-> obj delta)) + (t1-0 (new 'stack-no-clear 'vector)) + ) + (set! (-> t1-0 x) arg1) + (set! (-> t1-0 y) arg2) + (set! (-> t1-0 z) arg3) + (set! (-> t1-0 w) 1.0) + (t9-0 a0-1 arg0 (the-as (inline-array vector) v1-4) t1-0) + ) + ) + (-> obj process root) + ) + +;; definition for method 26 of type trsqv +(defmethod + TODO-RENAME-26 + trsqv + ((obj trsqv) (arg0 int) (arg1 vector) (arg2 float)) + (let ((gp-0 (-> obj transv))) + (when (nonzero? (logand arg0 4)) + (set! (-> gp-0 x) (-> arg1 x)) + (set! (-> gp-0 z) (-> arg1 z)) + (let + ((f0-4 + (fmin (* (vector-xz-length arg1) (-> *display* frames-per-second)) arg2) + ) + ) + (vector-xz-normalize! gp-0 f0-4) + ) + ) + ) + obj + ) + +;; definition for method 11 of type align-control +;; INFO: Return type mismatch trsqv vs none. +(defmethod + TODO-RENAME-11 + align-control + ((obj align-control) + (arg0 int) + (arg1 vector) + (arg2 int) + (arg3 float) + (arg4 float) + ) + (when (zero? (logand (-> obj flags) 1)) + (let ((s5-0 (-> obj delta))) + (let ((s3-0 (-> obj process root transv))) + (if (nonzero? (logand arg0 2)) + (set! + (-> s3-0 y) + (* (* (-> s5-0 trans y) arg3) (-> *display* frames-per-second)) + ) + ) + (when (nonzero? (logand arg0 4)) + (set! (-> s3-0 x) (-> arg1 x)) + (set! (-> s3-0 z) (-> arg1 z)) + (let + ((f0-8 + (* + (fmin + (vector-xz-length arg1) + (* (vector-xz-length (-> s5-0 trans)) arg4) + ) + (-> *display* frames-per-second) + ) + ) + (t9-2 vector-xz-normalize!) + ) + (set! (-> obj last-speed) f0-8) + (t9-2 s3-0 f0-8) + ) + ) + ) + (if (nonzero? (logand arg0 16)) + (quaternion-normalize! + (quaternion*! + (-> obj process root quat) + (-> obj process root quat) + (-> s5-0 quat) + ) + ) + ) + ) + ) + (-> obj process root) + (none) + ) + + + + diff --git a/goal_src/engine/anim/joint.gc b/goal_src/engine/anim/joint.gc index 0a65261f47..2173d5e3db 100644 --- a/goal_src/engine/anim/joint.gc +++ b/goal_src/engine/anim/joint.gc @@ -5,3 +5,5 @@ ;; name in dgo: joint ;; dgos: GAME, ENGINE +;; TODO - for aligner +(define-extern cspace<-matrix-no-push-joint! (function cspace matrix matrix)) diff --git a/goal_src/engine/collide/collide-shape-h.gc b/goal_src/engine/collide/collide-shape-h.gc index 40d8f28f2d..db9c7449ca 100644 --- a/goal_src/engine/collide/collide-shape-h.gc +++ b/goal_src/engine/collide/collide-shape-h.gc @@ -303,7 +303,6 @@ :flag-assert #x38000000b8 (:methods (new (symbol type process collide-list-enum) _type_) - (dummy-26 () none 26) (dummy-28 () none 28) (dummy-29 () none 29) (dummy-30 () none 30) diff --git a/goal_src/engine/math/transformq-h.gc b/goal_src/engine/math/transformq-h.gc index ce412ab9a8..4989383ae1 100644 --- a/goal_src/engine/math/transformq-h.gc +++ b/goal_src/engine/math/transformq-h.gc @@ -58,7 +58,7 @@ (global-y-angle-to-point (_type_ vector) float 23) (relative-y-angle-to-point (_type_ vector) float 24) (TODO-VECTOR-MATH-ISSUES-25 (_type_) float 25) - (dummy-26 () none 26) + (TODO-RENAME-26 (_type_ int vector float) trsqv 26) (get-quaternion (_type_) quaternion 27) ) ) diff --git a/test/decompiler/reference/engine/anim/aligner-h_REF.gc b/test/decompiler/reference/engine/anim/aligner-h_REF.gc index a15693a4db..a671ec63b3 100644 --- a/test/decompiler/reference/engine/anim/aligner-h_REF.gc +++ b/test/decompiler/reference/engine/anim/aligner-h_REF.gc @@ -3,26 +3,26 @@ ;; definition of type align-control (deftype align-control (basic) - ((flags uint32 :offset-assert 4) - (process process :offset-assert 8) - (frame-group basic :offset-assert 12) - (frame-num float :offset-assert 16) - (matrix matrix 2 :inline :offset-assert 32) - (transform transform 2 :inline :offset-assert 160) - (delta transformq :inline :offset-assert 256) - (last-speed float :offset-assert 304) - (align transformq :inline :offset 160) + ((flags uint32 :offset-assert 4) + (process process-drawable :offset-assert 8) + (frame-group art-joint-anim :offset-assert 12) + (frame-num float :offset-assert 16) + (matrix matrix 2 :inline :offset-assert 32) + (transform transform 2 :inline :offset-assert 160) + (delta transformq :inline :offset-assert 256) + (last-speed float :offset-assert 304) + (align transformq :inline :offset 160) ) :method-count-assert 14 :size-assert #x134 :flag-assert #xe00000134 (:methods (new (symbol type process) _type_ :behavior process-drawable 0) - (dummy-9 () none 9) - (dummy-10 () none 10) - (dummy-11 () none 11) - (dummy-12 () none 12) - (dummy-13 () none 13) + (TODO-RENAME-9 (_type_) transformq 9) + (TODO-RENAME-10 (_type_ int float float float) trsqv 10) + (TODO-RENAME-11 (_type_ int vector int float float) none 11) + (first-transform (_type_) transform 12) + (snd-transform (_type_) transform 13) ) ) @@ -61,7 +61,7 @@ ) (return (the-as align-control 0)) ) - (set! (-> obj process) arg0) + (set! (-> obj process) (the-as process-drawable arg0)) obj ) ) diff --git a/test/decompiler/reference/engine/anim/aligner_REF.gc b/test/decompiler/reference/engine/anim/aligner_REF.gc new file mode 100644 index 0000000000..71adeb9ac7 --- /dev/null +++ b/test/decompiler/reference/engine/anim/aligner_REF.gc @@ -0,0 +1,265 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for method 9 of type align-control +;; WARN: Unsupported inline assembly instruction kind - [lw ra, return-from-thread(s7)] +;; WARN: Unsupported inline assembly instruction kind - [jr ra] +;; Used lq/sq +(defmethod TODO-RENAME-9 align-control ((obj align-control)) + (local-vars (a0-9 symbol) (s7-0 none) (ra-0 int)) + (with-pp + (let ((s5-0 (-> obj process skel active-channels))) + (dotimes (s4-0 s5-0) + (let* ((a0-3 (-> obj process skel channel s4-0)) + (v1-5 (-> a0-3 frame-group)) + (a0-4 (-> a0-3 command)) + (a1-0 'stack) + (a2-0 (= a0-4 a1-0)) + ) + (cond + ((or a2-0 (begin + (set! a1-0 'stack1) + (= a0-4 a1-0) + ) + ) + ) + (else + (when (!= (-> v1-5 type) art-joint-anim) + (let + ((t9-0 (the-as (function object object object object) enter-state)) + (a0-7 "align joint-anim") + ) + (set! (-> pp next-state) process-drawable-art-error) + (t9-0 a0-7 (the-as none a1-0) a2-0) + ) + (.lw ra-0 return-from-thread s7-0) + (.jr ra-0) + (nop!) + 0 + ) + ) + ) + ) + ) + ) + (let* ((a0-8 (-> obj process skel root-channel 0)) + (v1-16 (-> a0-8 frame-group)) + (f0-0 (-> a0-8 frame-num)) + ) + (= (-> a0-8 num-func) num-func-loop!) + (cond + ((or (not v1-16) (!= (-> obj frame-group) v1-16)) + (set! a0-9 #t) + ) + (else + (if (= (-> a0-8 num-func) num-func-loop!) + (set! a0-9 (< (* (-> a0-8 param 0) (- f0-0 (-> obj frame-num))) 0.0)) + (set! a0-9 (= f0-0 0.0)) + ) + ) + ) + (if a0-9 + (set! (-> obj flags) (logior (-> obj flags) 1)) + (set! (-> obj flags) (logand -2 (the-as int (-> obj flags)))) + ) + (set! (-> obj frame-group) v1-16) + (set! (-> obj frame-num) f0-0) + ) + (mem-copy! + (the-as pointer (-> obj transform 1)) + (the-as pointer (-> obj transform)) + 48 + ) + (quaternion-copy! + (the-as quaternion (-> obj transform 1 rot)) + (-> obj align quat) + ) + (set! (-> obj transform 1 scale quad) (-> obj align scale quad)) + (let* ((a2-5 (-> obj matrix 1)) + (a3-0 (-> obj matrix)) + (v1-19 (-> a3-0 0 vector 0 quad)) + (a0-18 (-> a3-0 0 vector 1 quad)) + (a1-12 (-> a3-0 0 vector 2 quad)) + (a3-1 (-> a3-0 0 vector 3 quad)) + ) + (set! (-> a2-5 vector 0 quad) v1-19) + (set! (-> a2-5 vector 1 quad) a0-18) + (set! (-> a2-5 vector 2 quad) a1-12) + (set! (-> a2-5 vector 3 quad) a3-1) + ) + (let ((s5-1 (-> obj process node-list data 1))) + (cspace<-matrix-no-push-joint! s5-1 (the-as matrix (-> obj process skel))) + (let* ((v1-23 (-> obj matrix)) + (a3-2 (-> s5-1 bone transform)) + (a0-21 (-> a3-2 vector 0 quad)) + (a1-14 (-> a3-2 vector 1 quad)) + (a2-6 (-> a3-2 vector 2 quad)) + (a3-3 (-> a3-2 vector 3 quad)) + ) + (set! (-> v1-23 0 vector 0 quad) a0-21) + (set! (-> v1-23 0 vector 1 quad) a1-14) + (set! (-> v1-23 0 vector 2 quad) a2-6) + (set! (-> v1-23 0 vector 3 quad) a3-3) + ) + (vector*! + (the-as vector (-> obj transform)) + (-> s5-1 bone position) + (-> obj process root scale) + ) + ) + (vector-! + (the-as vector (-> obj delta)) + (the-as vector (-> obj transform)) + (the-as vector (-> obj transform 1)) + ) + (let ((s5-2 (-> obj align scale))) + (set! (-> s5-2 x) (vector-length (the-as vector (-> obj matrix)))) + (set! (-> s5-2 y) (vector-length (-> obj matrix 0 vector 1))) + (set! (-> s5-2 z) (vector-length (-> obj matrix 0 vector 2))) + (set! (-> s5-2 w) 1.0) + ) + (vector-! + (-> obj delta scale) + (-> obj align scale) + (-> obj transform 1 scale) + ) + (let + ((a2-8 + (matrix-inv-scale! (new 'stack-no-clear 'matrix) (-> obj align scale)) + ) + ) + (quaternion-normalize! + (matrix->quaternion + (-> obj align quat) + (matrix*! a2-8 (the-as matrix (-> obj matrix)) a2-8) + ) + ) + ) + (let + ((a1-24 + (quaternion-inverse! + (new 'stack-no-clear 'quaternion) + (the-as quaternion (-> obj transform 1 rot)) + ) + ) + ) + (quaternion-normalize! + (quaternion*! (-> obj delta quat) a1-24 (-> obj align quat)) + ) + ) + (-> obj delta) + ) + ) + +;; definition for method 12 of type align-control +;; INFO: Return type mismatch (inline-array transform) vs transform. +(defmethod first-transform align-control ((obj align-control)) + (the-as transform (-> obj transform)) + ) + +;; definition for method 13 of type align-control +(defmethod snd-transform align-control ((obj align-control)) + (-> obj transform 1) + ) + +;; definition for method 10 of type align-control +(defmethod + TODO-RENAME-10 + align-control + ((obj align-control) (arg0 int) (arg1 float) (arg2 float) (arg3 float)) + (when (zero? (logand (-> obj flags) 1)) + (let* ((a0-1 (-> obj process)) + (t9-0 (method-of-object a0-1 dummy-16)) + (v1-4 (-> obj delta)) + (t1-0 (new 'stack-no-clear 'vector)) + ) + (set! (-> t1-0 x) arg1) + (set! (-> t1-0 y) arg2) + (set! (-> t1-0 z) arg3) + (set! (-> t1-0 w) 1.0) + (t9-0 a0-1 arg0 (the-as (inline-array vector) v1-4) t1-0) + ) + ) + (-> obj process root) + ) + +;; definition for method 26 of type trsqv +(defmethod + TODO-RENAME-26 + trsqv + ((obj trsqv) (arg0 int) (arg1 vector) (arg2 float)) + (let ((gp-0 (-> obj transv))) + (when (nonzero? (logand arg0 4)) + (set! (-> gp-0 x) (-> arg1 x)) + (set! (-> gp-0 z) (-> arg1 z)) + (let + ((f0-4 + (fmin (* (vector-xz-length arg1) (-> *display* frames-per-second)) arg2) + ) + ) + (vector-xz-normalize! gp-0 f0-4) + ) + ) + ) + obj + ) + +;; definition for method 11 of type align-control +;; INFO: Return type mismatch trsqv vs none. +(defmethod + TODO-RENAME-11 + align-control + ((obj align-control) + (arg0 int) + (arg1 vector) + (arg2 int) + (arg3 float) + (arg4 float) + ) + (when (zero? (logand (-> obj flags) 1)) + (let ((s5-0 (-> obj delta))) + (let ((s3-0 (-> obj process root transv))) + (if (nonzero? (logand arg0 2)) + (set! + (-> s3-0 y) + (* (* (-> s5-0 trans y) arg3) (-> *display* frames-per-second)) + ) + ) + (when (nonzero? (logand arg0 4)) + (set! (-> s3-0 x) (-> arg1 x)) + (set! (-> s3-0 z) (-> arg1 z)) + (let + ((f0-8 + (* + (fmin + (vector-xz-length arg1) + (* (vector-xz-length (-> s5-0 trans)) arg4) + ) + (-> *display* frames-per-second) + ) + ) + (t9-2 vector-xz-normalize!) + ) + (set! (-> obj last-speed) f0-8) + (t9-2 s3-0 f0-8) + ) + ) + ) + (if (nonzero? (logand arg0 16)) + (quaternion-normalize! + (quaternion*! + (-> obj process root quat) + (-> obj process root quat) + (-> s5-0 quat) + ) + ) + ) + ) + ) + (-> obj process root) + (none) + ) + + + + diff --git a/test/decompiler/reference/engine/math/transformq-h_REF.gc b/test/decompiler/reference/engine/math/transformq-h_REF.gc index 67527fd69f..ccbc5baf85 100644 --- a/test/decompiler/reference/engine/math/transformq-h_REF.gc +++ b/test/decompiler/reference/engine/math/transformq-h_REF.gc @@ -71,7 +71,7 @@ (global-y-angle-to-point (_type_ vector) float 23) (relative-y-angle-to-point (_type_ vector) float 24) (TODO-VECTOR-MATH-ISSUES-25 (_type_) float 25) - (dummy-26 () none 26) + (TODO-RENAME-26 (_type_ int vector float) trsqv 26) (get-quaternion (_type_) quaternion 27) ) ) diff --git a/test/offline/offline_test_main.cpp b/test/offline/offline_test_main.cpp index dfea7700f0..0908d36ef9 100644 --- a/test/offline/offline_test_main.cpp +++ b/test/offline/offline_test_main.cpp @@ -88,11 +88,7 @@ const std::unordered_set g_functions_expected_to_reject = { const std::unordered_set g_functions_to_skip_compiling = { /// GCOMMON // these functions are not implemented by the compiler in OpenGOAL, but are in GOAL. - "abs", - "ash", - "min", - "max", - "lognor", + "abs", "ash", "min", "max", "lognor", // weird PS2 specific debug registers: "breakpoint-range-set!", // inline assembly @@ -106,8 +102,7 @@ const std::unordered_set g_functions_to_skip_compiling = { "enter-state", // stack pointer asm /// MATH - "rand-vu-init", - "rand-vu", + "rand-vu-init", "rand-vu", "rand-vu-nostep", // random hardware // trig @@ -127,19 +122,14 @@ const std::unordered_set g_functions_to_skip_compiling = { "disasm-dma-list", // missing a single cast :( // math camera - "transform-point-vector!", - "transform-point-qword!", - "transform-point-vector-scale!", + "transform-point-vector!", "transform-point-qword!", "transform-point-vector-scale!", // display-h "put-draw-env", // vector // bad decisions on float vs int128 - "vector-degf", - "vector-degmod", - "vector-deg-diff", - "vector-degi", + "vector-degf", "vector-degmod", "vector-deg-diff", "vector-degi", // geometry "calculate-basis-functions-vector!", // asm requiring manual rewrite @@ -162,7 +152,9 @@ const std::unordered_set g_functions_to_skip_compiling = { "ripple-execute", "get-task-status", -}; + + // aligner - return-from-thread, currently not supported + "(method 9 align-control)"}; // default location for the data. It can be changed with a command line argument. std::string g_iso_data_path = ""; From d262dac40ddcfb35325f860a8084a091cf23ae85 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 11 Jul 2021 20:20:20 +0000 Subject: [PATCH 08/63] Updated github pages site --- docs/gh-pages-proj/src/config/progress.json | 2 +- docs/index.html | 2 +- docs/js/{about.c7b7de46.js => about.acc7b95d.js} | 4 ++-- docs/js/{about.c7b7de46.js.map => about.acc7b95d.js.map} | 2 +- docs/js/{app.5b8d0e0d.js => app.87be5c69.js} | 4 ++-- docs/js/{app.5b8d0e0d.js.map => app.87be5c69.js.map} | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) rename docs/js/{about.c7b7de46.js => about.acc7b95d.js} (99%) rename docs/js/{about.c7b7de46.js.map => about.acc7b95d.js.map} (99%) rename docs/js/{app.5b8d0e0d.js => app.87be5c69.js} (97%) rename docs/js/{app.5b8d0e0d.js.map => app.87be5c69.js.map} (98%) diff --git a/docs/gh-pages-proj/src/config/progress.json b/docs/gh-pages-proj/src/config/progress.json index d58cd63ac3..4983e71e39 100644 --- a/docs/gh-pages-proj/src/config/progress.json +++ b/docs/gh-pages-proj/src/config/progress.json @@ -1,7 +1,7 @@ { "jak1": { "locPercentage": { - "value": 103209, + "value": 103475, "label": "Lines of Code" } } diff --git a/docs/index.html b/docs/index.html index cf2f882df0..07487733f9 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1 +1 @@ -OpenGOAL Tooling
\ No newline at end of file +OpenGOAL Tooling
\ No newline at end of file diff --git a/docs/js/about.c7b7de46.js b/docs/js/about.acc7b95d.js similarity index 99% rename from docs/js/about.c7b7de46.js rename to docs/js/about.acc7b95d.js index 906ebb2b46..b5ecd55978 100644 --- a/docs/js/about.c7b7de46.js +++ b/docs/js/about.acc7b95d.js @@ -1,2 +1,2 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":103209,"label":"Lines of Code"}}}')}}]); -//# sourceMappingURL=about.c7b7de46.js.map \ No newline at end of file +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":103475,"label":"Lines of Code"}}}')}}]); +//# sourceMappingURL=about.acc7b95d.js.map \ No newline at end of file diff --git a/docs/js/about.c7b7de46.js.map b/docs/js/about.acc7b95d.js.map similarity index 99% rename from docs/js/about.c7b7de46.js.map rename to docs/js/about.acc7b95d.js.map index 35a72d6299..637a631726 100644 --- a/docs/js/about.c7b7de46.js.map +++ b/docs/js/about.acc7b95d.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?b24d","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.c7b7de46.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?b24d","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"kIACA,IAAIA,EAAI,EAAQ,QACZC,EAAmB,EAAQ,QAC3BC,EAAW,EAAQ,QACnBC,EAAW,EAAQ,QACnBC,EAAY,EAAQ,QACpBC,EAAqB,EAAQ,QAIjCL,EAAE,CAAEM,OAAQ,QAASC,OAAO,GAAQ,CAClCC,KAAM,WACJ,IAAIC,EAAWC,UAAUC,OAASD,UAAU,QAAKE,EAC7CC,EAAIX,EAASY,MACbC,EAAYZ,EAASU,EAAEF,QACvBK,EAAIX,EAAmBQ,EAAG,GAE9B,OADAG,EAAEL,OAASV,EAAiBe,EAAGH,EAAGA,EAAGE,EAAW,OAAgBH,IAAbH,EAAyB,EAAIL,EAAUK,IACnFO,M,6DCjBX,W,+JCCA,IAAIC,EAAa,EAAQ,QACrBC,EAAmB,EAAQ,QAI/BC,EAAOC,QAAUH,EAAW,OAAO,SAAUI,GAC3C,OAAO,WAAiB,OAAOA,EAAKP,KAAMJ,UAAUC,OAASD,UAAU,QAAKE,MAC3EM,I,2DCPH,IAAII,EAAiB,EAAQ,QAAuCC,EAChEC,EAAS,EAAQ,QACjBC,EAAc,EAAQ,QACtBC,EAAO,EAAQ,QACfC,EAAa,EAAQ,QACrBC,EAAU,EAAQ,QAClBC,EAAiB,EAAQ,QACzBC,EAAa,EAAQ,QACrBC,EAAc,EAAQ,QACtBC,EAAU,EAAQ,QAAkCA,QACpDC,EAAsB,EAAQ,QAE9BC,EAAmBD,EAAoBE,IACvCC,EAAyBH,EAAoBI,UAEjDlB,EAAOC,QAAU,CACfkB,eAAgB,SAAUC,EAASC,EAAkBC,EAAQC,GAC3D,IAAIC,EAAIJ,GAAQ,SAAUK,EAAMC,GAC9BlB,EAAWiB,EAAMD,EAAGH,GACpBN,EAAiBU,EAAM,CACrBE,KAAMN,EACNO,MAAOvB,EAAO,MACdwB,WAAOpC,EACPqC,UAAMrC,EACNsC,KAAM,IAEHnB,IAAaa,EAAKM,KAAO,QACdtC,GAAZiC,GAAuBjB,EAAQiB,EAAUD,EAAKF,GAAQ,CAAEE,KAAMA,EAAMO,WAAYV,OAGlFW,EAAmBhB,EAAuBI,GAE1Ca,EAAS,SAAUT,EAAMU,EAAKC,GAChC,IAEIC,EAAUT,EAFVU,EAAQL,EAAiBR,GACzBc,EAAQC,EAASf,EAAMU,GAqBzB,OAlBEI,EACFA,EAAMH,MAAQA,GAGdE,EAAMR,KAAOS,EAAQ,CACnBX,MAAOA,EAAQf,EAAQsB,GAAK,GAC5BA,IAAKA,EACLC,MAAOA,EACPC,SAAUA,EAAWC,EAAMR,KAC3BW,UAAMhD,EACNiD,SAAS,GAENJ,EAAMT,QAAOS,EAAMT,MAAQU,GAC5BF,IAAUA,EAASI,KAAOF,GAC1B3B,EAAa0B,EAAMP,OAClBN,EAAKM,OAEI,MAAVH,IAAeU,EAAMV,MAAMA,GAASW,IACjCd,GAGPe,EAAW,SAAUf,EAAMU,GAC7B,IAGII,EAHAD,EAAQL,EAAiBR,GAEzBG,EAAQf,EAAQsB,GAEpB,GAAc,MAAVP,EAAe,OAAOU,EAAMV,MAAMA,GAEtC,IAAKW,EAAQD,EAAMT,MAAOU,EAAOA,EAAQA,EAAME,KAC7C,GAAIF,EAAMJ,KAAOA,EAAK,OAAOI,GAwFjC,OApFAjC,EAAYkB,EAAEmB,UAAW,CAIvBC,MAAO,WACL,IAAInB,EAAO9B,KACP2C,EAAQL,EAAiBR,GACzBoB,EAAOP,EAAMV,MACbW,EAAQD,EAAMT,MAClB,MAAOU,EACLA,EAAMG,SAAU,EACZH,EAAMF,WAAUE,EAAMF,SAAWE,EAAMF,SAASI,UAAOhD,UACpDoD,EAAKN,EAAMX,OAClBW,EAAQA,EAAME,KAEhBH,EAAMT,MAAQS,EAAMR,UAAOrC,EACvBmB,EAAa0B,EAAMP,KAAO,EACzBN,EAAKM,KAAO,GAKnB,OAAU,SAAUI,GAClB,IAAIV,EAAO9B,KACP2C,EAAQL,EAAiBR,GACzBc,EAAQC,EAASf,EAAMU,GAC3B,GAAII,EAAO,CACT,IAAIE,EAAOF,EAAME,KACbK,EAAOP,EAAMF,gBACVC,EAAMV,MAAMW,EAAMX,OACzBW,EAAMG,SAAU,EACZI,IAAMA,EAAKL,KAAOA,GAClBA,IAAMA,EAAKJ,SAAWS,GACtBR,EAAMT,OAASU,IAAOD,EAAMT,MAAQY,GACpCH,EAAMR,MAAQS,IAAOD,EAAMR,KAAOgB,GAClClC,EAAa0B,EAAMP,OAClBN,EAAKM,OACV,QAASQ,GAKbQ,QAAS,SAAiBC,GACxB,IAEIT,EAFAD,EAAQL,EAAiBtC,MACzBsD,EAAgB1C,EAAKyC,EAAYzD,UAAUC,OAAS,EAAID,UAAU,QAAKE,EAAW,GAEtF,MAAO8C,EAAQA,EAAQA,EAAME,KAAOH,EAAMT,MAAO,CAC/CoB,EAAcV,EAAMH,MAAOG,EAAMJ,IAAKxC,MAEtC,MAAO4C,GAASA,EAAMG,QAASH,EAAQA,EAAMF,WAMjDa,IAAK,SAAaf,GAChB,QAASK,EAAS7C,KAAMwC,MAI5B7B,EAAYkB,EAAEmB,UAAWrB,EAAS,CAGhC6B,IAAK,SAAahB,GAChB,IAAII,EAAQC,EAAS7C,KAAMwC,GAC3B,OAAOI,GAASA,EAAMH,OAIxBpB,IAAK,SAAamB,EAAKC,GACrB,OAAOF,EAAOvC,KAAc,IAARwC,EAAY,EAAIA,EAAKC,KAEzC,CAGFgB,IAAK,SAAahB,GAChB,OAAOF,EAAOvC,KAAMyC,EAAkB,IAAVA,EAAc,EAAIA,EAAOA,MAGrDxB,GAAaT,EAAeqB,EAAEmB,UAAW,OAAQ,CACnDQ,IAAK,WACH,OAAOlB,EAAiBtC,MAAMoC,QAG3BP,GAET6B,UAAW,SAAU7B,EAAGH,EAAkBC,GACxC,IAAIgC,EAAgBjC,EAAmB,YACnCkC,EAA6BtC,EAAuBI,GACpDmC,EAA2BvC,EAAuBqC,GAUtD5C,EAAec,EAAGH,GAAkB,SAAUoC,EAAUC,GACtD3C,EAAiBpB,KAAM,CACrBgC,KAAM2B,EACNnE,OAAQsE,EACRnB,MAAOiB,EAA2BE,GAClCC,KAAMA,EACN5B,UAAMrC,OAEP,WACD,IAAI6C,EAAQkB,EAAyB7D,MACjC+D,EAAOpB,EAAMoB,KACbnB,EAAQD,EAAMR,KAElB,MAAOS,GAASA,EAAMG,QAASH,EAAQA,EAAMF,SAE7C,OAAKC,EAAMnD,SAAYmD,EAAMR,KAAOS,EAAQA,EAAQA,EAAME,KAAOH,EAAMA,MAAMT,OAMjE,QAAR6B,EAAuB,CAAEtB,MAAOG,EAAMJ,IAAKwB,MAAM,GACzC,UAARD,EAAyB,CAAEtB,MAAOG,EAAMH,MAAOuB,MAAM,GAClD,CAAEvB,MAAO,CAACG,EAAMJ,IAAKI,EAAMH,OAAQuB,MAAM,IAN9CrB,EAAMnD,YAASM,EACR,CAAE2C,WAAO3C,EAAWkE,MAAM,MAMlCrC,EAAS,UAAY,UAAWA,GAAQ,GAK3CX,EAAWU,M,oCCtMf,IAAIxC,EAAI,EAAQ,QACZ+E,EAAS,EAAQ,QACjBC,EAAW,EAAQ,QACnBC,EAAW,EAAQ,QACnBC,EAAyB,EAAQ,QACjCtD,EAAU,EAAQ,QAClBD,EAAa,EAAQ,QACrBwD,EAAW,EAAQ,QACnBC,EAAQ,EAAQ,QAChBC,EAA8B,EAAQ,QACtCC,EAAiB,EAAQ,QACzBC,EAAoB,EAAQ,QAEhCpE,EAAOC,QAAU,SAAUoB,EAAkBD,EAASiD,GACpD,IAAI/C,GAA8C,IAArCD,EAAiBiD,QAAQ,OAClCC,GAAgD,IAAtClD,EAAiBiD,QAAQ,QACnC/C,EAAQD,EAAS,MAAQ,MACzBkD,EAAoBZ,EAAOvC,GAC3BoD,EAAkBD,GAAqBA,EAAkB7B,UACzD+B,EAAcF,EACdG,EAAW,GAEXC,EAAY,SAAUC,GACxB,IAAIC,EAAeL,EAAgBI,GACnCf,EAASW,EAAiBI,EACjB,OAAPA,EAAe,SAAazC,GAE1B,OADA0C,EAAaC,KAAKpF,KAAgB,IAAVyC,EAAc,EAAIA,GACnCzC,MACE,UAAPkF,EAAkB,SAAU1C,GAC9B,QAAOoC,IAAYP,EAAS7B,KAAe2C,EAAaC,KAAKpF,KAAc,IAARwC,EAAY,EAAIA,IAC1E,OAAP0C,EAAe,SAAa1C,GAC9B,OAAOoC,IAAYP,EAAS7B,QAAO1C,EAAYqF,EAAaC,KAAKpF,KAAc,IAARwC,EAAY,EAAIA,IAC9E,OAAP0C,EAAe,SAAa1C,GAC9B,QAAOoC,IAAYP,EAAS7B,KAAe2C,EAAaC,KAAKpF,KAAc,IAARwC,EAAY,EAAIA,IACjF,SAAaA,EAAKC,GAEpB,OADA0C,EAAaC,KAAKpF,KAAc,IAARwC,EAAY,EAAIA,EAAKC,GACtCzC,QAKTqF,EAAUnB,EACZxC,EAC4B,mBAArBmD,KAAqCD,GAAWE,EAAgB1B,UAAYkB,GAAM,YACvF,IAAIO,GAAoBS,UAAUxC,YAItC,GAAIuC,EAEFN,EAAcL,EAAOlD,eAAeC,EAASC,EAAkBC,EAAQC,GACvEwC,EAAuBmB,UAAW,OAC7B,GAAIrB,EAASxC,GAAkB,GAAO,CAC3C,IAAI8D,EAAW,IAAIT,EAEfU,EAAiBD,EAAS5D,GAAOgD,EAAU,IAAM,EAAG,IAAMY,EAE1DE,EAAuBpB,GAAM,WAAckB,EAASjC,IAAI,MAGxDoC,EAAmBpB,GAA4B,SAAUxC,GAAY,IAAI8C,EAAkB9C,MAE3F6D,GAAchB,GAAWN,GAAM,WAEjC,IAAIuB,EAAY,IAAIhB,EAChB5C,EAAQ,EACZ,MAAOA,IAAS4D,EAAUjE,GAAOK,EAAOA,GACxC,OAAQ4D,EAAUtC,KAAK,MAGpBoC,IACHZ,EAActD,GAAQ,SAAUqE,EAAO/D,GACrClB,EAAWiF,EAAOf,EAAarD,GAC/B,IAAII,EAAO2C,EAAkB,IAAII,EAAqBiB,EAAOf,GAE7D,YADgBjF,GAAZiC,GAAuBjB,EAAQiB,EAAUD,EAAKF,GAAQ,CAAEE,KAAMA,EAAMO,WAAYV,IAC7EG,KAETiD,EAAY/B,UAAY8B,EACxBA,EAAgBiB,YAAchB,IAG5BW,GAAwBE,KAC1BX,EAAU,UACVA,EAAU,OACVtD,GAAUsD,EAAU,SAGlBW,GAAcH,IAAgBR,EAAUrD,GAGxCgD,GAAWE,EAAgB7B,cAAc6B,EAAgB7B,MAU/D,OAPA+B,EAAStD,GAAoBqD,EAC7B7F,EAAE,CAAE+E,QAAQ,EAAM+B,OAAQjB,GAAeF,GAAqBG,GAE9DR,EAAeO,EAAarD,GAEvBkD,GAASF,EAAOhB,UAAUqB,EAAarD,EAAkBC,GAEvDoD,I,gGCrGT1E,EAAOC,QAAU,IAA0B,sC,oCCC3C,IAAIpB,EAAI,EAAQ,QACZ+G,EAA2B,EAAQ,QAAmDxF,EACtFpB,EAAW,EAAQ,QACnB6G,EAAa,EAAQ,QACrBC,EAAyB,EAAQ,QACjCC,EAAuB,EAAQ,QAC/BC,EAAU,EAAQ,QAGlBC,EAAY,GAAGC,SACfC,EAAMC,KAAKD,IAEXE,EAA0BN,EAAqB,YAE/CO,GAAoBN,IAAYK,KAA6B,WAC/D,IAAIE,EAAaX,EAAyBY,OAAO7D,UAAW,YAC5D,OAAO4D,IAAeA,EAAWE,SAF8B,GAOjE5H,EAAE,CAAEM,OAAQ,SAAUC,OAAO,EAAMuG,QAASW,IAAqBD,GAA2B,CAC1FH,SAAU,SAAkBQ,GAC1B,IAAIjF,EAAO+E,OAAOV,EAAuBnG,OACzCkG,EAAWa,GACX,IAAIC,EAAcpH,UAAUC,OAAS,EAAID,UAAU,QAAKE,EACpDmH,EAAM5H,EAASyC,EAAKjC,QACpBqH,OAAsBpH,IAAhBkH,EAA4BC,EAAMT,EAAInH,EAAS2H,GAAcC,GACnEE,EAASN,OAAOE,GACpB,OAAOT,EACHA,EAAUlB,KAAKtD,EAAMqF,EAAQD,GAC7BpF,EAAKsF,MAAMF,EAAMC,EAAOtH,OAAQqH,KAASC,M,yECzBjD,IAAIE,EAAW,SAAU/G,GACvB,aAEA,IAEIR,EAFAwH,EAAKC,OAAOvE,UACZwE,EAASF,EAAGG,eAEZC,EAA4B,oBAAXC,OAAwBA,OAAS,GAClDC,EAAiBF,EAAQG,UAAY,aACrCC,EAAsBJ,EAAQK,eAAiB,kBAC/CC,EAAoBN,EAAQO,aAAe,gBAE/C,SAAS1F,EAAO2F,EAAK1F,EAAKC,GAOxB,OANA8E,OAAO/G,eAAe0H,EAAK1F,EAAK,CAC9BC,MAAOA,EACP0F,YAAY,EACZC,cAAc,EACdtB,UAAU,IAELoB,EAAI1F,GAEb,IAEED,EAAO,GAAI,IACX,MAAO8F,GACP9F,EAAS,SAAS2F,EAAK1F,EAAKC,GAC1B,OAAOyF,EAAI1F,GAAOC,GAItB,SAAS6F,EAAKC,EAASC,EAASC,EAAMC,GAEpC,IAAIC,EAAiBH,GAAWA,EAAQxF,qBAAqB4F,EAAYJ,EAAUI,EAC/EC,EAAYtB,OAAO7G,OAAOiI,EAAe3F,WACzC8F,EAAU,IAAIC,EAAQL,GAAe,IAMzC,OAFAG,EAAUG,QAAUC,EAAiBV,EAASE,EAAMK,GAE7CD,EAcT,SAASK,EAASC,EAAIjB,EAAKkB,GACzB,IACE,MAAO,CAAEpH,KAAM,SAAUoH,IAAKD,EAAG/D,KAAK8C,EAAKkB,IAC3C,MAAOf,GACP,MAAO,CAAErG,KAAM,QAASoH,IAAKf,IAhBjC/H,EAAQgI,KAAOA,EAoBf,IAAIe,EAAyB,iBACzBC,EAAyB,iBACzBC,EAAoB,YACpBC,EAAoB,YAIpBC,EAAmB,GAMvB,SAASb,KACT,SAASc,KACT,SAASC,KAIT,IAAIC,EAAoB,GACxBA,EAAkBhC,GAAkB,WAClC,OAAO5H,MAGT,IAAI6J,EAAWtC,OAAOuC,eAClBC,EAA0BF,GAAYA,EAASA,EAASG,EAAO,MAC/DD,GACAA,IAA4BzC,GAC5BE,EAAOpC,KAAK2E,EAAyBnC,KAGvCgC,EAAoBG,GAGtB,IAAIE,EAAKN,EAA2B3G,UAClC4F,EAAU5F,UAAYuE,OAAO7G,OAAOkJ,GAWtC,SAASM,EAAsBlH,GAC7B,CAAC,OAAQ,QAAS,UAAUI,SAAQ,SAAS+G,GAC3C5H,EAAOS,EAAWmH,GAAQ,SAASf,GACjC,OAAOpJ,KAAKgJ,QAAQmB,EAAQf,SAkClC,SAASgB,EAAcvB,EAAWwB,GAChC,SAASC,EAAOH,EAAQf,EAAKmB,EAASC,GACpC,IAAIC,EAASvB,EAASL,EAAUsB,GAAStB,EAAWO,GACpD,GAAoB,UAAhBqB,EAAOzI,KAEJ,CACL,IAAI0I,EAASD,EAAOrB,IAChB3G,EAAQiI,EAAOjI,MACnB,OAAIA,GACiB,kBAAVA,GACP+E,EAAOpC,KAAK3C,EAAO,WACd4H,EAAYE,QAAQ9H,EAAMkI,SAASC,MAAK,SAASnI,GACtD6H,EAAO,OAAQ7H,EAAO8H,EAASC,MAC9B,SAASnC,GACViC,EAAO,QAASjC,EAAKkC,EAASC,MAI3BH,EAAYE,QAAQ9H,GAAOmI,MAAK,SAASC,GAI9CH,EAAOjI,MAAQoI,EACfN,EAAQG,MACP,SAASI,GAGV,OAAOR,EAAO,QAASQ,EAAOP,EAASC,MAvBzCA,EAAOC,EAAOrB,KA4BlB,IAAI2B,EAEJ,SAASC,EAAQb,EAAQf,GACvB,SAAS6B,IACP,OAAO,IAAIZ,GAAY,SAASE,EAASC,GACvCF,EAAOH,EAAQf,EAAKmB,EAASC,MAIjC,OAAOO,EAaLA,EAAkBA,EAAgBH,KAChCK,EAGAA,GACEA,IAKRjL,KAAKgJ,QAAUgC,EA2BjB,SAAS/B,EAAiBV,EAASE,EAAMK,GACvC,IAAInG,EAAQ0G,EAEZ,OAAO,SAAgBc,EAAQf,GAC7B,GAAIzG,IAAU4G,EACZ,MAAM,IAAI2B,MAAM,gCAGlB,GAAIvI,IAAU6G,EAAmB,CAC/B,GAAe,UAAXW,EACF,MAAMf,EAKR,OAAO+B,IAGTrC,EAAQqB,OAASA,EACjBrB,EAAQM,IAAMA,EAEd,MAAO,EAAM,CACX,IAAIgC,EAAWtC,EAAQsC,SACvB,GAAIA,EAAU,CACZ,IAAIC,EAAiBC,EAAoBF,EAAUtC,GACnD,GAAIuC,EAAgB,CAClB,GAAIA,IAAmB5B,EAAkB,SACzC,OAAO4B,GAIX,GAAuB,SAAnBvC,EAAQqB,OAGVrB,EAAQyC,KAAOzC,EAAQ0C,MAAQ1C,EAAQM,SAElC,GAAuB,UAAnBN,EAAQqB,OAAoB,CACrC,GAAIxH,IAAU0G,EAEZ,MADA1G,EAAQ6G,EACFV,EAAQM,IAGhBN,EAAQ2C,kBAAkB3C,EAAQM,SAEN,WAAnBN,EAAQqB,QACjBrB,EAAQ4C,OAAO,SAAU5C,EAAQM,KAGnCzG,EAAQ4G,EAER,IAAIkB,EAASvB,EAASX,EAASE,EAAMK,GACrC,GAAoB,WAAhB2B,EAAOzI,KAAmB,CAO5B,GAJAW,EAAQmG,EAAQ9E,KACZwF,EACAF,EAEAmB,EAAOrB,MAAQK,EACjB,SAGF,MAAO,CACLhH,MAAOgI,EAAOrB,IACdpF,KAAM8E,EAAQ9E,MAGS,UAAhByG,EAAOzI,OAChBW,EAAQ6G,EAGRV,EAAQqB,OAAS,QACjBrB,EAAQM,IAAMqB,EAAOrB,OAU7B,SAASkC,EAAoBF,EAAUtC,GACrC,IAAIqB,EAASiB,EAASvD,SAASiB,EAAQqB,QACvC,GAAIA,IAAWrK,EAAW,CAKxB,GAFAgJ,EAAQsC,SAAW,KAEI,UAAnBtC,EAAQqB,OAAoB,CAE9B,GAAIiB,EAASvD,SAAS,YAGpBiB,EAAQqB,OAAS,SACjBrB,EAAQM,IAAMtJ,EACdwL,EAAoBF,EAAUtC,GAEP,UAAnBA,EAAQqB,QAGV,OAAOV,EAIXX,EAAQqB,OAAS,QACjBrB,EAAQM,IAAM,IAAIuC,UAChB,kDAGJ,OAAOlC,EAGT,IAAIgB,EAASvB,EAASiB,EAAQiB,EAASvD,SAAUiB,EAAQM,KAEzD,GAAoB,UAAhBqB,EAAOzI,KAIT,OAHA8G,EAAQqB,OAAS,QACjBrB,EAAQM,IAAMqB,EAAOrB,IACrBN,EAAQsC,SAAW,KACZ3B,EAGT,IAAImC,EAAOnB,EAAOrB,IAElB,OAAMwC,EAOFA,EAAK5H,MAGP8E,EAAQsC,EAASS,YAAcD,EAAKnJ,MAGpCqG,EAAQhG,KAAOsI,EAASU,QAQD,WAAnBhD,EAAQqB,SACVrB,EAAQqB,OAAS,OACjBrB,EAAQM,IAAMtJ,GAUlBgJ,EAAQsC,SAAW,KACZ3B,GANEmC,GA3BP9C,EAAQqB,OAAS,QACjBrB,EAAQM,IAAM,IAAIuC,UAAU,oCAC5B7C,EAAQsC,SAAW,KACZ3B,GAoDX,SAASsC,EAAaC,GACpB,IAAIpJ,EAAQ,CAAEqJ,OAAQD,EAAK,IAEvB,KAAKA,IACPpJ,EAAMsJ,SAAWF,EAAK,IAGpB,KAAKA,IACPpJ,EAAMuJ,WAAaH,EAAK,GACxBpJ,EAAMwJ,SAAWJ,EAAK,IAGxBhM,KAAKqM,WAAWC,KAAK1J,GAGvB,SAAS2J,EAAc3J,GACrB,IAAI6H,EAAS7H,EAAM4J,YAAc,GACjC/B,EAAOzI,KAAO,gBACPyI,EAAOrB,IACdxG,EAAM4J,WAAa/B,EAGrB,SAAS1B,EAAQL,GAIf1I,KAAKqM,WAAa,CAAC,CAAEJ,OAAQ,SAC7BvD,EAAYtF,QAAQ2I,EAAc/L,MAClCA,KAAKyM,OAAM,GA8Bb,SAASzC,EAAOjI,GACd,GAAIA,EAAU,CACZ,IAAI2K,EAAiB3K,EAAS6F,GAC9B,GAAI8E,EACF,OAAOA,EAAetH,KAAKrD,GAG7B,GAA6B,oBAAlBA,EAASe,KAClB,OAAOf,EAGT,IAAK4K,MAAM5K,EAASlC,QAAS,CAC3B,IAAI+M,GAAK,EAAG9J,EAAO,SAASA,IAC1B,QAAS8J,EAAI7K,EAASlC,OACpB,GAAI2H,EAAOpC,KAAKrD,EAAU6K,GAGxB,OAFA9J,EAAKL,MAAQV,EAAS6K,GACtB9J,EAAKkB,MAAO,EACLlB,EAOX,OAHAA,EAAKL,MAAQ3C,EACbgD,EAAKkB,MAAO,EAELlB,GAGT,OAAOA,EAAKA,KAAOA,GAKvB,MAAO,CAAEA,KAAMqI,GAIjB,SAASA,IACP,MAAO,CAAE1I,MAAO3C,EAAWkE,MAAM,GA+MnC,OA5mBA0F,EAAkB1G,UAAYiH,EAAGlE,YAAc4D,EAC/CA,EAA2B5D,YAAc2D,EACzCA,EAAkBmD,YAActK,EAC9BoH,EACA3B,EACA,qBAaF1H,EAAQwM,oBAAsB,SAASC,GACrC,IAAIC,EAAyB,oBAAXD,GAAyBA,EAAOhH,YAClD,QAAOiH,IACHA,IAAStD,GAG2B,uBAAnCsD,EAAKH,aAAeG,EAAKC,QAIhC3M,EAAQ4M,KAAO,SAASH,GAQtB,OAPIxF,OAAO4F,eACT5F,OAAO4F,eAAeJ,EAAQpD,IAE9BoD,EAAOK,UAAYzD,EACnBpH,EAAOwK,EAAQ/E,EAAmB,sBAEpC+E,EAAO/J,UAAYuE,OAAO7G,OAAOuJ,GAC1B8C,GAOTzM,EAAQ+M,MAAQ,SAASjE,GACvB,MAAO,CAAEuB,QAASvB,IAsEpBc,EAAsBE,EAAcpH,WACpCoH,EAAcpH,UAAU8E,GAAuB,WAC7C,OAAO9H,MAETM,EAAQ8J,cAAgBA,EAKxB9J,EAAQgN,MAAQ,SAAS/E,EAASC,EAASC,EAAMC,EAAa2B,QACxC,IAAhBA,IAAwBA,EAAckD,SAE1C,IAAIC,EAAO,IAAIpD,EACb9B,EAAKC,EAASC,EAASC,EAAMC,GAC7B2B,GAGF,OAAO/J,EAAQwM,oBAAoBtE,GAC/BgF,EACAA,EAAK1K,OAAO8H,MAAK,SAASF,GACxB,OAAOA,EAAO1G,KAAO0G,EAAOjI,MAAQ+K,EAAK1K,WAuKjDoH,EAAsBD,GAEtB1H,EAAO0H,EAAIjC,EAAmB,aAO9BiC,EAAGrC,GAAkB,WACnB,OAAO5H,MAGTiK,EAAGwD,SAAW,WACZ,MAAO,sBAkCTnN,EAAQoN,KAAO,SAASC,GACtB,IAAID,EAAO,GACX,IAAK,IAAIlL,KAAOmL,EACdD,EAAKpB,KAAK9J,GAMZ,OAJAkL,EAAKE,UAIE,SAAS9K,IACd,MAAO4K,EAAK7N,OAAQ,CAClB,IAAI2C,EAAMkL,EAAKG,MACf,GAAIrL,KAAOmL,EAGT,OAFA7K,EAAKL,MAAQD,EACbM,EAAKkB,MAAO,EACLlB,EAQX,OADAA,EAAKkB,MAAO,EACLlB,IAsCXxC,EAAQ0J,OAASA,EAMjBjB,EAAQ/F,UAAY,CAClB+C,YAAagD,EAEb0D,MAAO,SAASqB,GAcd,GAbA9N,KAAKmD,KAAO,EACZnD,KAAK8C,KAAO,EAGZ9C,KAAKuL,KAAOvL,KAAKwL,MAAQ1L,EACzBE,KAAKgE,MAAO,EACZhE,KAAKoL,SAAW,KAEhBpL,KAAKmK,OAAS,OACdnK,KAAKoJ,IAAMtJ,EAEXE,KAAKqM,WAAWjJ,QAAQmJ,IAEnBuB,EACH,IAAK,IAAIb,KAAQjN,KAEQ,MAAnBiN,EAAKc,OAAO,IACZvG,EAAOpC,KAAKpF,KAAMiN,KACjBN,OAAOM,EAAK7F,MAAM,MACrBpH,KAAKiN,GAAQnN,IAMrBkO,KAAM,WACJhO,KAAKgE,MAAO,EAEZ,IAAIiK,EAAYjO,KAAKqM,WAAW,GAC5B6B,EAAaD,EAAUzB,WAC3B,GAAwB,UAApB0B,EAAWlM,KACb,MAAMkM,EAAW9E,IAGnB,OAAOpJ,KAAKmO,MAGd1C,kBAAmB,SAAS2C,GAC1B,GAAIpO,KAAKgE,KACP,MAAMoK,EAGR,IAAItF,EAAU9I,KACd,SAASqO,EAAOC,EAAKC,GAYnB,OAXA9D,EAAOzI,KAAO,QACdyI,EAAOrB,IAAMgF,EACbtF,EAAQhG,KAAOwL,EAEXC,IAGFzF,EAAQqB,OAAS,OACjBrB,EAAQM,IAAMtJ,KAGNyO,EAGZ,IAAK,IAAI3B,EAAI5M,KAAKqM,WAAWxM,OAAS,EAAG+M,GAAK,IAAKA,EAAG,CACpD,IAAIhK,EAAQ5C,KAAKqM,WAAWO,GACxBnC,EAAS7H,EAAM4J,WAEnB,GAAqB,SAAjB5J,EAAMqJ,OAIR,OAAOoC,EAAO,OAGhB,GAAIzL,EAAMqJ,QAAUjM,KAAKmD,KAAM,CAC7B,IAAIqL,EAAWhH,EAAOpC,KAAKxC,EAAO,YAC9B6L,EAAajH,EAAOpC,KAAKxC,EAAO,cAEpC,GAAI4L,GAAYC,EAAY,CAC1B,GAAIzO,KAAKmD,KAAOP,EAAMsJ,SACpB,OAAOmC,EAAOzL,EAAMsJ,UAAU,GACzB,GAAIlM,KAAKmD,KAAOP,EAAMuJ,WAC3B,OAAOkC,EAAOzL,EAAMuJ,iBAGjB,GAAIqC,GACT,GAAIxO,KAAKmD,KAAOP,EAAMsJ,SACpB,OAAOmC,EAAOzL,EAAMsJ,UAAU,OAG3B,KAAIuC,EAMT,MAAM,IAAIvD,MAAM,0CALhB,GAAIlL,KAAKmD,KAAOP,EAAMuJ,WACpB,OAAOkC,EAAOzL,EAAMuJ,gBAU9BT,OAAQ,SAAS1J,EAAMoH,GACrB,IAAK,IAAIwD,EAAI5M,KAAKqM,WAAWxM,OAAS,EAAG+M,GAAK,IAAKA,EAAG,CACpD,IAAIhK,EAAQ5C,KAAKqM,WAAWO,GAC5B,GAAIhK,EAAMqJ,QAAUjM,KAAKmD,MACrBqE,EAAOpC,KAAKxC,EAAO,eACnB5C,KAAKmD,KAAOP,EAAMuJ,WAAY,CAChC,IAAIuC,EAAe9L,EACnB,OAIA8L,IACU,UAAT1M,GACS,aAATA,IACD0M,EAAazC,QAAU7C,GACvBA,GAAOsF,EAAavC,aAGtBuC,EAAe,MAGjB,IAAIjE,EAASiE,EAAeA,EAAalC,WAAa,GAItD,OAHA/B,EAAOzI,KAAOA,EACdyI,EAAOrB,IAAMA,EAETsF,GACF1O,KAAKmK,OAAS,OACdnK,KAAK8C,KAAO4L,EAAavC,WAClB1C,GAGFzJ,KAAK2O,SAASlE,IAGvBkE,SAAU,SAASlE,EAAQ2B,GACzB,GAAoB,UAAhB3B,EAAOzI,KACT,MAAMyI,EAAOrB,IAcf,MAXoB,UAAhBqB,EAAOzI,MACS,aAAhByI,EAAOzI,KACThC,KAAK8C,KAAO2H,EAAOrB,IACM,WAAhBqB,EAAOzI,MAChBhC,KAAKmO,KAAOnO,KAAKoJ,IAAMqB,EAAOrB,IAC9BpJ,KAAKmK,OAAS,SACdnK,KAAK8C,KAAO,OACa,WAAhB2H,EAAOzI,MAAqBoK,IACrCpM,KAAK8C,KAAOsJ,GAGP3C,GAGTmF,OAAQ,SAASzC,GACf,IAAK,IAAIS,EAAI5M,KAAKqM,WAAWxM,OAAS,EAAG+M,GAAK,IAAKA,EAAG,CACpD,IAAIhK,EAAQ5C,KAAKqM,WAAWO,GAC5B,GAAIhK,EAAMuJ,aAAeA,EAGvB,OAFAnM,KAAK2O,SAAS/L,EAAM4J,WAAY5J,EAAMwJ,UACtCG,EAAc3J,GACP6G,IAKb,MAAS,SAASwC,GAChB,IAAK,IAAIW,EAAI5M,KAAKqM,WAAWxM,OAAS,EAAG+M,GAAK,IAAKA,EAAG,CACpD,IAAIhK,EAAQ5C,KAAKqM,WAAWO,GAC5B,GAAIhK,EAAMqJ,SAAWA,EAAQ,CAC3B,IAAIxB,EAAS7H,EAAM4J,WACnB,GAAoB,UAAhB/B,EAAOzI,KAAkB,CAC3B,IAAI6M,EAASpE,EAAOrB,IACpBmD,EAAc3J,GAEhB,OAAOiM,GAMX,MAAM,IAAI3D,MAAM,0BAGlB4D,cAAe,SAAS/M,EAAU8J,EAAYC,GAa5C,OAZA9L,KAAKoL,SAAW,CACdvD,SAAUmC,EAAOjI,GACjB8J,WAAYA,EACZC,QAASA,GAGS,SAAhB9L,KAAKmK,SAGPnK,KAAKoJ,IAAMtJ,GAGN2J,IAQJnJ,EA7sBK,CAotBiBD,EAAOC,SAGtC,IACEyO,mBAAqB1H,EACrB,MAAO2H,GAUPC,SAAS,IAAK,yBAAdA,CAAwC5H,K,kCCzuB1C,IAAInI,EAAI,EAAQ,QACZgQ,EAAa,EAAQ,QACrBC,EAAyB,EAAQ,QAIrCjQ,EAAE,CAAEM,OAAQ,SAAUC,OAAO,EAAMuG,OAAQmJ,EAAuB,SAAW,CAC3EC,KAAM,SAAcC,GAClB,OAAOH,EAAWlP,KAAM,IAAK,OAAQqP,O,kCCRzC,IAAIC,EAAU,EAAQ,QAClBjQ,EAAW,EAAQ,QACnBuB,EAAO,EAAQ,QAIfzB,EAAmB,SAAUK,EAAQ+P,EAAUC,EAAQvP,EAAWwP,EAAOC,EAAOC,EAAQC,GAC1F,IAGIC,EAHAC,EAAcL,EACdM,EAAc,EACdC,IAAQL,GAAS/O,EAAK+O,EAAQC,EAAS,GAG3C,MAAOG,EAAc9P,EAAW,CAC9B,GAAI8P,KAAeP,EAAQ,CAGzB,GAFAK,EAAUG,EAAQA,EAAMR,EAAOO,GAAcA,EAAaR,GAAYC,EAAOO,GAEzEL,EAAQ,GAAKJ,EAAQO,GACvBC,EAAc3Q,EAAiBK,EAAQ+P,EAAUM,EAASxQ,EAASwQ,EAAQhQ,QAASiQ,EAAaJ,EAAQ,GAAK,MACzG,CACL,GAAII,GAAe,iBAAkB,MAAMnE,UAAU,sCACrDnM,EAAOsQ,GAAeD,EAGxBC,IAEFC,IAEF,OAAOD,GAGTzP,EAAOC,QAAUnB,G,yCC/BjB,IAAI,EAAS,WAAa,IAAI8Q,EAAIjQ,KAASkQ,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACE,MAAM,CAAC,MAAQ,KAAK,CAACF,EAAG,QAAQ,CAACG,YAAY,SAASD,MAAM,CAAC,QAAU,SAAS,MAAQ,WAAW,CAACF,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAO,KAAK,MAAQ,WAAW,CAACF,EAAG,QAAQ,CAACE,MAAM,CAAC,aAAa,MAAM,YAAY,MAAM,IAAM,EAAQ,WAAyCF,EAAG,MAAMA,EAAG,KAAK,CAACH,EAAIO,GAAG,qEAAqEJ,EAAG,MAAMA,EAAG,QAAQ,CAACE,MAAM,CAAC,QAAU,WAAW,CAACF,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAO,SAAS,CAACF,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAO,kBAAkB,QAAU,GAAG,MAAQ,YAAY,CAACF,EAAG,SAAS,CAACH,EAAIO,GAAG,wBAAwBP,EAAIO,GAAG,qBAAqB,IAAI,GAAGJ,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAO,SAAS,CAACF,EAAG,QAAQ,CAACE,MAAM,CAAC,QAAU,GAAG,MAAQ,YAAY,KAAO,oBAAoB,CAACF,EAAG,SAAS,CAACH,EAAIO,GAAG,gBAAgBP,EAAIO,GAAG,qBAAqB,IAAI,GAAGJ,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAO,SAAS,CAACF,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAO,6BAA6B,OAAS,SAAS,QAAU,GAAG,MAAQ,gBAAgB,CAACF,EAAG,SAAS,CAACH,EAAIO,GAAG,uBAAuBP,EAAIO,GAAG,oBAAoB,IAAI,GAAGJ,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAO,SAAS,CAACF,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAO,0CAA0C,OAAS,SAAS,QAAU,GAAG,MAAQ,WAAW,CAACF,EAAG,SAAS,CAACH,EAAIO,GAAG,aAAaP,EAAIO,GAAG,iBAAiB,IAAI,IAAI,IAAI,IAAI,GAAGJ,EAAG,QAAQ,CAACA,EAAG,cAAc,CAACA,EAAG,QAAQ,CAACK,YAAY,CAAC,aAAa,OAAOH,MAAM,CAAC,MAAQ,SAAS,QAAU,WAAW,CAACF,EAAG,QAAQ,CAACE,MAAM,CAAC,MAAQ,WAAW,CAACF,EAAG,KAAK,CAACG,YAAY,8BAA8BD,MAAM,CAAC,GAAK,mBAAmB,CAACL,EAAIO,GAAG,yBAAyB,GAAGJ,EAAG,QAAQ,CAACE,MAAM,CAAC,MAAQ,SAAS,QAAU,WAAW,CAACF,EAAG,QAAQ,CAACE,MAAM,CAAC,MAAQ,WAAW,CAACF,EAAG,KAAK,CAACG,YAAY,gCAAgC,CAACN,EAAIO,GAAG,4BAA4B,GAAGJ,EAAG,QAAQ,CAACE,MAAM,CAAC,MAAQ,SAAS,QAAU,WAAW,CAACF,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAO,OAAO,CAACF,EAAG,cAAc,CAACH,EAAIO,GAAG,mBAAmBJ,EAAG,oBAAoB,CAACE,MAAM,CAAC,MAAQ,OAAO,eAAe,IAAI,MAAQL,EAAIS,qBAAqBC,WAAW,OAAS,GAAG,OAAS,OAAO,CAACV,EAAIO,GAAG,IAAIP,EAAIW,GAAGX,EAAIS,qBAAqBG,aAAa,MAAMZ,EAAIW,GAAGX,EAAIS,qBAAqBC,YAAY,SAAS,IAAI,GAAGP,EAAG,QAAQ,CAACK,YAAY,CAAC,aAAa,OAAOH,MAAM,CAAC,MAAQ,SAAS,QAAU,WAAW,CAACF,EAAG,QAAQ,CAACE,MAAM,CAAC,MAAQ,WAAW,CAACF,EAAG,KAAK,CAACG,YAAY,8BAA8BD,MAAM,CAAC,GAAK,mBAAmB,CAACL,EAAIO,GAAG,yBAAyB,GAAGJ,EAAG,QAAQ,CAACK,YAAY,CAAC,gBAAgB,QAAQH,MAAM,CAAC,QAAU,WAAWL,EAAIa,GAAIb,EAAa,WAAE,SAASc,EAAG9O,GAAO,OAAOmO,EAAG,QAAQ,CAAC5N,IAAI,KAAOP,EAAMqO,MAAM,CAAC,KAAO,MAAM,CAACF,EAAG,SAAS,CAACA,EAAG,cAAc,CAACK,YAAY,CAAC,aAAa,OAAO,OAAS,UAAU,CAACL,EAAG,IAAI,CAACG,YAAY,wCAAwC,CAACN,EAAIO,GAAG,IAAIP,EAAIW,GAAGG,EAAGC,OAAO,OAAOZ,EAAG,IAAI,CAACH,EAAIO,GAAG,IAAIP,EAAIW,GAAGG,EAAGE,KAAKC,OAAO,OAAOd,EAAG,MAAM,CAACG,YAAY,iBAAiB,CAACH,EAAG,MAAM,CAACG,YAAY,eAAe,CAACN,EAAIO,GAAGP,EAAIW,GAAGG,EAAGI,aAAaf,EAAG,iBAAiB,CAACA,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAO,GAAG,MAAQ,SAAS,KAAOS,EAAGK,SAAS,OAAS,WAAW,CAACnB,EAAIO,GAAG,oBAAoB,IAAI,IAAI,MAAK,IAAI,IAAI,IAAI,IAC7jGa,EAAkB,G,UCDtB,SAASC,EAAmBC,EAAKhH,EAASC,EAAQgH,EAAOC,EAAQjP,EAAK4G,GACpE,IACE,IAAIwC,EAAO2F,EAAI/O,GAAK4G,GAChB3G,EAAQmJ,EAAKnJ,MACjB,MAAOqI,GAEP,YADAN,EAAOM,GAILc,EAAK5H,KACPuG,EAAQ9H,GAER8K,QAAQhD,QAAQ9H,GAAOmI,KAAK4G,EAAOC,GAIxB,SAASC,EAAkBvI,GACxC,OAAO,WACL,IAAIV,EAAOzI,KACP2R,EAAO/R,UACX,OAAO,IAAI2N,SAAQ,SAAUhD,EAASC,GACpC,IAAI+G,EAAMpI,EAAGyI,MAAMnJ,EAAMkJ,GAEzB,SAASH,EAAM/O,GACb6O,EAAmBC,EAAKhH,EAASC,EAAQgH,EAAOC,EAAQ,OAAQhP,GAGlE,SAASgP,EAAOpJ,GACdiJ,EAAmBC,EAAKhH,EAASC,EAAQgH,EAAOC,EAAQ,QAASpJ,GAGnEmJ,OAAM1R,O,wBC/BN+R,EAAkBC,EAAQ,QAEjBD,IC0Hf,GACE5E,KAAM,OACN8E,WAAY,GACZ7O,KAAM,WACJ,MAAO,CACL8O,UAAW,GACXtB,qBAAsB,CACpBC,WAAY,EAApB,kCACQE,YAAa,EAArB,4BAIEoB,QAAS,WAAX,+IACA,qBADA,qGAAW,GAGTC,QAAS,CACPC,eAAgB,SAApB,KACM,OAAIC,EAAIvS,QAAUwS,EACTD,EAEFA,EAAIhL,MAAM,EAAGiL,GAAO,OAE7BC,cAAe,WAAnB,6JACA,uGADA,cACA,EADA,gBAIA,SAJA,OAMA,IAFA,EAJA,OAKA,IACA,YACA,aACA,mBACA,yBAEA,uCACA,uBAZA,qGAAmB,KClJ2T,I,iJCO9U,SAASC,EAAT,GACE,OAAO,SAAU,EAAV,GACL,IAAK,IAAL,OACOhL,OAAA,gCAAL,IACEvH,KAAA,QAAaA,KAAKwS,MAAlB,MAGJ,IAAK,IAAL,OACExS,KAAA,KAAUA,KAAKwS,MAAf,KAAsCC,EAAtC,KAKS,oBAAW,CACxBvP,KAAM,iBAAO,CACXwP,OADW,GAEXC,WAAY,KAGdC,QANwB,WAStB5S,KAAA,gBAAsBuS,EAAtB,UAA6C,CAAEM,WAAW,IAC1D7S,KAAA,oBAA0BuS,EAA1B,cAAqD,CAAEM,WAAW,O,8ECzBvD,gBAAW,CACxB5F,KADwB,YAGxB6F,MAAO,CACLC,MAAOlM,QAGTqL,QAAS,CACPc,mBADO,SACW,GAA8C,IAApB9P,EAAoB,uDAA9C,GAChB,wBAAWA,EAAP,OAEF,OAAA+P,EAAA,MAAa,0BAFqB,MAIlC,GAEF,kBAAW/P,EAAP,OAEF,OAAA+P,EAAA,MAAa,0BAFqB,MAIlC,IAEE,eAAJ,GACE/P,EAAA,uCACKA,EADQ,OAAb,IAEE,6BAFW,GAGX,yBAAmB6P,KAEZA,IACT7P,EAAA,uCACKA,EADQ,OAAb,qBAEE,GAAS,KAIb,IAGFgQ,aA9BO,SA8BK,GAA8C,IAApBhQ,EAAoB,uDAA9C,GACV,qBAAWA,EAAP,MAIF,OAFA,OAAA+P,EAAA,MAAa,0BAFqB,MAIlC,EAEF,qBAAW/P,EAAP,MAIF,OAFA,OAAA+P,EAAA,MAAa,0BAFqB,MAIlC,EAEF,GAAI,eAAJ,GACE/P,EAAA,uCACKA,EADQ,OAAb,IAEE6P,MAAO,GAAF,OAFM,GAGX,wBAAkBA,UAEf,GAAIA,EAAO,CAChB,MAAmCA,EAAA,4BAAnC,yBAAM,EAAN,KAAM,EAAN,KACA7P,EAAA,uCACKA,EADQ,OAAb,qBAEGiQ,EAAD,UAAwB,IAE1B,IACEjQ,EAAA,MAAW,SAAX,OAGJ,aCrES,gBAAW,CACxB+J,KADwB,aAGxB6F,MAAO,CACLM,UAAW,CAACC,OAAQxM,SAGtByM,SAAU,CACRC,kBADQ,WAEN,OAAOvT,KAAP,WAEFwT,iBAJQ,WAKN,IAAMJ,EAAYpT,KAAlB,kBAEA,aAAIoT,GACAzG,MAAM8G,SAAV,IAD8B,GAE9B,sCAAuBzT,KAAd,YAAiC,O,YCVjC,gBAAW,CACxBiN,KADwB,aAGxB6F,MAAO,CACLY,OAAQ,CAACL,OADJ,QAELM,UAAW,CAACN,OAFP,QAGLO,SAAU,CAACP,OAHN,QAILQ,UAAW,CAACR,OAJP,QAKLS,SAAU,CAACT,OALN,QAMLU,MAAO,CAACV,OAAQxM,SAGlByM,SAAU,CACRU,iBADQ,WAEN,IAAMC,EAAN,GAEMP,EAAS,eAAc1T,KAA7B,QACM6T,EAAY,eAAc7T,KAAhC,WACM8T,EAAW,eAAc9T,KAA/B,UACM2T,EAAY,eAAc3T,KAAhC,WACM4T,EAAW,eAAc5T,KAA/B,UACM+T,EAAQ,eAAc/T,KAA5B,OASA,OAPA,IAAYiU,EAAA,UACZ,IAAeA,EAAA,aACf,IAAcA,EAAA,YACd,IAAeA,EAAA,aACf,IAAcA,EAAA,YACd,IAAWA,EAAA,SAEX,M,gECrCS,SAASC,EAA2BC,EAAGC,GACpD,IAAIC,EAAuB,qBAAX1M,QAA0BwM,EAAExM,OAAOE,WAAasM,EAAE,cAElE,IAAKE,EAAI,CACP,GAAIC,MAAMhF,QAAQ6E,KAAOE,EAAKE,eAA2BJ,KAAOC,GAAkBD,GAAyB,kBAAbA,EAAEtU,OAAqB,CAC/GwU,IAAIF,EAAIE,GACZ,IAAIzH,EAAI,EAEJ4H,EAAI,aAER,MAAO,CACLC,EAAGD,EACHE,EAAG,WACD,OAAI9H,GAAKuH,EAAEtU,OAAe,CACxBmE,MAAM,GAED,CACLA,MAAM,EACNvB,MAAO0R,EAAEvH,OAGb+H,EAAG,SAAWC,GACZ,MAAMA,GAERnU,EAAG+T,GAIP,MAAM,IAAI7I,UAAU,yIAGtB,IAEItD,EAFAwM,GAAmB,EACnBC,GAAS,EAEb,MAAO,CACLL,EAAG,WACDJ,EAAKA,EAAGjP,KAAK+O,IAEfO,EAAG,WACD,IAAIK,EAAOV,EAAGvR,OAEd,OADA+R,EAAmBE,EAAK/Q,KACjB+Q,GAETJ,EAAG,SAAWK,GACZF,GAAS,EACTzM,EAAM2M,GAERvU,EAAG,WACD,IACOoU,GAAoC,MAAhBR,EAAG,WAAmBA,EAAG,YADpD,QAGE,GAAIS,EAAQ,MAAMzM,K,cCjDX,gBAAW,CACxB4E,KADwB,YAGxB6F,MAAO,CACLmC,QAAS,CAACC,QADL,QAELC,KAAMD,SAGR5B,SAAU,CACR8B,eADQ,WAEN,IAAMC,EAAN,GACMJ,EAAU,kBAAOjV,KAAP,QACZ6G,OAAO7G,KADK,UAAhB,IAEIA,KAAKiV,QAET,GAAIjV,KAAJ,KACEqV,EAAA,uBACK,qBAAWJ,EAAsB,CACtC,IADsC,EAChCjL,EAASiL,EAAA,MAAf,KADsC,IAGtC,GAHsC,IAGtC,2BAA4B,KAA5B,EAA4B,QAC1BI,EAAA,4BAJoC,oCAM7BJ,GACTI,EAAA,gBAGF,OAAOA,EAAA,2BACJA,EAAA,KAAD,MAAuB,GADzB,O,wBCZS,SAAAC,EAAA,MAAO,EAAD,QAAN,eAON,CACPrI,KADO,UAGP6F,MAAO,CACLyC,SADK,QAELC,OAFK,QAGLC,IAAK,CACHzT,KADG,OAEH0T,QAAS,QAIbpC,SAAU,CACRqC,QADQ,WAEN,qDACE,WADK,EAEL,oBAAqB3V,KAFhB,SAGL,kBAAmBA,KAHd,QAIFA,KAJE,cAKFA,KALE,kBAMFA,KAAKoV,iBAGZnB,OAXQ,WAYN,OAAOjU,KAAP,mBAIJ4V,OA5BO,SA4BD,GACJ,IAAM1S,EAAO,CACX2S,MAAO7V,KADI,QAEX8V,MAAO9V,KAFI,OAGX+V,GAAI/V,KAAK2S,YAGX,OAAOqD,EACLhW,KADM,IAENA,KAAKgT,mBAAmBhT,KAAxB,MAFM,GAGNA,KAAKiW,OAHP,YCzDJ,I,oBCaA,SAASC,EAAT,KACE,GAAsB,qBAAXC,QAA4B,yBAAvC,QAEA,IAAMC,EAAYC,EAAA,WAAlB,GACM5T,EAAQ4T,EAAd,MACA,EAA6B,+BAEzB,CAAEC,QAAF,EAAkBC,QAAS,IAFzB,EAAN,EAAM,QAAWA,EAAjB,EAAiBA,QAGXC,EAAW,IAAIC,sBAAqB,WAGtC,IAFFnR,EAEE,uDAHsC,KAGtC,uCAEF,GAAKoR,EAAL,UAEA,IAAMC,EAAiBrR,EAAA,MAAa,SAAA1C,GAAK,OAAIA,EAJ3C,mBASA0T,GACGF,EAAD,QACAM,EAAA,SAFF,MAIGN,EAAD,UAECM,EAAA,SAPL,MAUEJ,EAAQhR,EAASkR,EAAjB,GAGEG,GAAkBP,EAAtB,KAAsCQ,EAAtC,GACKF,EAAA,oBAzBP,GA4BAA,EAAA,SAAc,CAAEnW,MAAF,EAAeiW,YAE7BA,EAAAK,QAAA,IAGF,SAASD,EAAT,GAEOF,EAAL,WAEAA,EAAA,4BAAAA,UACOA,EAAP,UAGK,IAAMI,EAAY,CACvBZ,WACAU,UAGF,ICtDe,WAAiB,CAC9B3J,KAD8B,sBAG9B8J,WAAY,CAAEC,aAEdlE,MAAO,CACLmE,OADK,QAELC,cAFK,QAGLC,OAAQ,CACNnV,KAAM,CAACqR,OADD,QAENqC,QAAS,GAEXtT,KAAM,CACJJ,KAAM,CAACqR,OADH,QAEJqC,QAAS,IAEX3B,MAAO,CACL/R,KAAM,CAACqR,OADF,QAELqC,QAAS,GAEXjT,MAAO,CACLT,KAAM,CAACqR,OADF,QAELqC,QAAS,IAIbxS,KAAM,iBAAO,CACXkU,OADW,GAEXC,WAAW,IAGb/D,SAAU,CACRgE,eADQ,WAEN,OAAOjE,OAAOrT,KAAP,OAAqBA,KAAKiX,OAAS,EAA1C,IAGFM,cALQ,WAMN,OAAO,EAAI9Q,KAAJ,GAAczG,KAArB,QAGF2V,QATQ,WAUN,MAAO,CACL,+BAAgC3V,KAD3B,UAEL,qCAAsCA,KAFjC,cAGL,8BAA+BA,KAAKiX,SAIxCO,gBAjBQ,WAkBN,OAAIxX,KAAKyC,MAAT,EACE,EAGEzC,KAAKyC,MAAT,IACE,IAGKgV,WAAWzX,KAAlB,QAGF0X,gBA7BQ,WA8BN,OAAOjR,KAAA,UAAWzG,KAAKuX,eAAvB,KAGFI,iBAjCQ,WAkCN,OAAS,IAAM3X,KAAP,iBAAD,IAAuCA,KAAvC,cAAP,MAGF4X,YArCQ,WAsCN,OAAOvE,OAAOrT,KAAP,QAAsBA,KAAtB,KAAkCA,KAAlC,YAAP,GAGFiU,OAzCQ,WA0CN,MAAO,CACLP,OAAQ,eAAc1T,KADjB,gBAEL+T,MAAO,eAAc/T,KAAD,kBAIxB6X,UAhDQ,WAiDN,MAAO,CACLC,UAAW,UAAF,OAAYzE,OAAOrT,KAAD,QAAlB,UAIb+X,YAtDQ,WAuDN,OAAO/X,KAAKoX,QAAU,EAAI/D,OAAOrT,KAAP,QAAsBA,KAAhD,QAIJkS,QAAS,CACP8F,UADO,SACE,KACP,OAAOhY,KAAKmQ,eAAe,SAAU,CACnC0F,MAAO,wBAAF,OAD8B,GAEnCvF,MAAO,CACL2H,KADK,cAELC,GAAI,EAAIlY,KAFH,YAGLmY,GAAI,EAAInY,KAHH,YAILoY,EAAGpY,KAJE,OAKL,eAAgBA,KALX,YAML,mBAAoBA,KANf,gBAOL,oBAAqBqY,MAI3BC,OAfO,WAgBL,IAAMC,EAAW,CACfvY,KAAKkX,eAAiBlX,KAAKgY,UAAU,WADtB,GAEfhY,KAAKgY,UAAU,UAAWhY,KAF5B,mBAKA,OAAOA,KAAKmQ,eAAe,MAAO,CAChC2F,MAAO9V,KADyB,UAEhCsQ,MAAO,CACLkI,MADK,6BAELC,QAAS,GAAF,OAAKzY,KAAK+X,YAAV,YAAyB/X,KAAK+X,YAA9B,YAA6C,EAAI/X,KAAK+X,YAAtD,YAAqE,EAAI/X,KAAK+X,eAJzF,IAQFW,QA7BO,WA8BL,OAAO1Y,KAAKmQ,eAAe,MAAO,CAChCI,YAAa,6BACZvQ,KAAKiW,OAFR,UAIF0C,UAlCO,SAkCE,OACP3Y,KAAA,cAIJ4V,OAjI8B,SAiIxB,GACJ,OAAOI,EAAE,MAAOhW,KAAKkT,aAAalT,KAAlB,MAA8B,CAC5CuQ,YAD4C,sBAE5CD,MAAO,CACLsI,KADK,cAEL,gBAFK,EAGL,gBAHK,IAIL,gBAAiB5Y,KAAKkX,mBAAgBpX,EAAYE,KAAKwX,iBAEzD3B,MAAO7V,KARqC,QAS5C+W,WAAY,CAAC,CACX9J,KADW,YAEXxK,MAAOzC,KAAK2Y,YAEd7C,MAAO9V,KAbqC,OAc5C+V,GAAI/V,KAAK6Y,aACP,CACF7Y,KADE,SAEFA,KAjBF,eC/IJ,ICCA,SAAS8Y,EAAT,KACE,OAAO,kBAAM,OAAA7F,EAAA,MAAY,OAAD,OAAQ8F,EAAR,4CAAxB,KAUI,kBAGJ,IAAMC,EAAcD,GAAA,EAAkB,CACpCE,SAAUH,EAAgBC,EADU,GAEpCG,WAAYJ,EAAgBC,EAAOI,IAFrC,KAKA,OAAO,cAAW,CAChBlM,KADgB,qBAGhBmM,OAAQ,kBACN,EAAa,CACX1D,QAASsD,MCZX,kBAKJ,OAAO,EAAiB,IAAjB,UAAyD,CAC9D/L,KAD8D,YAG9D6F,MAAO,CACLuG,YAAa,CACXrX,KADW,OAEX0T,QAFW,WAGT,GAAK1V,KAAL,GAEA,OAAOA,KAAKsZ,GAAZ,cAGJC,SAAUrE,SAGZhS,KAf8D,WAgB5D,MAAO,CACLsW,UAAU,IAIdlG,SAAU,CACRmG,aADQ,WAEN,OAAKzZ,KAAL,YAEA,kBACGA,KAAD,YAAoBA,KAAKwZ,UAHG,KAQlC5G,QA/B8D,WAgC5D5S,KAAA,IAAoBA,KAAKsZ,GAAL,SAApBtZ,OAGF0Z,cAnC8D,WAoC5D1Z,KAAA,IAAoBA,KAAKsZ,GAAL,WAApBtZ,OAGFkS,QAAS,CACPyH,OADO,WAEL3Z,KAAA,oBAOU4Z,EAAlB,aChEM,aAAkD,MAA/BC,EAA+B,uDAAlD,QAAmCC,EAAe,uDAAlD,QACJ,OAAO,cAAW,CAChB7M,KADgB,aAGhB8M,MAAO,CAAEF,OAAMC,SAEfhH,MAAO,kBACL,EAAQ,CAAEkH,UAAU,IAGtB9W,KATgB,WAUd,MAAO,CACLsW,WAAYxZ,KAAK6Z,KAIrBI,OAAK,sBACH,GADG,SACH,GACEja,KAAA,gBAFC,sCAIK,KACN,IAAUA,KAAV,IAAwBA,KAAKka,MAAMJ,EAAnC,MALC,KAYU,IAAnB,IC7BMK,EAAiB,CACrBC,SADqB,QAErBC,OAFqB,QAGrBC,MAHqB,QAIrBC,KAJqB,QAKrBC,MALqB,QAMrBC,IAAKvF,SAQD,aAAuC,IAApBwF,EAAoB,uDAAvC,GACJ,OAAO,cAAW,CAChBzN,KADgB,eAEhB6F,MAAO4H,EAAA,OAAkB,eAAmBP,EAArCO,GAAiEP,IAI7D,UCfTQ,G,wCAAahT,OAAnB,eAIMiT,EAAN,GAEA,SAAS9C,EAAT,KACEpB,EAAA,kBACAA,EAAA,wBAGF,SAASmE,EAAT,KACEnE,EAAA,cAAmBjU,EAAnB,WASF,SAASqY,EAAT,GACE,qBAAOnG,EAAA,iBAGT,SAASoG,EAAT,GACE,wBAAOpG,EAAA,iBAGT,IAAMqG,EAAY,SAAC,EAAD,GAId,IADFvY,EACE,uDAJc,GAKZwY,EAAJ,EACIC,EAAJ,EAEA,IAAKH,EAAL,GAAyB,CACvB,IAAM1C,EAAS3B,EAAf,wBACMlX,EAASsb,EAAA,GAAkBnG,EAAA,QAAUA,EAAA,eAA5B,GAAf,EAEAsG,EAASzb,EAAA,QAAiB6Y,EAA1B,KACA6C,EAAS1b,EAAA,QAAiB6Y,EAA1B,IAGF,IAAIjB,EAAJ,EACI+D,EAAJ,GACIzE,EAAA,SAAcA,EAAA,QAAlB,QACEyE,EAAA,IACA/D,EAASV,EAAA,YAAT,EACAU,EAAS3U,EAAA,SAAwB2U,EAAS3Q,KAAA,KAAU,SAACwU,EAAD,cAA0BC,EAAD,EAAnC,IAA1C,GAEA9D,EAAS3Q,KAAA,KAAU,SAAAiQ,EAAA,wBAAsBA,EAAA,aAAhC,IAAT,EAGF,IAAM0E,EAAU,GAAH,QAAO1E,EAAA,YAAD,EAAmBU,GAAtC,EAAa,MACPiE,EAAU,GAAH,QAAO3E,EAAA,aAAD,EAAoBU,GAAvC,EAAa,MAEPkE,EAAI7Y,EAAA,mBAA4BwY,EAAtC,EAAU,MACJM,EAAI9Y,EAAA,mBAA4ByY,EAAtC,EAAU,MAEV,MAAO,CAAE9D,SAAQ+D,QAAOG,IAAGC,IAAGH,UAASC,YAGnCG,GAAU,CAEdC,KAFc,SAEV,KAGuB,IAAzBhZ,EAAyB,uDAHvB,GAKF,GAAKiU,EAAD,SAAgBA,EAAA,QAApB,SAIA,IAAMgF,EAAYC,SAAA,cAAlB,QACMC,EAAYD,SAAA,cAAlB,QAEAD,EAAA,eACAA,EAAA,gCAEIjZ,EAAJ,QACEiZ,EAAA,sBAA2BjZ,EAA3B,QAGF,MAAkDuY,EAAUrG,EAAG+B,EAA/D,GAAM,EAAN,EAAM,SAAN,EAAM,QAAN,EAAM,IAAN,EAAM,IAAN,EAAM,QAAgC2E,EAAtC,EAAsCA,QAEhCjZ,EAAO,GAAH,OAAV,EAAgBgV,EAAN,MACVwE,EAAA,gCACAA,EAAA,cACAA,EAAA,eAEAlF,EAAA,eAEA,IAAMpD,EAAW6C,OAAA,iBAAjB,GACI7C,GAAJ,WAAgBA,EAAA,WACdoD,EAAA,0BACAA,EAAA,mCAGFkF,EAAA,4CACAA,EAAA,8CACA9D,EAAU8D,EAAW,aAAZ,OAAyBN,EAAzB,aAA+BC,EAA/B,qBAA6CJ,EAA7C,YAAsDA,EAAtD,YAAT,EAAS,MACTN,EAAQe,EAAR,GACAA,EAAA,kBAA8B/U,OAAOgV,YAArC,OAEAC,YAAW,WACTF,EAAA,+CACAA,EAAA,yCACA9D,EAAU8D,EAAW,aAAZ,OAAyBR,EAAzB,aAAT,EAAS,qBACTP,EAAQe,EAAR,OAJF,KAQFG,KAlDc,SAkDV,GACF,GAAKrF,GAAOA,EAAR,SAAuBA,EAAA,QAA3B,SAEA,IAAM8E,EAAU9E,EAAA,uBAAhB,uBAEA,OAAI8E,EAAA,OAAJ,CACA,IAAMI,EAAYJ,EAAQA,EAAA,OAA1B,GAEA,IAAII,EAAA,QAAJ,UACKA,EAAA,wBAEL,IAAMI,EAAOH,YAAA,MAAoBxI,OAAOuI,EAAA,QAAxC,WACMK,EAAQxV,KAAA,IAAS,IAAT,EAAd,GAEAqV,YAAW,WACTF,EAAA,4CACAA,EAAA,0CACAf,EAAQe,EAAR,GAEAE,YAAW,WACT,IAAMN,EAAU9E,EAAA,uBAAhB,uBACI,IAAA8E,EAAA,QAAwB9E,EAAA,QAA5B,mBACEA,EAAA,eAAoBA,EAAA,QAApB,wBACOA,EAAA,QAAP,kBAGFkF,EAAA,YAAwBlF,EAAA,YAAekF,EAAvC,cAPF,OALF,QAkBJ,SAASM,GAAT,GACE,MAAwB,qBAAVzZ,KAAd,EAGF,SAAS0Z,GAAT,GACE,IAAM1Z,EAAN,GACMoN,EAAU8E,EAAhB,cAEA,GAAK9E,GAAYA,EAAb,UAAgCA,EAAA,QAAhC,UAA2D8E,EAA/D,IAKA,GAFAA,EAAA,MAEImG,EAAJ,GACEjL,EAAA,mBACAA,EAAA,wBAMA,GAAIA,EAAA,QAAJ,QAA6B,OAO/B,GALApN,EAAA,OAAeoN,EAAA,kBAA4BkL,EAA3C,GACIlL,EAAA,QAAJ,QACEpN,EAAA,MAAcoN,EAAA,QAAd,OAGEiL,EAAJ,GAAqB,CAEnB,GAAIjL,EAAA,QAAJ,gBAAqC,OAErCA,EAAA,wBAAkC,WAChC2L,GAAA,aAEF3L,EAAA,kBAA4BsG,OAAA,YAAkB,WACxCtG,GAAWA,EAAX,SAA8BA,EAAA,QAAlC,kBACEA,EAAA,0BACAA,EAAA,gCAHJ,QAOA2L,GAAA,aAIJ,SAASY,GAAT,GACE,IAAMvM,EAAU8E,EAAhB,cACA,GAAK9E,GAAYA,EAAjB,SAMA,GAJAsG,OAAA,aAAoBtG,EAAA,QAJO,WAQvB,aAAA8E,EAAA,MAAyB9E,EAAA,QAA7B,gBAQE,OAPAA,EAAA,0BACAA,EAAA,wBAF4D,UAK5DA,EAAA,kBAA4BiM,YAAW,WACrCM,GAAA,OAKJjG,OAAA,YAAkB,WACZtG,EAAJ,UACEA,EAAA,uBAGJ2L,GAAA,SAGF,SAASa,GAAT,GACE,IAAMxM,EAAU8E,EAAhB,cAEK9E,GAAYA,EAAjB,UAEIA,EAAA,QAAJ,kBACEA,EAAA,8BAGFsG,OAAA,aAAoBtG,EAAA,QAApB,YAGF,IAAIyM,IAAJ,EAEA,SAASC,GAAT,GACOD,IAAmB3H,EAAA,UAAc,OAAd,OAAgCA,EAAA,UAAc,OAAtE,QACE2H,IAAA,EACAH,GAAA,IAIJ,SAASK,GAAT,GACEF,IAAA,EACAF,GAAA,GAGF,SAASK,GAAT,IACE,IAAIH,KACFA,IAAA,EACAF,GAAA,IAIJ,SAASM,GAAT,OACE,IAAMC,EAAUT,GAAgB7F,EAAhC,OACA,GACEmF,GAAA,QAEF9E,EAAA,QAAaA,EAAA,SAAb,GACAA,EAAA,kBACA,IAAMjU,EAAQ4T,EAAA,OAAd,GACI5T,EAAJ,SACEiU,EAAA,qBAEEjU,EAAJ,QACEiU,EAAA,cAAmBL,EAAA,MAAnB,OAEE5T,EAAJ,SACEiU,EAAA,eAAoBjU,EAApB,QAEEka,IAAJ,GACEjG,EAAA,iCAA8C,CAAEkG,SAAS,IACzDlG,EAAA,+BAA4C,CAAEkG,SAAS,IACvDlG,EAAA,gCAAmD,CAAEkG,SAAS,IAC9DlG,EAAA,mCAEAA,EAAA,iCACAA,EAAA,+BACAA,EAAA,kCAEAA,EAAA,+BACAA,EAAA,6BAEAA,EAAA,wBAb0B,IAgB1BA,EAAA,gCAA6C,CAAEkG,SAAS,MAC9CD,GAAL,GACLE,GAAA,GAIJ,SAASA,GAAT,GACEnG,EAAA,oCACAA,EAAA,qCACAA,EAAA,mCACAA,EAAA,oCACAA,EAAA,sCACAA,EAAA,kCACAA,EAAA,qCACAA,EAAA,kCACAA,EAAA,gCACAA,EAAA,oCACAA,EAAA,+BAGF,SAASoG,GAAT,OACEJ,GAAahG,EAAIL,GAAjB,GAcF,SAAS,GAAT,UACSK,EAAP,QACAmG,GAAA,GAGF,SAASE,GAAT,KACE,GAAI1G,EAAA,QAAkBA,EAAtB,UAIA,IAAM2G,EAAad,GAAgB7F,EAAnC,UACAqG,GAAahG,EAAIL,EAAjB,IAGK,IAAM4G,GAAS,CACpBrc,KADoB,GAEpBgW,OAAA,GACAmG,WAGF,MCtVe,iBAAW,CACxB9P,KADwB,WAGxB8J,WAAY,CACVkG,OAAA,IAGFnK,MAAO,CACLuG,YADK,OAEL6D,OAFK,QAGL3D,SAHK,QAIL4D,MAAO,CACLnb,KADK,QAEL0T,aAAS5V,GAEXsd,UARK,QASLC,iBATK,OAULjO,KAVK,QAWLkO,KAAM,CAACzW,OAXF,QAYL0W,GAAI,CAAC1W,OAZA,QAaL2W,KAbK,QAcLC,QAdK,QAeLC,OAAQ,CACN1b,KAAM,CAACkT,QADD,QAENQ,QAAS,MAEXD,IAnBK,OAoBLjW,OAAQqH,QAGV3D,KAAM,iBAAO,CACXsW,UADW,EAEXmE,WAAY,KAGdrK,SAAU,CACRqC,QADQ,WAEN,IAAMA,EAAN,GAEA,OAAI3V,KAAJ,KAEIA,KAAJ,cAAsB2V,EAAQ3V,KAAR,aAA4BA,KAA5B,UAClBA,KAAJ,aAAqB2V,EAAQ3V,KAAR,YAA2BA,KAA3B,WAHD2V,GAOtBiI,eAXQ,WAWM,MACZ,gBAAO5d,KAAP,WAAwBA,KAAD,UAAkBA,KAAzC,aAEF6d,YAdQ,WAeN,OAAI7d,KAAJ,UAEOkV,QACLlV,KAAK8d,QACL9d,KAAK6Y,WADL,OAEA7Y,KAAK6Y,WAFL,WAGA7Y,KAAK+d,OAJP,WAOFD,OAxBQ,WAyBN,OAAO9d,KAAKud,IAAMvd,KAAX,MAAwBA,KAA/B,MAEFiU,OAAQ,sBAGVgG,MAAO,CACL+D,OAAQ,iBAGV9L,QAAS,CACP+L,MADO,SACF,GACHje,KAAA,kBAEFke,kBAJO,WAIU,MAEf,EADIf,EAAQnd,KAAZ,MAGMkD,GAAI,GACRoN,MAAO,CACL6N,SAAU,aAAcne,KAAd,OAA4BA,KAAK+d,OAAjC,cAAmDje,GAE/D+V,MAAO7V,KAJe,QAKtB8V,MAAO9V,KALe,OAMtB8S,MANsB,GAOtBiE,WAAY,CAAC,CACX9J,KADW,SAEXxK,MAAOzC,KAAK4d,kBATN,iBAWP5d,KAAKud,GAAK,WAAX,KAXQ,iCAYHvd,KAD0B,YAXvB,IAaNie,MAAOje,KAAKie,SAbN,uBAeH,QAfG,GAuBV,GALA,qBAAWje,KAAP,QACFmd,EAAoB,MAAZnd,KAAKud,IACVvd,KAAKud,KAAOhW,OAAOvH,KAAnB,KADH,MACkCA,KAAKud,GAAGa,MAGxCpe,KAAJ,GAAa,CAGX,IAAIqZ,EAAcrZ,KAAlB,YACIqd,EAAmBrd,KAAKqd,kBAA5B,EAEIrd,KAAJ,aACEqZ,EAAc,UAAGA,EAAH,YAAkBrZ,KAAlB,YAAd,OACAqd,EAAmB,UAAGA,EAAH,YAAuBrd,KAAvB,YAAnB,QAGFyV,EAAMzV,KAAKwd,KAAO,YAAlB,cACAjW,OAAA,OAAcrE,EAAd,MAA0B,CACxBqa,GAAIvd,KADoB,GAExBmd,QACAC,UAAWpd,KAHa,UAIxBqZ,cACAgE,mBACAH,OAAQld,KANgB,OAOxByd,QAASzd,KAAKyd,eAGhBhI,GAAOzV,KAAKsd,KAAN,IAAsBtd,KAAtB,MAAN,MAEI,MAAAyV,GAAezV,KAAnB,OAA8BkD,EAAA,WAAmBlD,KAAnB,MAKhC,OAFIA,KAAJ,SAAiBkD,EAAA,aAAqBlD,KAArB,QAEV,CAAEyV,MAAKvS,SAEhBmb,cA9DO,WA8DM,WACX,GAAKre,KAAD,IAAaA,KAAKse,MAAlB,MAAiCte,KAArC,QACA,IAAMqZ,EAAc,UAAGrZ,KAAKqZ,YAAR,YAAuBrZ,KAAK2d,YAA5B,IAApB,OAEMS,EAAO,qBAAH,OAAV,GAEApe,KAAA,WAAe,WAET,eAAqB,QAAD,KAAxB,IACE,gBAIN2Z,OAAQ,gBCtJG,I,UAAA,cAAW,CACxB1M,KADwB,WAGxB6F,MAAO,CACLyL,MADK,QAELC,MAFK,QAGLC,OAHK,QAILC,OAAQxJ,SAGV5B,SAAU,CACRqL,OADQ,WAEN,OAAOzJ,SACJlV,KAAD,SACCA,KADD,QAECA,KAFD,QAGCA,KAJH,SAOF4e,gBATQ,WAUN,MAAO,CACL,kBAAmB5e,KADd,OAEL,gBAAiBA,KAFZ,MAGL,kBAAmBA,KAHd,OAIL,gBAAiBA,KAJZ,MAKL,kBAAmBA,KAAKye,aCD1BI,GAAa,OAAAvJ,EAAA,MAAO,EAAD,QAKvB,EALuB,aAMvB,EAAkB,eAOL,GAAAuJ,GAAA,gBAAoC,CACjD5R,KADiD,QAGjD6F,MAAO,CACLuG,YAAa,CACXrX,KADW,OAEX0T,QAFW,WAGT,OAAK1V,KAAL,UAEOA,KAAK8e,UAAZ,YAF4B,KAKhCC,MATK,QAULC,UAVK,QAWLC,IAXK,QAYLC,KAZK,QAaLC,QAbK,QAcL5J,SAdK,QAeL6J,MAfK,QAgBLC,mBAhBK,QAiBLpK,QAjBK,QAkBLQ,IAAK,CACHzT,KADG,OAEH0T,QAAS,UAEX4J,KAtBK,QAuBLnK,KAvBK,QAwBLnT,KAAM,CACJA,KADI,OAEJ0T,QAAS,UAEXjT,MAAO,MAGTS,KAAM,iBAAO,CACXya,WAAY,kBAGdrK,SAAU,CACRqC,QADQ,WAEN,mFACE,SADK,GAEF,iCAFE,OAAP,IAGE,kBAAmB3V,KAHd,SAIL,eAAgBA,KAJX,MAKL,gBAAiBA,KALZ,OAML,kBAAmBA,KANd,SAOL,qBAAsBA,KAPjB,WAQL,aAAcA,KART,IASL,eAAgBA,KATX,MAUL,gBAAiBA,KAVZ,MAWL,cAAeA,KAXV,KAYL,cAAeA,KAZV,KAaL,iBAAkBA,KAbb,QAcL,kBAAmBA,KAdd,SAeL,eAAgBA,KAfX,MAgBL,eAAgBA,KAhBX,MAiBL,eAAgBA,KAjBX,QAkBL,iBAAkBA,KAlBb,QAmBL,gBAAiBA,KAnBZ,GAoBL,cAAeA,KApBV,KAqBL,cAAeA,KArBV,KAsBL,aAAcA,KAtBT,KAuBFA,KAvBE,cAwBFA,KAxBE,cAyBFA,KAzBE,kBA0BFA,KAAK4e,kBAGZrL,kBA/BQ,WAgCN,IAAIvT,KAAJ,SAEA,OAAO,0CAAP,OAEF4d,eApCQ,WAoCM,MACN2B,GAAgBvf,KAAKkf,OAAQlf,KAAb,KAAwB,CAAEwf,QAAQ,GACxD,OAAIxf,KAAJ,WACK,SAAOA,KAAP,cAEPyf,MAzCQ,WA0CN,OAAQzf,KAAD,OAAeA,KAAf,QAA8BA,KAA9B,WAAgDA,KAAvD,MAEF0f,WA5CQ,WA6CN,OAAOxK,SACJlV,KAAD,OACCA,KADD,OAECA,KAFD,WAGCA,KAHD,YAICA,KAJD,WAKCA,KALD,QAMmB,MAAlBA,KAAKoT,WAAqBC,OAAOrT,KAAP,WAP7B,KAUF2f,QAvDQ,WAwDN,OAAOzK,QACLlV,KAAKkf,MACLlf,KAFF,MAKFiU,OA7DQ,WA8DN,yBACKjU,KAAKgU,oBAKdpB,QA1GiD,WA0G1C,WACCgN,EAAgB,CACpB,CAAC,OADmB,QAEpB,CAAC,UAFmB,YAGpB,CAAC,QAHH,YAOAA,EAAA,SAAsB,YAA4B,0BAA3B,EAA2B,KAA5B,EAA4B,KAC5C,wBAAJ,IAA0C,eAASrQ,EAAUsQ,EAAnB,OAI9C3N,QAAS,CACP+L,MADO,SACF,IAEFje,KAAD,qBAA6BA,KAA7B,KAAyC2U,EAAzC,QAAqD3U,KAAK8f,IAA1D,OACA9f,KAAA,iBAEAA,KAAA,WAAkBA,KAAlB,UAEF+f,WARO,WASL,OAAO/f,KAAKmQ,eAAe,OAAQ,CACjCI,YAAa,kBACZvQ,KAAKiW,OAFR,UAIF+J,UAbO,WAcL,OAAOhgB,KAAKmQ,eAAe,OAAQ,CACjC0F,MAAO,iBACN7V,KAAKiW,OAAOgK,QAAU,CAACjgB,KAAKmQ,eAAe,EAAmB,CAC/D2C,MAAO,CACLoE,eADK,EAEL9U,KAFK,GAGL2R,MAAO,SAMf6B,OAjJiD,SAiJ3C,GACJ,IAAM2C,EAAW,CACfvY,KADe,aAEfA,KAAKmf,SAAWnf,KAFlB,aAIA,EAAsBA,KAAtB,oBAAM,EAAN,EAAM,IAAOkD,EAAb,EAAaA,KACPgd,EAAWlgB,KAAKyf,MAClBzf,KADa,mBAEbA,KAFJ,aAYA,MARA,WAAIyV,IACFvS,EAAA,WAAmBlD,KAAnB,KACAkD,EAAA,eAAuBlD,KAAvB,UAEFkD,EAAA,YAAoB,CAAC,SAAU,UAAUid,SAAS,OAA9B,OAA8B,CAAOngB,KAArC,QAChBA,KADgB,MAEhBogB,KAAA,UAAepgB,KAFnB,OAIOgW,EAAEP,EAAKzV,KAAKuZ,SAAWrW,EAAOgd,EAASlgB,KAAD,MAArC,GAAR,MCjMEqgB,I,wCAAU,CACdC,UADc,gBAEdC,UAAW,UAGb,SAASC,GAAT,GACE,IADgC,EAC1BC,EAAN,GADgC,IAGhB3K,EAAA,MAAYuK,GAA5B,YAHgC,IAGhC,2BAAgD,KAAhD,EAAgD,QAC9C,EAAiB5L,EAAA,MAAQ4L,GAAzB,iCAAI,EAAJ,KAAI,EAAJ,KACA7d,EAAMA,EAAN,OACA,IAIA,kBAAWiQ,IACTA,EAAMA,EAAN,QAEFgO,EAAS,eAAT,QAb8B,8BAgBhC,SASY,cACZ,IAD+B,EACzBC,EAAN,GACI9T,EAAYhN,UAAhB,OAIA,MAAOgN,IAGL,cAAarF,OAAA,KAAY3H,UAAzB,mBACE,OADF,EAAwC,KACtC,GAEE,YACA,iBACMA,UAAA,GAAJ,KACE8gB,EAAA,GAAoBC,GAAaD,EAAD,GAAoB9gB,UAAA,GAApD,KAEF,MACF,YACMA,UAAA,GAAJ,KACE8gB,EAAA,GAAoBE,GAAYF,EAAD,GAAoB9gB,UAAA,GAAnD,KAEF,MAEF,kBACE,IAAKA,UAAA,GAAL,GACE,WAEF,IAAI8gB,EAAA,KACFA,EAAA,OAEEA,EAAJ,KAEEA,EAAA,SAEFA,EAAA,IAAqB9gB,UAAA,MAArB,OACA,MAMF,SACA,eACMA,UAAA,GAAJ,KACE8gB,EAAA,GAAoBG,GAAeH,EAAD,GAAoB9gB,UAAA,GAAtD,KAEF,MAEF,YACA,YACA,eACA,kBACA,kBACA,WACA,iBACE,IAAKA,UAAA,GAAL,GACE,MAEG8gB,EAAL,KACEA,EAAA,OAEFA,EAAA,oCAAyB9gB,UAAA,GAAL,IAA4B8gB,EAAY7G,IAC5D,MAEF,QACO6G,EAAL,KACEA,EAAA,GAAoB9gB,UAAA,GAApB,IAMV,SAGI,iBAIJ,SACA,GAEAJ,EAAS,eAA8B,kBAAXA,EAAsBghB,GAA7B,GAArBhhB,GAEQA,EAAA,OAA6C,kBAAXgQ,EAAsBgR,GAA7B,GAAnC,IAJoBhhB,EADAgQ,EAQhB,iBACJ,SACA,GAEOhQ,EAAS,yBAAH,GAFOgQ,EADAhQ,EAMhB,cAIJ,8CAAc,OAAO,UAAP,8BACd,8CAAc,OAAO,UAAP,8BAId,IAFA,IAAMshB,EAAN,GAESlU,EAAT,EAAgBA,KAAM,CACpB,IAAMxD,EAAN,EAAS,qBAAT,OAAS,YAAT,GACA,IAAK,IAAL,OACOA,EAAL,KAEI0X,EAAJ,GAGEA,EAAA,GAAe,UAAyB1X,EAAzB,GAAqC0X,EAApD,IAGAA,EAAA,GAAc1X,EAAd,IAKN,SC5JF,SAAS2X,KAEkC,UADzCD,EACyC,uDAF3C,GAE2C,mBAF3C,EAE2C,iCAF3C,EAE2C,kBAGzC,OAAO,EAAAxM,SAAA,0BAAP,IAGI,eAGS,IADb0M,EACa,uDAHT,iBAGS,uCAEb,MAAO,CACL/T,OAEAgU,YAHK,EAKLnO,MAAO,CACLoO,MAAO,CACLlf,KADK,QAEL0T,SAAS,GAEXyL,YAAa,CACXnf,KADW,QAEX0T,SAAS,GAEX0L,cAAe,CACbpf,KADa,QAEb0T,SAAS,GAEX2L,KAAM,CACJrf,KADI,OAEJ0T,QAAS2L,GAEXL,OAAQ,CACNhf,KADM,OAEN0T,QAASsL,IAIbpL,OA5BK,SA4BC,KACJ,IAAMH,EAAM,aAAH,OAAgB3M,EAAA,qBAAzB,IACM5F,EAAkB,CACtB4P,MAAO,CACL7F,OACAoU,KAAMvY,EAAA,MAAcuY,MAEtBtL,GAAI,CACFuL,YADE,SACS,GACT5K,EAAA,sBAA2B5N,EAAA,MAA3B,OACA4N,EAAA,4BAAiC5N,EAAA,MAAjC,UA2CN,OAtCIA,EAAA,MAAJ,gBACE5F,EAAA,SAAiB6d,GAAiB7d,EAAA,GAAD,OAAkB,SAAAwT,GACjD,IAAM,EAAN,EAAM,YAAN,EAAM,aAAN,EAAM,YAAsC6K,EAA5C,EAA4CA,aAC5C7K,EAAA,yBAA8B,CAC5B8K,SAAU9K,EAAA,MADkB,SAE5B+D,IAAK/D,EAAA,MAFuB,IAG5B6D,KAAM7D,EAAA,MAHsB,KAI5B3C,MAAO2C,EAAA,MAJqB,MAK5BhD,OAAQgD,EAAA,MAAShD,QAEnBgD,EAAA,0BACAA,EAAA,UAAe+K,EAAf,KACA/K,EAAA,WAAgBgL,EAAhB,KACAhL,EAAA,YAAiBiL,EAAjB,KACAjL,EAAA,aAAkB6K,EAAlB,QAEFre,EAAA,cAAsB6d,GAAiB7d,EAAA,GAAD,YAAuB,SAAAwT,GAC3D,GAAIA,GAAMA,EAAV,yBAAuC,CACrC,MAA+CA,EAA/C,yBAAM,EAAN,EAAM,WAAN,EAAM,MAAN,EAAM,OAAN,EAAM,MAA8BhD,EAApC,EAAoCA,cAC7BgD,EAAP,yBACAA,EAAA,eAAoB8K,GAApB,GACA9K,EAAA,UAAe+D,GAAf,GACA/D,EAAA,WAAgB6D,GAAhB,GACA7D,EAAA,YAAiB3C,GAAjB,GACA2C,EAAA,aAAkBhD,GAAlB,QAIF5K,EAAA,MAAJ,cACE5F,EAAA,SAAiB6d,GAAiB7d,EAAA,GAAD,OAAkB,SAAAwT,GAChDA,EAAA,gBAA6BA,EAAA,MAA7B,QACDA,EAAA,wBAEFxT,EAAA,cAAsB6d,GAAiB7d,EAAA,GAAD,YAAuB,SAAAwT,GAC3D,IAAQA,EAAA,cAAoBA,EAAA,iBAApB,QAILV,EAAEP,EAAKmM,GAAU9Y,EAAD,KAAf,GAAqCA,EAA7C,YAKA,iBAGW,IAAfuY,EAAe,uDAHX,SAKJ,MAAO,CACLpU,OAEAgU,YAHK,EAKLnO,MAAO,CACLuO,KAAM,CACJrf,KADI,OAEJ0T,QAAS2L,IAIbzL,OAZK,SAYC,KACJ,OAAOI,EAAE,aAEP4L,GAAU9Y,EAAD,KAAe,CACtBgK,MAAO,CAAE7F,QACT8I,GAAI8L,IAEN/Y,EANF,YC5GQ,kBAA8C,IAAnCgZ,EAAmC,uDAA9C,GAAqCxG,EAAS,wDACpDyG,EAAezG,EAAI,QAAzB,SACM0G,EAAiB,SAAH,OAAY,eAAhC,IAEA,MAAO,CACLV,YADK,SACM,GACT5K,EAAA,QAAaA,EAAb,WACAA,EAAA,8BACEuL,WAAYvL,EAAA,MADK,WAEjBwL,SAAUxL,EAAA,MAFO,UAGjB,EAAgBA,EAAA,WAIpByL,MAVK,SAUA,GACH,IAAMC,EAAe1L,EAArB,cAEAA,EAAA,sCAH0B,aAK1BA,EAAA,wBACA,IAAM2B,EAAS,GAAH,OAAM3B,EAAlB,GAAY,MAEZA,EAAA,aAEKA,EAVqB,aAY1BA,EAAA,iBAAsB0L,EAAtB,WAEIN,GAAuBpL,EAA3B,SACEA,EAAA,yBAGF2L,uBAAsB,WACpB3L,EAAA,eAIJ4L,WAjCK,EAkCLC,eAlCK,EAoCLC,MApCK,SAoCA,GACH9L,EAAA,8BACEuL,WADiB,GAEjBC,SAAUxL,EAAA,MAFO,UAGjB,EAAgBA,EAAA,UAGlBA,EAAA,wBACAA,EAAA,mBAA4BA,EAA5B,SACKA,EATqB,aAW1B2L,uBAAsB,kBAAO3L,EAAA,SAA7B,QAGF+L,aACAC,eAAgBD,GAGlB,cACMX,GAAuBpL,EAA3B,SACEA,EAAA,4BAEFiM,EAAA,GAGF,cACE,IAAMvgB,EAAOsU,EAAA,cAAb,GACAA,EAAA,eAAoBA,EAAA,cAApB,SACA,MAAItU,IAAcsU,EAAA,mBACXA,EAAP,gBC9DSkM,IAXsBC,GAA5B,uBACmCA,GAAnC,+BACuBA,GAAvB,kBAC8BA,GAA9B,0BACwBA,GAAxB,mBACuBA,GAAuB,iBAAkB,gBAAhE,UAG0BA,GAA1B,qBACgCA,GAAhC,4BAC6BA,GAA7B,yBACwBA,GAAxB,oBAMMC,IALmBD,GAAzB,oBAC2BA,GAA3B,uBACkCA,GAAlC,+BAC2BA,GAA3B,uBACkCA,GAAlC,+BAC0BA,GAA1B,uBACiCA,GAAjC,8BAC0BA,GAA1B,sBACiCA,GAAjC,8BAG0BE,GAA2B,oBAAqB,MAC/CA,GAA2B,sBAAuB,GAA0B,IAAvG,ICxBD,cAEY,IADhBlJ,EACgB,uDAFZ,QAEJC,EAAgB,uDAFZ,SAIJ,OAAO,cAAW,CAChB7M,KADgB,YAGhB8M,MAAO,CACLF,OACAC,SAGFhH,MAAO,kBACL,EAAQ,CACNkH,UAAU,IAId9W,KAdgB,WAed,MAAO,CACL8f,kBAAmBhjB,KAAK6Z,KAI5BvG,SAAU,CACR2P,cAAe,CACbzf,IADa,WAEX,OAAOxD,KAAP,mBAEFqB,IAJa,SAIV,GACGoR,IAAQzS,KAAZ,oBAEAA,KAAA,oBAEAA,KAAA,eAKNia,MAAO,kBACL,GADG,SACH,GACEja,KAAA,yBAOR,IAAMkjB,GAAY,KAElB,MCjCM,GAAa,OAAA5N,EAAA,MAAO,EAExB,EAAoB,CAAC,WAAY,QAAS,MAFnB,cAAzB,QAQe,aAAkB,CAC/BrI,KAD+B,oBAG/B8J,WAAY,CAAEC,aAEdlE,MAAO,CACLqQ,OAAQ,CACNnhB,KADM,QAEN0T,SAAS,GAEX0N,gBAAiB,CACfphB,KADe,OAEf0T,QAAS,MAEX2N,kBAAmB,CACjBrhB,KAAM,CAACqR,OADU,QAEjBqC,QAAS,MAEX4N,YAAa,CACXthB,KAAM,CAACqR,OADI,QAEXqC,QAAS,KAEX3C,MAAO,CACL/Q,KADK,OAEL0T,QAAS,WAEXhC,OAAQ,CACN1R,KAAM,CAACqR,OADD,QAENqC,QAAS,GAEXwB,cAzBK,QA0BLqM,MA1BK,QA2BL3V,QA3BK,QA4BLqH,QA5BK,QA6BLuO,OA7BK,QA8BLC,QA9BK,QA+BLhhB,MAAO,CACLT,KAAM,CAACqR,OADF,QAELqC,QAAS,IAIbxS,KA1C+B,WA2C7B,MAAO,CACL8f,kBAAmBhjB,KAAKyC,OADnB,EAEL4U,WAAW,IAIf/D,SAAU,CACRoQ,mBADQ,WAEN,OAAO1jB,KAAKmQ,eAAe,MAAOnQ,KAAKgT,mBAAmBhT,KAAKojB,iBAAmBpjB,KAAhD,MAA4D,CAC5FuQ,YAD4F,gCAE5FuF,MAAO9V,KAAK2jB,oBAGhBC,YAPQ,WAQN,OAAO5jB,KAAKmQ,eAAenQ,KAApB,mBAA6C,CAACA,KAArD,mBAEF6jB,gBAVQ,WAWN,OAAO7jB,KAAKkX,cAAgBlX,KAArB,sBAAkDA,KAAzD,qBAEF8jB,eAbQ,WAcN,OAAO9jB,KAAKmQ,eAAe,MAAO,CAChCI,YADgC,4BAEhCuF,MAAO9V,KAAKiU,UAGhB8P,oBAnBQ,WAoBN,OAAO/jB,KAAKmQ,eAAe,MAAOnQ,KAAKgT,mBAAmBhT,KAAxB,MAAoC,CACpEuQ,YADoE,iCAEpEuF,MAAO,CACL/B,MAAO,eAAc/T,KAAD,0BAI1BgkB,sBA3BQ,WA4BN,OAAOhkB,KAAKmQ,eAAe,MAAO,CAChCI,YADgC,mCAEhCsF,MAAO,CACL,2CAA4C7V,KAAKmjB,SAElD,CACDnjB,KAAKikB,eADJ,QAEDjkB,KAAKikB,eAPP,YAUFC,eAtCQ,WAuCN,OAAKlkB,KAAL,OAEOA,KAAKmQ,eAAe,MAAOnQ,KAAKkT,aAAalT,KAAlB,MAA8B,CAC9DuQ,YAD8D,4BAE9DuF,MAAO,CACL/B,MAAO,eAAc,IAAM/T,KAAP,0BALC,MAS3B2jB,gBAhDQ,WAgDO,MACPN,EAA8C,MAA1BrjB,KAAKqjB,kBAC1BrjB,KAAKojB,gBAAkB,EADF,GAEtB3L,WAAWzX,KAFf,mBAIA,UACE6a,QADK,GAAP,iBAEG7a,KAAKmkB,WAAa,QAAnB,OAAsC,eAAcnkB,KAAD,gBAF9C,MAAP,yBAGS,eAAcyG,KAAA,MAAYzG,KAAKokB,iBAAmBpkB,KAArC,uBAHtB,GAMF2V,QA3DQ,WA4DN,uBACE,8BAA+B3V,KAD1B,SAEL,2BAA4BA,KAFvB,MAGL,2BAA4BA,KAHvB,MAIL,8BAA+BA,KAJ1B,SAKL,6BAA8BA,KALzB,WAML,6BAA8BA,KANzB,QAOL,6BAA8BA,KAPzB,QAQL,6BAA8BA,KARzB,WASFA,KAAKqkB,eAGZC,mBAxEQ,WAyEN,OAAOtkB,KAAKkX,cAAgB0L,GAA5B,IAEFuB,WA3EQ,WA4EN,OAAOnkB,KAAKukB,SAASC,MAAQxkB,KAA7B,SAEFokB,iBA9EQ,WA+EN,OAAOpkB,KAAKykB,UAAUzkB,KAAtB,cAEFwX,gBAjFQ,WAkFN,OAAOxX,KAAKykB,UAAUzkB,KAAtB,oBAEF0kB,SApFQ,WAqFN,OAAOxP,QAAQlV,KAAK6Y,WAApB,SAEF5E,OAvFQ,WAwFN,IAAMA,EAAN,GAUA,OARKjU,KAAL,SACEiU,EAAA,UAGGjU,KAAD,eAAJ,MAA2ByX,WAAWzX,KAAX,oBACzBiU,EAAA,MAAe,eAAcjU,KAAD,iBAA5B,MAGF,IAIJkS,QAAS,CACP6N,WADO,WAEL,IAAM4E,EAAO,eAAQ3kB,KAAM,UAAW,CAAEyC,MAAOzC,KAAKgjB,oBAEpD,SAEOhjB,KAAKmQ,eAAe,MAAO,CAChCI,YAAa,8BADf,GAFkB,MAMpBqU,aAVO,WAWL,IAAMC,EAAY7kB,KAAlB,WAMA,OAJIA,KAAJ,WACE6kB,EAAA,MAAkB7kB,KAAlB,SAGF,GAEFikB,eAnBO,SAmBO,GACZ,OAAOjkB,KAAKmQ,eAAe,MAAOnQ,KAAKgT,mBAAmBhT,KAAxB,MAAoC,CACpEuQ,YADoE,mCAEpEsF,MAAO,kBACL,GAAQ,OAIdiP,QA3BO,SA2BA,GACL,GAAK9kB,KAAL,UAEA,MAAkBA,KAAK8f,IAAvB,wBAAQ/L,EAAR,EAAQA,MAER/T,KAAA,cAAqB2U,EAAA,UAArB,MAEFgE,UAlCO,SAkCE,OACP3Y,KAAA,aAEFykB,UArCO,SAqCE,GACP,OAAIhiB,EAAJ,EAAsB,EAClBA,EAAJ,IAAwB,IACjBgV,WAAP,KAIJ7B,OAnM+B,SAmMzB,GACJ,IAAM1S,EAAO,CACXqN,YADW,oBAEXD,MAAO,CACLsI,KADK,cAEL,gBAFK,EAGL,gBAAiB5Y,KAHZ,iBAIL,gBAAiBA,KAAKkX,mBAAgBpX,EAAYE,KAAKwX,iBAEzD3B,MAAO7V,KARI,QASX+W,WAAY,CAAC,CACX9J,KADW,YAEXxK,MAAOzC,KAAK2Y,YAEd7C,MAAO,CACLuE,OAAQra,KAAKqa,OAAS,OADjB,EAEL3G,OAAQ1T,KAAKmjB,OAAS,eAAcnjB,KAA5B,QAFH,EAGLya,IAAKza,KAAKya,IAAM,OAAI3a,GAEtBiW,GAAI/V,KAAK4kB,gBAGX,OAAO5O,EAAE,MAAO9S,EAAM,CACpBlD,KADoB,eAEpBA,KAFoB,mBAGpBA,KAHoB,eAIpBA,KAJoB,YAKpBA,KALF,kBCvPJ,MCce,0BAA+B,CAC5CiN,KAD4C,WAG5C6F,MAAO,CACLqM,QAAS,CACPnd,KAAM,CAACkT,QADA,QAEPQ,SAAS,GAEXqP,aAAc,CACZ/iB,KAAM,CAACqR,OADK,QAEZqC,QAAS,IAIbxD,QAAS,CACP8S,YADO,WAEL,WAAIhlB,KAAKmf,QAA0B,KAE5Bnf,KAAKiW,OAAOgP,UAAYjlB,KAAKmQ,eAAe,GAAiB,CAClE2C,MAAO,CACLsH,UADK,EAELrH,OAAyB,IAAjB/S,KAAKmf,SAAN,KAA0Bnf,KAAKmf,QACjCnf,KAAK+S,OADH,UAEH/S,KAJC,QAKL0T,OAAQ1T,KALH,aAMLkX,eAAe,SCzBV,UAAA5B,EAAA,MAAO,GAAD,GAAN,UAIN,CACPrI,KADO,SAGP6F,MAAO,CACLpT,KADK,QAELwlB,MAFK,QAGLC,IAHK,OAIL/V,KAJK,QAKL2V,aAAc,CACZ/iB,KAAM,CAACqR,OADK,QAEZqC,QAAS,GAEX0P,OAAQlQ,SAGV5B,SAAU,CACRqC,QADQ,WAEN,sCACE,UADK,GAEF,iCAFE,OAAP,IAGE,eAAgB3V,KAHX,KAIL,gBAAiBA,KAJZ,MAKL,eAAgBA,KALX,YAML,kBAAmBA,KANd,QAOL,mBAAoBA,KAPf,SAQL,iBAAkBA,KARb,QASF,wCAGPiU,OAdQ,WAeN,IAAM6B,EAAK,kBACN,sCAOL,OAJI9V,KAAJ,MACE8V,EAAA,0BAA2B9V,KAA3B,2CAGF,IAIJkS,QAAS,CACP8S,YADO,WAEL,IAAMpP,EAAS,oCAAf,MAEA,SAEO5V,KAAKmQ,eAAe,MAAO,CAChCI,YADgC,mBAEhC/N,IAAK,YACJ,CAHH,IAFoB,OASxBoT,OAvDO,SAuDD,GACJ,MAAsB5V,KAAtB,oBAAM,EAAN,EAAM,IAAOkD,EAAb,EAAaA,KASb,OAPAA,EAAA,MAAalD,KAAb,OAEIA,KAAJ,cACEkD,EAAA,MAAaA,EAAA,OAAb,GACAA,EAAA,kBAGK8S,EAAEP,EAAKzV,KAAKgT,mBAAmBhT,KAAxB,MAAN,GAAiD,CACvDA,KADuD,cAEvDA,KAAKiW,OAFP,aCnFEoP,GAAe,eAArB,mBAEMC,IADgB,eAAtB,oBACkB,eAAlB,iBCEMC,IDDa,eAAnB,iB,wCCCoB,CAAC,KAAM,KAAM,KAAjC,OAEMC,GAAmB,WACvB,OAAOD,GAAA,QAAmB,cAKxB,OAJAzS,EAAA,GAAa,CACX9Q,KAAM,CAACkT,QAASrO,OADL,QAEX6O,SAAS,GAEX,IALF,IADuB,GAUnB+P,GAAe,WACnB,OAAOF,GAAA,QAAmB,cAKxB,OAJAzS,EAAM,SAAW,eAAjB,IAAoC,CAClC9Q,KAAM,CAAC6E,OAD2B,QAElC6O,QAAS,MAEX,IALF,IADmB,GAUfgQ,GAAc,WAClB,OAAOH,GAAA,QAAmB,cAKxB,OAJAzS,EAAM,QAAU,eAAhB,IAAmC,CACjC9Q,KAAM,CAAC6E,OAD0B,QAEjC6O,QAAS,MAEX,IALF,IADkB,GAUdiQ,GAAU,CACdC,IAAKre,OAAA,KADS,IAEd8Q,OAAQ9Q,OAAA,KAFM,IAGdse,MAAOte,OAAA,UAGT,SAASue,GAAT,OACE,IAAIC,EAAJ,EACA,GAAI,MAAAtT,IAAJ,IAAmBA,EAAnB,CAGA,KAAU,CACR,IAAMuT,EAAanM,EAAA,UAAnB,IACAkM,GAAa,IAAJ,OAAT,GAKF,MAAI,QAAA/jB,GAAmB,KAAAyQ,IAAvB,IAAqCA,GAKrCsT,GAAa,IAAJ,OAAT,GACOA,EAAP,eAJSA,EAAP,eAOJ,IAAME,GAAQ,IAAd,IAEe,iBAAW,CACxBhZ,KADwB,QAExBgU,YAFwB,EAGxBnO,MAAO,6DACLoT,KAAM,CACJlkB,KAAM,CAACkT,QAASrO,OADZ,QAEJ6O,SAAS,IAHN,IAAF,IAMH2C,OAAQ,CACNrW,KAAM,CAAC6E,OADD,QAEN6O,QAAS,OARN,IAAF,IAWHmQ,MAAO,CACL7jB,KAAM,CAAC6E,OADF,QAEL6O,QAAS,OAbN,IAAF,IAgBHyQ,UAAW,CACTnkB,KADS,OAET0T,QAFS,KAGT0Q,UAAY,SAAAhU,GAAD,MAAc,CAAC,OAAQ,QAAS,MAAO,SAAU,WAAY,WAAW+N,SAAS/N,KAE9FqD,IAAK,CACHzT,KADG,OAEH0T,QAAS,SAGbE,OA7BwB,SA6BlB,EA7BkB,GA6BoB,IAAjC,EAAiC,EAAjC,QAAiC,EAAjC,OAAiC,EAAjC,SAELyQ,GAFsC,EAARlN,OAElC,IACA,IAAK,IAAL,OACEkN,GAAYxf,OAAQiM,EAApB,IAEF,IAAIwT,EAAYL,GAAA,IAAhB,GA4BA,OA1BA,GAAgB,iBAGd,EACA,SAHAK,EADc,GAId,GACEX,GAAA,YAAsB,SAAA9L,GACpB,IAAMpX,EAAoCqQ,EAA1C,GACMiT,EAAYD,GAAgB9jB,EAAM6X,EAAxC,GACA,GAAeyM,EAAA,WAInB,IAAMC,EAAgBD,EAAA,MAAe,SAAAP,GAAS,OAAIA,EAAA,WAAlD,WAEAO,EAAA,SAEEV,KAAMW,IAAkBzT,EAFX,MAAf,+BAGUA,EAAR,MAAuBA,EAHV,MAAf,kCAIaA,EAAX,QAA4BA,EAJf,QAAf,iCAKYA,EAAV,OAA0BA,EALb,OAAf,sCAMiBA,EAAf,WAAmCA,EAAMqT,WAN3C,IASAF,GAAA,SAvBc,GA0BTjQ,EAAElD,EAAD,IAAY8O,GAAU1e,EAAM,CAAE2S,MAAOyQ,IAA7C,M,oBChIU,eAEZ,OAAO,cAAW,CAChBrZ,KAAM,KAAF,OADY,GAGhBgU,YAHgB,EAKhBnO,MAAO,CACL0T,GADK,OAEL/Q,IAAK,CACHzT,KADG,OAEH0T,QAAS,QAIbE,OAbgB,SAaV,EAbU,GAaoB,IAAzB,EAAyB,EAAzB,QAAyB,EAAzB,KAAe2C,EAAU,EAAVA,SACxBrV,EAAA,YAAoB,UAAG+J,EAAH,YAAW/J,EAAA,aAAZ,IAAnB,OAEA,IAAQoN,EAAR,EAAQA,MACR,KAAW,CAETpN,EAAA,SACA,IAAMyS,EAAUpO,OAAA,gBAA0B,SAAA/E,GAGxC,YAAIA,EAAgB,OAAO,EAE3B,IAAMC,EAAQ6N,EALgC,GAS9C,OAAI9N,EAAA,WAAJ,UACEU,EAAA,YACA,GAGKT,GAAP,kBAAuBA,KAGrBkT,EAAJ,SAAoBzS,EAAA,wBAAwByS,EAAA,KAAxB,OAQtB,OALI7C,EAAJ,KACE5P,EAAA,SAAgBA,EAAA,UAAhB,GACAA,EAAA,YAAmB4P,EAAnB,IAGKkD,EAAElD,EAAD,MAAR,MC1CS,ICQf,GDRe,0BAAyB,CACtC7F,KADsC,cAEtCgU,YAFsC,EAGtCnO,MAAO,CACL0T,GADK,OAEL/Q,IAAK,CACHzT,KADG,OAEH0T,QAAS,OAEX+Q,MAAO,CACLzkB,KADK,QAEL0T,SAAS,IAGbE,OAdsC,SAchC,EAdgC,GAcF,IAClC,EADS,EAAyB,EAAzB,QAAyB,EAAzB,KAAe2C,EAAU,EAAVA,SAEhBjI,EAAR,EAAQA,MA2BR,OA1BA,IAEEpN,EAAA,SACAyS,EAAUpO,OAAA,gBAA0B,SAAA/E,GAGlC,YAAIA,EAAgB,OAAO,EAE3B,IAAMC,EAAQ6N,EAL0B,GASxC,OAAI9N,EAAA,WAAJ,UACEU,EAAA,YACA,GAGKT,GAAP,kBAAuBA,MAIvBqQ,EAAJ,KACE5P,EAAA,SAAgBA,EAAA,UAAhB,GACAA,EAAA,YAAmB4P,EAAnB,IAGKkD,EACLlD,EADM,IAEN8O,GAAU1e,EAAM,CACdqN,YADc,YAEdsF,MAAOvB,MAAW,CAChB,mBAAoBxB,EAAM2T,QADrB,OAEG9Q,GAFH,MAJX,M,8BC1BJ,SAAS+Q,GAAT,GACE,MAAO,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,OAAOC,MAAK,SAAAlU,GAAG,OAAImU,EAAA,SAA9D,MAGF,SAASC,GAAT,GACE,MAAQ,0CAA0CC,KAAK5H,IAAS,UAAU4H,KAAlE,IAAgF5H,EAAA,OAAxF,GAdF,YACE,mBACA,kBACA,oBACA,mBACA,kBACA,oBANF,CAAK6H,QAAL,KAiBA,IAAM,GAAQ,OAAAzR,EAAA,MAAO,EAAD,KAIlB,QAJY,OAML,CACPrI,KADO,SAGP6F,MAAO,CACLkU,MADK,QAELzN,SAFK,QAGLgB,KAHK,QAILC,MAJK,QAKLpY,KAAM,CAACiR,OALF,QAMLoC,IAAK,CACHzT,KADG,OAEHgY,UAFG,EAGHtE,QAAS,MAIbpC,SAAU,CACRqL,OADQ,WAEN,UAEFsI,iBAJQ,WAKN,OAAO/R,QACLlV,KAAK2S,WAAWsL,OAASje,KAAK2S,WADhC,aAMJT,QAAS,CACPgV,QADO,WAEL,IAAIC,EAAJ,GAGA,OAFInnB,KAAKiW,OAAT,UAAyBkR,EAAWnnB,KAAKiW,OAAOP,QAAQ,GAAG4J,KAAlC,QAElB,eAAkBtf,KAAzB,IAEFonB,QAPO,WAQL,IAAMC,EAAQ,CACZ3I,OAAQ1e,KADI,OAEZwe,MAAOxe,KAFK,MAGZ2e,OAAQ3e,KAHI,OAIZue,MAAOve,KAJK,MAKZye,OAAQze,KAAKye,QAGT6I,EAAe,wBAAiB,SAAA9kB,GAAG,OAAI6kB,EAA7C,MAEA,OACGC,GAAgBP,GAAjB,IAA4C,eAAc/mB,KAD5D,OAKFunB,eAvBO,WAwBL,MAAO,CACLhX,YADK,qBAELsF,MAAO,CACL,mBAAoB7V,KADf,SAEL,eAAgBA,KAFX,KAGL,eAAgBA,KAHX,iBAIL,gBAAiBA,KAJZ,MAKL,gBAAiBA,KAAKgnB,OAExB1W,MAAO,gBACL,eAAgBtQ,KADX,iBAELuZ,SAAUvZ,KAAKinB,kBAAoBjnB,KAF9B,SAGLgC,KAAMhC,KAAKinB,iBAAmB,cAHzB,GAIFjnB,KAAK0S,QAEVqD,GAAI/V,KAAK2S,aAGb6U,kBA1CO,WA2CL,IAAMC,EAAWznB,KAAjB,UACM0nB,EAAc,iCACf1nB,KADe,kBAAH,IAEf8V,MAAO2R,EAAW,CAChBA,WACA/T,OAFgB,EAGhBK,MAAO0T,QACL3nB,IAIN,OAFAE,KAAA,eAEA,GAEF2nB,YAxDO,SAwDI,GACTzkB,EAAA,uCAAkBA,EAAL,OAAoBlD,KAAKqkB,cACtCrkB,KAAA,aAAkBA,KAAlB,UAEF4nB,eA5DO,SA4DO,KACZ,IAAMC,EAAN,GACM3kB,EAAOlD,KAAb,iBAEI4mB,EAJwC,iBAOtCkB,EAAiB5I,EAAA,QAAvB,KACM6I,EAAiBD,IAAvB,EAEA,EAEED,EAAA,SAEAjB,EAAW1H,EAAA,QAAX,GACIwH,GAAJ,KAA8BE,EAAA,KAGhC1jB,EAAA,YACAA,EAAA,YAEA,IAAMukB,EAAWznB,KAAjB,UAKA,OAJA,IAAckD,EAAA,MAAa,CAAEukB,aAE7BznB,KAAA,eAEOgW,EAAEhW,KAAKinB,iBAAmB,SAAWjnB,KAApC,MAAR,IAEFgoB,cAxFO,SAwFM,KACX,IAAMC,EAAqB,CACzBpS,MADyB,cAEzBvF,MAAO,CACLkI,MADK,6BAELC,QAFK,YAGLG,KAHK,MAIL,eAAe,IAIbxW,EAAOpC,KAAb,UASA,OARA,IACEioB,EAAA,MAAgB,CACdR,SADc,EAEd/T,OAFc,EAGdK,MAAO3R,IAIJ4T,EAAEhW,KAAKinB,iBAAmB,SAAzB,OAA4CjnB,KAA5C,oBAAsE,CAC5EgW,EAAE,MAAOiS,EAAS,CAChBjS,EAAE,OAAQ,CACR1F,MAAO,CACL4X,EAAGhJ,UAMbiJ,uBAtHO,SAsHe,KAIpB,IAAMjlB,EAAkB,CACtB2S,MAAO,CACL,qBAAqB,IAInBzT,EAAOpC,KAAb,UACA,IACEkD,EAAA,MAAa,CACXukB,SADW,EAEX/T,OAFW,EAGXK,MAAO3R,IAIXpC,KAAA,eAEA,IAAMooB,EAAYlJ,EAAlB,UAIA,OAHAhc,EAAA,MAAagc,EAAb,MACAhc,EAAA,SAAgBA,EAAhB,GAEO8S,EAAEhW,KAAKinB,iBAAmB,SAAzB,OAA4CjnB,KAA5C,oBAAsE,CAC5EgW,EAAEoS,EADJ,OAMJxS,OAhLO,SAgLD,GACJ,IAAMsJ,EAAOlf,KAAb,UAEA,wBAAWkf,EACL2H,GAAJ,GACS7mB,KAAKgoB,cAAc9I,EAA1B,GAEKlf,KAAK4nB,eAAe1I,EAA3B,GAGKlf,KAAKmoB,uBAAuBjJ,EAAnC,MAIW,iBAAW,CACxBjS,KADwB,SAGxBob,aAHwB,GAKxBpH,YALwB,EAOxBrL,OAPwB,SAOlB,EAPkB,GAOK,IAAlB,EAAkB,EAAlB,KAAQ2C,EAAU,EAAVA,SACb4O,EADuB,GAe3B,OAXIjkB,EAAJ,WACEikB,EAAWjkB,EAAA,sBACTA,EAAA,SADS,WADM,SAOVA,EAAA,SAAP,mBACOA,EAAA,SAAP,WAGK8S,EAAE,GAAD,EAAcmR,EAAW,CAAH,GAA9B,MC/OW,I,8BAAA,OAAA7R,EAAA,gBAA0B,CACvCrI,KADuC,eAGvC6F,MAAO,CACLwV,YAAa,CAACzhB,OADT,QAEL0hB,aAAc1hB,QAGhByM,SAAU,CACRkV,oBADQ,WAEN,OAAOnV,OAAOrT,KAAd,cAEFyoB,YAJQ,WAKN,OAAOzoB,KAAKwoB,oBACR,CAAEE,cAAgB,EAAI1oB,KAAL,wBAAuC,UAD5D,GAIF2oB,cATQ,WAUN,OAAK3oB,KAAL,YAEOA,KAAKmQ,eAAe,MAAO,CAChC2F,MAAO9V,KADyB,YAEhCuQ,YAAa,wBAJe,KASlC2B,QAAS,CACP6N,WADO,WAEL,OAAO/f,KAAKmQ,eAAe,MAAO,CAChCI,YADgC,wBAEhCsF,MAAO7V,KAAKuoB,cACXvoB,KAAKiW,OAHR,WAOJL,OApCuC,SAoCjC,GACJ,OAAOI,EAAE,MAAO,CACdzF,YADc,eAEduF,MAAO9V,KAFO,iBAGd+V,GAAI/V,KAAK6Y,YACR,CACD7Y,KADC,cAEDA,KANF,mBC9CJ,MC0BM4oB,GAAiC,qBAAXzS,QAA0B,yBAAtD,OAGe,UAAAb,EAAA,MAAO,GAAP,eAGN,CACPrI,KADO,QAGP8J,WAAY,CAAEC,aAEdlE,MAAO,CACL+V,IADK,OAELC,QAFK,QAGLC,MAHK,QAILC,SAJK,OAKLC,QALK,OAML1S,QAAS,CACPvU,KADO,OAIP0T,QAAS,iBAAO,CACdwT,UADc,EAEdC,gBAFc,EAGdC,eAAWtpB,KAGf0hB,SAAU,CACRxf,KADQ,OAER0T,QAAS,iBAEX2R,MApBK,OAqBLgC,IAAK,CACHrnB,KAAM,CAAC6E,OADJ,QAEH6O,QAAS,IAEX4T,OAzBK,OA0BLrH,WAAY,CACVjgB,KAAM,CAACkT,QADG,QAEVQ,QAAS,oBAIbxS,KArCO,WAsCL,MAAO,CACLqmB,WADK,GAELC,MAFK,KAGLC,WAHK,EAILC,2BAJK,EAKLC,kBALK,EAMLC,UAAU,IAIdtW,SAAU,CACRkV,oBADQ,WAEN,OAAOnV,OAAOrT,KAAK6pB,cAAcC,QAAU9pB,KAA3C,wBAEF6pB,cAJQ,WAKN,OAAO7pB,KAAKqpB,KAAL,WAAY,eAAOrpB,KAAP,KACf,CACAqpB,IAAKrpB,KAAKqpB,IADV,IAEAC,OAAQtpB,KAAKspB,QAAUtpB,KAAKqpB,IAF5B,OAGAJ,QAASjpB,KAAKipB,SAAWjpB,KAAKqpB,IAH9B,QAIAS,OAAQzW,OAAOrT,KAAKsoB,aAAetoB,KAAKqpB,IAA1B,SACZ,CACFA,IAAKrpB,KADH,IAEFspB,OAAQtpB,KAFN,OAGFipB,QAASjpB,KAHP,QAIF8pB,OAAQzW,OAAOrT,KAAKsoB,aAAN,KAGpByB,cAlBQ,WAmBN,KAAM/pB,KAAK6pB,cAAcR,KAAOrpB,KAAK6pB,cAA/B,SAAwD7pB,KAA9D,UAA8E,MAAO,GAErF,IAAMgqB,EAAN,GACMX,EAAMrpB,KAAKypB,UAAYzpB,KAAK6pB,cAAtB,QAA8C7pB,KAA1D,WAEIA,KAAJ,UAAmBgqB,EAAA,+BAAwChqB,KAAxC,eACnB,GAASgqB,EAAA,6BAET,IAAMR,EAAQxpB,KAAKmQ,eAAe,MAAO,CACvCI,YADuC,iBAEvCsF,MAAO,CACL,0BAA2B7V,KADtB,UAEL,0BAA2BA,KAFtB,QAGL,yBAA0BA,KAAK8oB,SAEjChT,MAAO,CACLkU,gBAAiBA,EAAA,KADZ,MAELC,mBAAoBjqB,KAAKwhB,UAE3Bhf,KAAMxC,KAAKypB,YAIb,OAAKzpB,KAAL,WAEOA,KAAKmQ,eAAe,aAAc,CACvCG,MAAO,CACLrD,KAAMjN,KADD,WAELqhB,KAAM,WAEP,CALH,IAF6BmI,IAWjCvP,MAAO,CACLoP,IADK,WAGErpB,KAAL,UACKA,KAAKkqB,YADWlqB,KAAKO,UAAKT,OAAWA,GAA1C,IAGF,4BAA6B,UAG/BmS,QA9GO,WA+GLjS,KAAA,QAGFkS,QAAS,CACP3R,KADO,SACH,OAQF,IACEqoB,IAAA,GAEC5oB,KAHH,OAMA,GAAIA,KAAK6pB,cAAT,QAAgC,CAC9B,IAAMM,EAAU,IAAhB,MACAA,EAAA,IAAcnqB,KAAK6pB,cAAnB,QACA7pB,KAAA,oBAGEA,KAAK6pB,cAAT,KAA4B7pB,KAAKkqB,cAEnCE,OAvBO,WAwBLpqB,KAAA,SACAA,KAAA,aACAA,KAAA,aAAmBA,KAAnB,KAGEA,KAAKwpB,QACJxpB,KAAK6pB,cAAcR,IAAI9iB,SAAS,SAAWvG,KAAK6pB,cAAcR,IAAIgB,WAFrE,yBAIMrqB,KAAKwpB,MAAMc,eAAiBtqB,KAAKwpB,MAArC,cACExpB,KAAA,aAAoBA,KAAKwpB,MAAzB,aACAxpB,KAAA,sBAA6BA,KAAKwpB,MAAMG,aAAe3pB,KAAKwpB,MAA5D,eAEAxpB,KAAA,0BAINuqB,QAxCO,WAyCLvqB,KAAA,YACAA,KAAA,cAAoBA,KAApB,MAEFwqB,OA5CO,WA8CDxqB,KAAJ,QAAgBA,KAAKupB,WAAavpB,KAAKwpB,MAAMD,YAAcvpB,KAAKwpB,MAAhD,MAElBU,UAhDO,WAgDE,WACDV,EAAQ,IAAd,MACAxpB,KAAA,QAEAwpB,EAAA,OAAe,WAETA,EAAJ,OACEA,EAAA,gBAAsB,SAAAnhB,GACpB,OAAA4K,EAAA,MACE,qEACQ,gBADR,MAEC5K,EAAA,oCAAmCA,EAAnC,SAHQ,IAAX,MADF,KAOQ,EAPR,QASA,YAGJmhB,EAAA,QAAgBxpB,KAAhB,QAEAA,KAAA,YACAA,KAAA,QAAewpB,EAAA,MAAcxpB,KAA7B,OACAA,KAAA,uBAA8BwpB,EAAA,OAAexpB,KAAK6pB,cAAlD,QACAL,EAAA,IAAYxpB,KAAK6pB,cAAjB,IACA7pB,KAAA,kBAAwBA,KAAK6pB,cAA7B,KAEA7pB,KAAA,aAAoBA,KAAKyqB,YAAzB,GACAzqB,KAAA,UAEFyqB,YA9EO,SA8EI,GAAqD,WAA5BC,EAA4B,uDAArD,IACHC,EAAO,SAAPA,IACJ,IAAM,EAAN,EAAM,cAAiBhB,EAAvB,EAAuBA,aAEnBW,GAAJ,GACE,iBACA,wBAA6BX,EAA7B,GACUxE,EAAD,WAAiB,EAAjB,WAAoC,EAApC,UAAJ,MAAyDuF,GAC9D5O,WAAW6O,EAAX,IAIJA,KAEF5K,WA5FO,WA6FL,IAAM6K,EAAiB,mCAAvB,MAOA,OANI5qB,KAAJ,cACEA,KAAA,GAAQ4qB,EAAR,WAA8B,CAC5B9U,MAAO,CAAE/B,MAAO,GAAF,OAAK/T,KAAK2pB,aAAV,SAIlB,GAEFkB,iBAtGO,WAuGL,GAAI7qB,KAAKiW,OAAT,YAA6B,CAC3B,IAAM6U,EAAc9qB,KAAKypB,UACrB,CAACzpB,KAAKmQ,eAAe,MAAO,CAC5BI,YAAa,wBACZvQ,KAAKiW,OAHU,cAApB,GAMA,OAAKjW,KAAL,WAEOA,KAAKmQ,eAAe,aAAc,CACvC2C,MAAO,CACLiY,QADK,EAEL9d,KAAMjN,KAAKiiB,aAHf,GAF6B6I,EAAP,MAY5BlV,OA5OO,SA4OD,GACJ,IAAMoV,EAAO,4BAAb,GAEM9nB,EAAO0e,GAAUoJ,EAAD,KAAa,CACjCza,YADiC,UAEjCD,MAAO,CACL,aAActQ,KADT,IAEL4Y,KAAM5Y,KAAK6oB,IAAM,WAAQ/oB,GAE3B+V,MAAO7V,KAN0B,aASjC+W,WAAY6R,GACR,CAAC,CACD3b,KADC,YAEDmJ,UAAW,CAAE6U,MAAM,GACnBxoB,MAAO,CACL6T,QAAStW,KADJ,KAELuW,QAASvW,KAAKuW,gBAGhBzW,IAUN,OAPAkrB,EAAA,SAAgB,CACdhrB,KADc,cAEdA,KAFc,cAGdA,KAHc,mBAIdA,KAJF,cAOOgW,EAAEgV,EAAD,MAAiBA,EAAzB,aCvSE,GAAc,CAAC,KAAM,KAAM,KAAjC,MAEME,GAAY,CAAC,QAAS,MAA5B,UAEA,SAASC,GAAT,KACE,OAAO,WAAmB,cAExB,OADArY,EAAMsY,EAAS,eAAf,IAAkCC,IAClC,IAFF,IAMF,IAAMC,GAAkB,SAAAlZ,GAAD,MAAc,8CAArC,IACMmZ,GAAaJ,GAAU,SAAS,iBAAO,CAC3CnpB,KAD2C,OAE3C0T,QAF2C,KAG3C0Q,UAAWkF,OAGPE,GAAoB,SAAApZ,GAAD,MAAc,wDAAvC,IACMqZ,GAAeN,GAAU,WAAW,iBAAO,CAC/CnpB,KAD+C,OAE/C0T,QAF+C,KAG/C0Q,UAAWoF,OAGPE,GAAyB,SAAAtZ,GAAD,MAAc,kEAA5C,IACMuZ,GAAoBR,GAAU,gBAAgB,iBAAO,CACzDnpB,KADyD,OAEzD0T,QAFyD,KAGzD0Q,UAAWsF,OAGP,GAAU,CACdE,MAAOrkB,OAAA,KADO,IAEdskB,QAAStkB,OAAA,KAFK,IAGdukB,aAAcvkB,OAAA,UAGVwkB,GAAW,CACfH,MADe,QAEfC,QAFe,UAGfC,aAAc,iBAGhB,SAAS,GAAT,OACE,IAAI/F,EAAYgG,GAAhB,GACA,SAAItZ,EAAJ,CAGA,KAAU,CAER,IAAMuT,EAAanM,EAAA,UAAnB,IACAkM,GAAa,IAAJ,OAAT,GAIF,OADAA,GAAa,IAAJ,OAAT,GACOA,EAAP,eAGF,IAAM,GAAQ,IAAd,IAEe,iBAAW,CACxB9Y,KADwB,QAExBgU,YAFwB,EAGxBnO,MAAO,8CACL2C,IAAK,CACHzT,KADG,OAEH0T,QAAS,OAEXsR,MALK,QAMLgF,UANK,QAOLJ,MAAO,CACL5pB,KADK,OAEL0T,QAFK,KAGL0Q,UAAWkF,KAVR,IAAF,IAaHO,QAAS,CACP7pB,KADO,OAEP0T,QAFO,KAGP0Q,UAAWoF,KAhBR,IAAF,IAmBHM,aAAc,CACZ9pB,KADY,OAEZ0T,QAFY,KAGZ0Q,UAAWsF,KAEVC,IAEL/V,OA7BwB,SA6BlB,EA7BkB,GA6BY,IAAzB,EAAyB,EAAzB,QAAyB,EAAzB,KAAe2C,EAAU,EAAVA,SAEpB8N,EAAJ,GACA,IAAK,IAAL,OACEA,GAAYxf,OAAQiM,EAApB,IAEF,IAAIwT,EAAY,OAAhB,GAyBA,OAvBA,GAAgB,iBAGd,EACA,SAHAA,EADc,GAId,GACE,eAAsB,SAAAzM,GACpB,IAAMpX,EAAiBqQ,EAAvB,GACMiT,EAAY,GAAgB/jB,EAAM6X,EAAxC,GACA,GAAeyM,EAAA,WAInBA,EAAA,SACE,aAAcxT,EADD,UAEb,aAAcA,EAFD,OAAf,iCAGYA,EAAV,OAA0BA,EAHb,OAAf,mCAIcA,EAAZ,SAA8BA,EAJjB,SAAf,yCAKoBA,EAAlB,cAAyCA,EAAMgZ,cALjD,IAQA,YApBc,GAuBT9V,EACLlD,EADM,IAEN8O,GAAU1e,EAAM,CACdqN,YADc,MAEdsF,MAAOyQ,IAJX,MCtHW,I,UAAA,OAAAhR,EAAA,MACb,QADa,OAGN,CACPrI,KADO,cAGP6F,MAAO,CACLmZ,MAAO/W,SAGTU,OAPO,SAOD,GACJ,OAAOI,EAAE,MAAO,CACdzF,YADc,cAEdsF,MAAO,gBACL,qBAAsB7V,KADjB,OAEFA,KAAKqkB,cAEV/T,MAAOtQ,KANO,OAOd+V,GAAI/V,KAAK6Y,YACR7Y,KAAKiW,OARR,aCbAmS,GAAY,eACd,EACA,EACA/W,GACA,EACA,KACA,WACA,MAIa,aAAA+W,GAAiB,QAehC,IAAkBA,GAAW,CAAC8D,KAAA,GAAKC,MAAA,GAAM9G,gBAAaC,aAAU8G,QAAKC,cAAWC,MAAA,GAAMC,KAAA,GAAKC,gBAAA,GAAgBC,QAAKC,WAAA,M,kCCjChH,IAAIxtB,EAAI,EAAQ,QACZgQ,EAAa,EAAQ,QACrBC,EAAyB,EAAQ,QAIrCjQ,EAAE,CAAEM,OAAQ,SAAUC,OAAO,EAAMuG,OAAQmJ,EAAuB,UAAY,CAC5EmL,MAAO,WACL,OAAOpL,EAAWlP,KAAM,KAAM,GAAI,Q,kCCRtC,IAAId,EAAI,EAAQ,QACZgQ,EAAa,EAAQ,QACrBC,EAAyB,EAAQ,QAIrCjQ,EAAE,CAAEM,OAAQ,SAAUC,OAAO,EAAMuG,OAAQmJ,EAAuB,UAAY,CAC5EqP,MAAO,WACL,OAAOtP,EAAWlP,KAAM,QAAS,GAAI,Q","file":"js/about.acc7b95d.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/js/app.5b8d0e0d.js b/docs/js/app.87be5c69.js similarity index 97% rename from docs/js/app.5b8d0e0d.js rename to docs/js/app.87be5c69.js index 8e291f0f41..cffa79e753 100644 --- a/docs/js/app.5b8d0e0d.js +++ b/docs/js/app.87be5c69.js @@ -1,2 +1,2 @@ -(function(e){function t(t){for(var n,o,i=t[0],c=t[1],l=t[2],s=0,p=[];s\n \n \n \n \n \n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?7eb4","webpack:///src/App.vue","webpack:///./src/App.vue?1160","webpack:///./src/App.vue","webpack:///./src/plugins/vuetify.js","webpack:///./src/router/index.js","webpack:///./src/main.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_h","$createElement","_c","_self","staticRenderFns","components","component","VApp","VMain","Vue","use","Vuetify","theme","dark","VueRouter","routes","path","router","base","process","config","productionTip","vuetify","render","h","App","$mount"],"mappings":"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","file":"js/app.87be5c69.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"acc7b95d\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"about\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"8d0e9591\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/jak-project/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[_c('v-main',[_c('router-view')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file From 656489e9424d65e4575e5f706720cc44b2196668 Mon Sep 17 00:00:00 2001 From: water111 <48171810+water111@users.noreply.github.com> Date: Sun, 11 Jul 2021 16:35:25 -0400 Subject: [PATCH 09/63] [decomp] Clean up - part 2 (#687) * temp * temp2 * basic case support * working for or without else * support more cases * clean up to drawable headers * ocean * format json --- common/goos/PrettyPrinter.cpp | 54 +- decompiler/Function/CfgVtx.cpp | 12 + decompiler/IR2/AtomicOpTypeAnalysis.cpp | 8 + decompiler/IR2/Form.cpp | 101 + decompiler/IR2/Form.h | 21 + decompiler/IR2/FormExpressionAnalysis.cpp | 15 +- decompiler/IR2/bitfields.cpp | 4 +- decompiler/ObjectFile/ObjectFileDB.h | 4 +- decompiler/ObjectFile/ObjectFileDB_IR2.cpp | 11 +- decompiler/analysis/insert_lets.cpp | 180 +- decompiler/analysis/type_analysis.cpp | 6 + decompiler/config/all-types.gc | 151 +- .../config/jak1_ntsc_black_label/hacks.jsonc | 15 +- .../jak1_ntsc_black_label/label_types.jsonc | 69 +- .../stack_structures.jsonc | 22 +- .../jak1_ntsc_black_label/type_casts.jsonc | 22 +- .../jak1_ntsc_black_label/var_names.jsonc | 63 +- decompiler/util/DecompilerTypeSystem.h | 2 +- decompiler/util/TP_Type.h | 7 +- decompiler/util/data_decompile.cpp | 178 +- docs/markdown/progress-notes/changelog.md | 4 +- game/common/game_common_types.h | 13 + game/kernel/kboot.cpp | 1 + game/kernel/kboot.h | 17 - game/kernel/kdgo.cpp | 2 +- game/kernel/kmemcard.cpp | 20 +- game/kernel/kmemcard.h | 5 - game/kernel/kscheme.cpp | 3 +- game/overlord/srpc.cpp | 11 + game/overlord/srpc.h | 5 + game/sce/libscf.cpp | 2 +- goal_src/engine/anim/mspace-h.gc | 4 +- goal_src/engine/camera/math-camera-h.gc | 4 + goal_src/engine/camera/math-camera.gc | 1 + goal_src/engine/data/art-h.gc | 2 +- goal_src/engine/debug/debug.gc | 14 +- goal_src/engine/debug/memory-usage-h.gc | 115 +- goal_src/engine/debug/menu.gc | 10 +- goal_src/engine/dma/dma-bucket.gc | 2 +- goal_src/engine/dma/dma-h.gc | 3 +- goal_src/engine/draw/draw-node-h.gc | 13 + goal_src/engine/draw/drawable-ambient-h.gc | 28 +- goal_src/engine/draw/drawable-h.gc | 8 +- goal_src/engine/engine/connect.gc | 2 + goal_src/engine/game/game-info-h.gc | 6 +- goal_src/engine/game/game-info.gc | 4 +- goal_src/engine/game/main-h.gc | 9 +- goal_src/engine/game/main.gc | 1047 +- goal_src/engine/game/settings-h.gc | 32 +- goal_src/engine/game/settings.gc | 445 +- goal_src/engine/game/task/hint-control.gc | 58 +- goal_src/engine/game/video.gc | 40 +- goal_src/engine/gfx/capture.gc | 3 + goal_src/engine/gfx/font-h.gc | 3 + goal_src/engine/gfx/generic/generic.gc | 2 +- goal_src/engine/gfx/hw/display.gc | 32 +- goal_src/engine/gfx/hw/gs.gc | 33 +- goal_src/engine/gfx/lights-h.gc | 3 + goal_src/engine/gfx/ocean/ocean-h.gc | 10 +- goal_src/engine/gfx/ocean/ocean-tables.gc | 22201 +++++++++------- goal_src/engine/gfx/shadow/shadow-cpu.gc | 3 + goal_src/engine/gfx/texture-h.gc | 2 +- goal_src/engine/gfx/texture.gc | 42 +- goal_src/engine/gfx/tfrag/tfrag-h.gc | 2 +- goal_src/engine/gfx/vis/bsp-h.gc | 3 +- goal_src/engine/level/level-h.gc | 18 +- goal_src/engine/level/level.gc | 36 +- goal_src/engine/load/file-io.gc | 71 +- goal_src/engine/target/joint-mod-h.gc | 20 +- goal_src/engine/ui/credits.gc | 16 +- goal_src/engine/ui/progress-h.gc | 6 +- goal_src/engine/ui/progress/progress.gc | 8 +- goal_src/engine/ui/text-h.gc | 4 +- goal_src/engine/ui/text.gc | 131 +- goal_src/kernel-defs.gc | 15 +- goal_src/kernel/gkernel.gc | 11 +- goal_src/kernel/gstate.gc | 9 +- goalc/compiler/Compiler.h | 9 +- goalc/compiler/compilation/Static.cpp | 9 + goalc/compiler/compilation/Type.cpp | 76 +- .../reference/engine/anim/mspace-h_REF.gc | 5 +- .../engine/collide/collide-shape-h_REF.gc | 8 +- .../reference/engine/data/art-h_REF.gc | 3 +- .../reference/engine/debug/menu_REF.gc | 18 +- .../reference/engine/dma/dma-bucket_REF.gc | 6 +- .../reference/engine/draw/draw-node-h_REF.gc | 10 +- .../engine/draw/drawable-ambient-h_REF.gc | 4 +- .../reference/engine/draw/drawable-h_REF.gc | 2 +- .../reference/engine/game/fact-h_REF.gc | 64 +- .../reference/engine/game/game-info-h_REF.gc | 4 +- .../reference/engine/game/settings-h_REF.gc | 2 +- .../reference/engine/game/settings_REF.gc | 354 +- .../engine/game/task/hint-control_REF.gc | 19 +- .../engine/game/task/task-control_REF.gc | 72 +- .../reference/engine/game/video_REF.gc | 40 +- .../reference/engine/geometry/geometry_REF.gc | 4 - .../engine/gfx/generic/generic_REF.gc | 2 +- .../reference/engine/gfx/hw/display_REF.gc | 16 +- .../reference/engine/gfx/hw/gs_REF.gc | 82 +- .../reference/engine/gfx/ocean/ocean-h_REF.gc | 9 +- .../reference/engine/gfx/texture-h_REF.gc | 2 +- .../reference/engine/gfx/texture_REF.gc | 97 +- .../reference/engine/gfx/tfrag/tfrag-h_REF.gc | 5 +- .../reference/engine/gfx/vis/bsp-h_REF.gc | 2 +- .../reference/engine/level/level-h_REF.gc | 12 +- .../reference/engine/load/file-io_REF.gc | 19 +- .../engine/target/joint-mod-h_REF.gc | 32 +- .../reference/engine/target/pat-h_REF.gc | 210 +- .../reference/engine/ui/credits_REF.gc | 10 +- .../reference/engine/ui/progress-h_REF.gc | 2 +- .../reference/kernel/gkernel_REF.gc | 179 +- .../decompiler/reference/kernel/gstate_REF.gc | 8 +- test/decompiler/test_FormExpressionBuild2.cpp | 16 +- .../with_game/test-array-ref-static.gc | 27 + test/goalc/test_with_game.cpp | 6 + test/offline/offline_test_main.cpp | 44 +- 116 files changed, 15692 insertions(+), 11356 deletions(-) create mode 100644 game/common/game_common_types.h create mode 100644 test/goalc/source_templates/with_game/test-array-ref-static.gc diff --git a/common/goos/PrettyPrinter.cpp b/common/goos/PrettyPrinter.cpp index a753a87e3c..b7499ce82a 100644 --- a/common/goos/PrettyPrinter.cpp +++ b/common/goos/PrettyPrinter.cpp @@ -444,6 +444,31 @@ PrettyPrinterNode* getNextListOrEmptyListOnLine(PrettyPrinterNode* start) { return nullptr; } +PrettyPrinterNode* get_case_start_case(PrettyPrinterNode* start) { + auto node = start->next; + while (node) { + switch (node->tok->kind) { + case FormToken::TokenKind::OPEN_PAREN: + goto loop_end; + break; + case FormToken::TokenKind::WHITESPACE: + break; + default: + return getNextListOnLine(start); + } + node = node->next; + } +loop_end: + node = node->paren; + while (node && (!node->tok || node->tok->kind != FormToken::TokenKind::OPEN_PAREN)) { + node = node->next; + } + if (!node) { + return getNextListOnLine(start); + } + return node; +} + /*! * Get the first open paren on the current line (can start in the middle of line, inclusive of * start) nullptr if there's no open parens on the rest of this line @@ -678,8 +703,15 @@ void insertSpecialBreaks(NodePool& pool, PrettyPrinterNode* node) { } } - if (name == "cond") { - auto* start_of_case = getNextListOnLine(node); + if (name == "cond" || name == "case") { + PrettyPrinterNode* start_of_case; + if (name == "cond") { + start_of_case = getNextListOnLine(node); + } else { + start_of_case = get_case_start_case(node); + insertNewlineBefore(pool, start_of_case, 0); + } + while (true) { // let's break this case: assert(start_of_case->tok->kind == FormToken::TokenKind::OPEN_PAREN); @@ -708,7 +740,23 @@ void insertSpecialBreaks(NodePool& pool, PrettyPrinterNode* node) { } // break cond into a multi-line always - breakList(pool, node->paren); + if (name == "case") { + auto next = node->next; + if (next) { + next = next->next; + } + if (next->tok && next->tok->kind == FormToken::TokenKind::OPEN_PAREN) { + next = next->paren; + if (next) { + next = next->next; + } + } + if (next) { + // insertNewlineAfter(pool, next, 0); + } + } else { + breakList(pool, node->paren); + } } } } diff --git a/decompiler/Function/CfgVtx.cpp b/decompiler/Function/CfgVtx.cpp index 4c7b6d1542..3fa0a43ab1 100644 --- a/decompiler/Function/CfgVtx.cpp +++ b/decompiler/Function/CfgVtx.cpp @@ -280,6 +280,7 @@ goos::Object UntilLoop_single::to_form() const { } int UntilLoop_single::get_first_block_id() const { + return block->get_first_block_id(); assert(false); return -1; } @@ -575,6 +576,10 @@ bool ControlFlowGraph::is_goto_not_end_and_unreachable(CfgVtx* b0, CfgVtx* b1) { return false; } + if (b0->end_branch.asm_branch || b1->end_branch.asm_branch) { + return false; + } + // b0 should be an always branch, not likely. if (!b0->end_branch.has_branch || !b0->end_branch.branch_always || b0->end_branch.branch_likely) { return false; @@ -903,6 +908,9 @@ bool ControlFlowGraph::find_infinite_continue() { fmt::print("Considering {} as an infinite continue:\n", b0->to_string()); + if (b0->end_branch.asm_branch) { + return true; + } if (dest_block >= my_block) { fmt::print(" Rejecting because destination block {} comes after me {}\n", dest_block, my_block); @@ -1041,6 +1049,10 @@ bool ControlFlowGraph::is_sequence(CfgVtx* b0, CfgVtx* b1, bool allow_self_loops if (!b0 || !b1) return false; + // if (b0->end_branch.asm_branch || b1->end_branch.asm_branch) { + // return false; + // } + if (b0->next != b1) { return false; } diff --git a/decompiler/IR2/AtomicOpTypeAnalysis.cpp b/decompiler/IR2/AtomicOpTypeAnalysis.cpp index 4c7d073fbf..2f07f8a60f 100644 --- a/decompiler/IR2/AtomicOpTypeAnalysis.cpp +++ b/decompiler/IR2/AtomicOpTypeAnalysis.cpp @@ -554,6 +554,14 @@ TP_Type SimpleExpression::get_type_int2(const TypeState& input, return TP_Type::make_from_ts(arg1_type.typespec()); } + if (m_kind == Kind::ADD && tc(dts, TypeSpec("structure"), arg0_type) && + arg1_type.is_integer_constant()) { + auto type_info = dts.ts.lookup_type(arg0_type.typespec()); + if (type_info->get_size_in_memory() == arg1_type.get_integer_constant()) { + return TP_Type::make_from_ts(arg0_type.typespec()); + } + } + if (tc(dts, TypeSpec("structure"), arg1_type) && !m_args[0].is_int() && is_int_or_uint(dts, arg0_type)) { if (arg1_type.typespec() == TypeSpec("symbol") && diff --git a/decompiler/IR2/Form.cpp b/decompiler/IR2/Form.cpp index 8c56a3b8fc..f5553c80a3 100644 --- a/decompiler/IR2/Form.cpp +++ b/decompiler/IR2/Form.cpp @@ -1363,6 +1363,107 @@ void CondNoElseElement::get_modified_regs(RegSet& regs) const { } } +CaseElement::CaseElement(Form* value, const std::vector& entries, Form* else_body) + : m_value(value), m_entries(entries), m_else_body(else_body) { + m_value->parent_element = this; + for (auto& entry : m_entries) { + for (auto& val : entry.vals) { + val->parent_element = this; + } + entry.body->parent_element = this; + } + if (m_else_body) { + m_else_body->parent_element = this; + } +} + +goos::Object CaseElement::to_form_internal(const Env& env) const { + std::vector list; + list.push_back(pretty_print::to_symbol("case")); + list.push_back(m_value->to_form(env)); + for (auto& e : m_entries) { + std::vector entry; + + // cases + std::vector cases; + for (auto& val : e.vals) { + cases.push_back(val->to_form(env)); + } + entry.push_back(pretty_print::build_list(cases)); + + // body + e.body->inline_forms(entry, env); + list.push_back(pretty_print::build_list(entry)); + } + + if (m_else_body) { + std::vector entry; + entry.push_back(pretty_print::to_symbol("else")); + m_else_body->inline_forms(entry, env); + list.push_back(pretty_print::build_list(entry)); + } + return pretty_print::build_list(list); +} + +void CaseElement::apply(const std::function& f) { + f(this); + m_value->apply(f); + for (auto& e : m_entries) { + for (auto& val : e.vals) { + val->apply(f); + } + e.body->apply(f); + } + + if (m_else_body) { + m_else_body->apply(f); + } +} + +void CaseElement::apply_form(const std::function& f) { + m_value->apply_form(f); + for (auto& e : m_entries) { + for (auto& val : e.vals) { + val->apply_form(f); + } + e.body->apply_form(f); + } + + if (m_else_body) { + m_else_body->apply_form(f); + } +} + +void CaseElement::collect_vars(RegAccessSet& vars, bool recursive) const { + if (recursive) { + m_value->collect_vars(vars, recursive); + for (auto& e : m_entries) { + for (auto& val : e.vals) { + val->collect_vars(vars, recursive); + } + e.body->collect_vars(vars, recursive); + } + + if (m_else_body) { + m_else_body->collect_vars(vars, recursive); + } + } +} + +void CaseElement::get_modified_regs(RegSet& regs) const { + m_value->get_modified_regs(regs); + for (auto& e : m_entries) { + for (auto& val : e.vals) { + val->get_modified_regs(regs); + } + e.body->get_modified_regs(regs); + } + + if (m_else_body) { + m_else_body->get_modified_regs(regs); + } +} + ///////////////////////////// // AbsElement ///////////////////////////// diff --git a/decompiler/IR2/Form.h b/decompiler/IR2/Form.h index 0c8f2f8957..0eae101166 100644 --- a/decompiler/IR2/Form.h +++ b/decompiler/IR2/Form.h @@ -842,6 +842,27 @@ class CondNoElseElement : public FormElement { bool allow_in_if() const override { return false; } }; +class CaseElement : public FormElement { + public: + struct Entry { + std::vector vals; + Form* body = nullptr; + }; + + CaseElement(Form* value, const std::vector& entries, Form* else_body); + goos::Object to_form_internal(const Env& env) const override; + void apply(const std::function& f) override; + void apply_form(const std::function& f) override; + void collect_vars(RegAccessSet& vars, bool recursive) const override; + void get_modified_regs(RegSet& regs) const override; + bool allow_in_if() const override { return false; } + + private: + Form* m_value = nullptr; + std::vector m_entries; + Form* m_else_body = nullptr; // may be nullptr, if no else. +}; + /*! * Represents a (abs x) expression. */ diff --git a/decompiler/IR2/FormExpressionAnalysis.cpp b/decompiler/IR2/FormExpressionAnalysis.cpp index 44689124a5..19edd46998 100644 --- a/decompiler/IR2/FormExpressionAnalysis.cpp +++ b/decompiler/IR2/FormExpressionAnalysis.cpp @@ -883,6 +883,17 @@ void SimpleExpressionElement::update_from_stack_add_i(const Env& env, } auto arg0_type = env.get_types_before_op(m_my_idx).get(m_expr.get_arg(0).var().reg()); + + if (env.dts->ts.tc(TypeSpec("structure"), arg0_type.typespec()) && m_expr.get_arg(1).is_int()) { + auto type_info = env.dts->ts.lookup_type(arg0_type.typespec()); + if (type_info->get_size_in_memory() == m_expr.get_arg(1).get_int()) { + auto new_form = pool.alloc_element( + GenericOperator::make_fixed(FixedOperatorKind::ADDITION_PTR), args.at(0), args.at(1)); + result->push_back(new_form); + return; + } + } + if ((arg0_i && arg1_i) || (arg0_u && arg1_u)) { auto new_form = pool.alloc_element( GenericOperator::make_fixed(FixedOperatorKind::ADDITION), args.at(0), args.at(1)); @@ -2390,8 +2401,8 @@ void FunctionCallElement::update_from_stack(const Env& env, if (tp_type.kind != TP_Type::Kind::NON_VIRTUAL_METHOD) { throw std::runtime_error(fmt::format( "Method internal mismatch. METHOD_OF_TYPE operator didn't get a NON_VIRTUAL_METHOD " - "type. Got {} instead.", - tp_type.print())); + "type. Got {} instead. {} {}", + tp_type.print(), name, match_result.maps.forms.at(type_source)->to_string(env))); } } diff --git a/decompiler/IR2/bitfields.cpp b/decompiler/IR2/bitfields.cpp index 569f400e00..c7777c316b 100644 --- a/decompiler/IR2/bitfields.cpp +++ b/decompiler/IR2/bitfields.cpp @@ -625,8 +625,8 @@ Form* cast_sound_name(FormPool& pool, const Env& env, Form* in) { auto hi = mr.maps.forms.at(1); auto lo = mr.maps.forms.at(0); - auto hi_int = get_goal_integer_constant(hi, env); - auto lo_int = get_goal_integer_constant(lo, env); + auto hi_int = get_goal_integer_constant(strip_int_or_uint_cast(hi), env); + auto lo_int = get_goal_integer_constant(strip_int_or_uint_cast(lo), env); if (!hi_int || !lo_int) { return nullptr; } diff --git a/decompiler/ObjectFile/ObjectFileDB.h b/decompiler/ObjectFile/ObjectFileDB.h index b4e842749e..96a4f44ee3 100644 --- a/decompiler/ObjectFile/ObjectFileDB.h +++ b/decompiler/ObjectFile/ObjectFileDB.h @@ -63,7 +63,9 @@ class ObjectFileDB { bool print_hex); void analyze_functions_ir1(const Config& config); - void analyze_functions_ir2(const std::string& output_dir, const Config& config); + void analyze_functions_ir2(const std::string& output_dir, + const Config& config, + bool skip_debug_output = false); void ir2_top_level_pass(const Config& config); void ir2_stack_spill_slot_pass(); void ir2_basic_block_pass(const Config& config); diff --git a/decompiler/ObjectFile/ObjectFileDB_IR2.cpp b/decompiler/ObjectFile/ObjectFileDB_IR2.cpp index 01280eb11d..7943ba1611 100644 --- a/decompiler/ObjectFile/ObjectFileDB_IR2.cpp +++ b/decompiler/ObjectFile/ObjectFileDB_IR2.cpp @@ -30,7 +30,9 @@ namespace decompiler { * At this point, we assume that the files are loaded and we've run find_code to locate all * functions, but nothing else. */ -void ObjectFileDB::analyze_functions_ir2(const std::string& output_dir, const Config& config) { +void ObjectFileDB::analyze_functions_ir2(const std::string& output_dir, + const Config& config, + bool skip_debug_output) { lg::info("Using IR2 analysis..."); lg::info("Processing top-level functions..."); ir2_top_level_pass(config); @@ -55,8 +57,11 @@ void ObjectFileDB::analyze_functions_ir2(const std::string& output_dir, const Co lg::info("Initial structuring..."); ir2_cfg_build_pass(); - lg::info("Storing temporary form result..."); - ir2_store_current_forms(); + if (!skip_debug_output) { + lg::info("Storing temporary form result..."); + ir2_store_current_forms(); + } + lg::info("Expression building..."); ir2_build_expressions(config); lg::info("Re-writing inline asm instructions..."); diff --git a/decompiler/analysis/insert_lets.cpp b/decompiler/analysis/insert_lets.cpp index aba26c6830..ff390f8db0 100644 --- a/decompiler/analysis/insert_lets.cpp +++ b/decompiler/analysis/insert_lets.cpp @@ -36,7 +36,7 @@ If the previous let variables appear in the definition of new one, make the let */ namespace { -std::vector path_up_tree(Form* in, const Env& env) { +std::vector path_up_tree(Form* in, const Env&) { std::vector path; while (in) { @@ -357,6 +357,174 @@ FormElement* rewrite_empty_let(LetElement* in, const Env&, FormPool&) { return in->entries().at(0).src->try_as_single_element(); } +Form* strip_truthy(Form* in) { + auto as_ge = in->try_as_element(); + if (as_ge) { + if (as_ge->op().kind() == GenericOperator::Kind::CONDITION_OPERATOR && + as_ge->op().condition_kind() == IR2_Condition::Kind::TRUTHY) { + in = as_ge->elts().at(0); + } + } + return in; +} + +ShortCircuitElement* get_or(Form* in) { + // strip off truthy + in = strip_truthy(in); + + return in->try_as_element(); +} + +FormElement* rewrite_as_case_no_else(LetElement* in, const Env& env, FormPool& pool) { + if (in->entries().size() != 1) { + return nullptr; + } + + auto* cond = in->body()->try_as_element(); + if (!cond) { + return nullptr; + } + + auto case_var = in->entries().at(0).dest; + auto& case_var_uses = env.get_use_def_info(case_var); + int found_uses = 0; + if (case_var_uses.def_count() != 1) { + return nullptr; + } + auto case_var_name = env.get_variable_name(case_var); + + std::vector entries; + + for (auto& e : cond->entries) { + // first, lets see if its just (= case_var ) + auto single_matcher = Matcher::op(GenericOpMatcher::fixed(FixedOperatorKind::EQ), + {Matcher::any_reg(0), Matcher::any(1)}); + + auto single_matcher_result = match(single_matcher, e.condition); + + Form* single_value = nullptr; + if (single_matcher_result.matched) { + auto var_name = env.get_variable_name(*single_matcher_result.maps.regs.at(0)); + if (var_name == case_var_name) { + single_value = single_matcher_result.maps.forms.at(1); + } + } + + if (single_value) { + entries.push_back({{single_value}, e.body}); + found_uses++; + continue; + } + + // try as an or (or (= case_var ) ...) + auto* as_or = get_or(e.condition); + if (!as_or) { + return nullptr; + } + + CaseElement::Entry current_entry; + for (auto& or_case : as_or->entries) { + auto or_single_matcher_result = match(single_matcher, strip_truthy(or_case.condition)); + if (!or_single_matcher_result.matched) { + return nullptr; + } + auto var_name = env.get_variable_name(*or_single_matcher_result.maps.regs.at(0)); + if (var_name != case_var_name) { + return nullptr; + } + found_uses++; + current_entry.vals.push_back(or_single_matcher_result.maps.forms.at(1)); + } + current_entry.body = e.body; + entries.push_back(current_entry); + + // no match + // return nullptr; + } + + if (found_uses != case_var_uses.use_count()) { + return nullptr; + } + + return pool.alloc_element(in->entries().at(0).src, entries, nullptr); + return nullptr; +} + +FormElement* rewrite_as_case_with_else(LetElement* in, const Env& env, FormPool& pool) { + if (in->entries().size() != 1) { + return nullptr; + } + + auto* cond = in->body()->try_as_element(); + if (!cond) { + return nullptr; + } + + auto case_var = in->entries().at(0).dest; + auto& case_var_uses = env.get_use_def_info(case_var); + int found_uses = 0; + if (case_var_uses.def_count() != 1) { + return nullptr; + } + auto case_var_name = env.get_variable_name(case_var); + + std::vector entries; + + for (auto& e : cond->entries) { + // first, lets see if its just (= case_var ) + auto single_matcher = Matcher::op(GenericOpMatcher::fixed(FixedOperatorKind::EQ), + {Matcher::any_reg(0), Matcher::any(1)}); + + auto single_matcher_result = match(single_matcher, e.condition); + + Form* single_value = nullptr; + if (single_matcher_result.matched) { + auto var_name = env.get_variable_name(*single_matcher_result.maps.regs.at(0)); + if (var_name == case_var_name) { + single_value = single_matcher_result.maps.forms.at(1); + } + } + + if (single_value) { + entries.push_back({{single_value}, e.body}); + found_uses++; + continue; + } + + // try as an or (or (= case_var ) ...) + auto* as_or = get_or(e.condition); + if (!as_or) { + return nullptr; + } + + CaseElement::Entry current_entry; + for (auto& or_case : as_or->entries) { + auto or_single_matcher_result = match(single_matcher, strip_truthy(or_case.condition)); + if (!or_single_matcher_result.matched) { + return nullptr; + } + auto var_name = env.get_variable_name(*or_single_matcher_result.maps.regs.at(0)); + if (var_name != case_var_name) { + return nullptr; + } + found_uses++; + current_entry.vals.push_back(or_single_matcher_result.maps.forms.at(1)); + } + current_entry.body = e.body; + entries.push_back(current_entry); + + // no match + // return nullptr; + } + + if (found_uses != case_var_uses.use_count()) { + return nullptr; + } + + return pool.alloc_element(in->entries().at(0).src, entries, cond->else_ir); + return nullptr; +} + /*! * Attempt to rewrite a let as another form. If it cannot be rewritten, this will return nullptr. */ @@ -386,6 +554,16 @@ FormElement* rewrite_let(LetElement* in, const Env& env, FormPool& pool) { return as_unused; } + auto as_case_no_else = rewrite_as_case_no_else(in, env, pool); + if (as_case_no_else) { + return as_case_no_else; + } + + auto as_case_with_else = rewrite_as_case_with_else(in, env, pool); + if (as_case_with_else) { + return as_case_with_else; + } + // nothing matched. return nullptr; } diff --git a/decompiler/analysis/type_analysis.cpp b/decompiler/analysis/type_analysis.cpp index f6b3f428b8..990bf3f38c 100644 --- a/decompiler/analysis/type_analysis.cpp +++ b/decompiler/analysis/type_analysis.cpp @@ -91,6 +91,7 @@ bool run_type_analysis_ir2(const TypeSpec& my_type, DecompilerTypeSystem& dts, F } std::vector block_init_types, op_types; + std::vector block_needs_update(func.basic_blocks.size(), true); block_init_types.resize(func.basic_blocks.size()); op_types.resize(func.ir2.atomic_ops->ops.size()); auto& aop = func.ir2.atomic_ops; @@ -111,6 +112,9 @@ bool run_type_analysis_ir2(const TypeSpec& my_type, DecompilerTypeSystem& dts, F run_again = false; // do each block in the topological sort order: for (auto block_id : order.vist_order) { + if (!block_needs_update.at(block_id)) { + continue; + } auto& block = func.basic_blocks.at(block_id); TypeState* init_types = &block_init_types.at(block_id); for (int op_id = aop->block_id_to_first_atomic_op.at(block_id); @@ -145,6 +149,7 @@ bool run_type_analysis_ir2(const TypeSpec& my_type, DecompilerTypeSystem& dts, F // for the next op... init_types = &op_types.at(op_id); } + block_needs_update.at(block_id) = false; // propagate the types: for each possible succ for (auto succ_block_id : {block.succ_ft, block.succ_branch}) { @@ -153,6 +158,7 @@ bool run_type_analysis_ir2(const TypeSpec& my_type, DecompilerTypeSystem& dts, F if (dts.tp_lca(&block_init_types.at(succ_block_id), *init_types)) { // if something changed, run again! run_again = true; + block_needs_update.at(succ_block_id) = true; } } } diff --git a/decompiler/config/all-types.gc b/decompiler/config/all-types.gc index cb31abfc1e..74122e1c3d 100644 --- a/decompiler/config/all-types.gc +++ b/decompiler/config/all-types.gc @@ -498,6 +498,7 @@ :type int32 :bitfield #f + (bucket-3 3) (tfrag-tex0 5) ;; merc0 10 ;; generic0 11 @@ -529,6 +530,7 @@ (water-tex1 60) ;; merc1 61 ;; generic1 62 + (bucket-65 65) ;; debug spheres? 67 (debug-draw0 67) ;; debug text 68 @@ -3448,7 +3450,7 @@ (define-extern dma-buffer-add-buckets (function dma-buffer int none)) (define-extern dma-buffer-patch-buckets (function dma-bucket int dma-bucket)) -(define-extern dma-bucket-insert-tag (function dma-bucket int pointer (pointer dma-tag) pointer)) +(define-extern dma-bucket-insert-tag (function dma-bucket bucket-id pointer (pointer dma-tag) pointer)) ;; ---------------------- @@ -4553,7 +4555,7 @@ (dummy-18 () none 18) (dummy-19 () none 19) (unload! (_type_ texture-page) int 20) - (upload-one-common! (_type_) symbol 21) + (upload-one-common! (_type_ level) symbol 21) (lookup-boot-common-id (_type_ int) int 22) ) ) @@ -4860,7 +4862,7 @@ (add-irq-to-tex-buckets! (_type_) none 11) (unload! (_type_) _type_ 12) (bsp-name (_type_) symbol 13) - (dummy-14 (_type_ object) none 14) + (dummy-14 (_type_ object) memory-usage-block 14) (dummy-15 (_type_ vector) symbol 15) (dummy-16 (_type_) none 16) (load-continue (_type_) _type_ 17) @@ -4881,8 +4883,8 @@ (declare-type entity-links structure) (deftype level-group (basic) ((length int32 :offset-assert 4) - (unknown-level-1 level :offset-assert 8) - (unknown-level-2 level :offset-assert 12) + (log-in-level level :offset-assert 8) + (loading-level level :offset-assert 12) (entity-link entity-links :offset-assert 16) ;; not sure what's going on here (border? basic :offset-assert 20) (vis? basic :offset-assert 24) @@ -4910,7 +4912,7 @@ (level-get-for-use (_type_ symbol symbol) level 11) (activate-levels! (_type_) int 12) (dummy-13 () none 13) - (dummy-14 () none 14) + (dummy-14 (_type_ object) none 14) (dummy-15 () none 15) (dummy-16 (_type_) int 16) (level-get-target-inside (_type_) level 17) @@ -5375,7 +5377,7 @@ (sfx-volume float :offset-assert 4) (music-volume float :offset-assert 8) (dialog-volume float :offset-assert 12) - (process-mask uint32 :offset-assert 16) + (process-mask process-mask :offset-assert 16) (common-page int32 :offset-assert 20) (language int64 :offset-assert 24) (screenx int32 :offset-assert 32) @@ -5551,8 +5553,8 @@ (define-extern loado (function string kheap object)) (define-extern texture-relocate (function dma-buffer texture int gs-psm int dma-buffer)) (define-extern dma-buffer-add-ref-texture (function dma-buffer pointer int int gs-psm none)) -(define-extern upload-vram-pages (function texture-pool texture-pool-segment texture-page int int int)) -(define-extern upload-vram-pages-pris (function texture-pool texture-pool-segment texture-page int int int)) +(define-extern upload-vram-pages (function texture-pool texture-pool-segment texture-page int bucket-id int)) +(define-extern upload-vram-pages-pris (function texture-pool texture-pool-segment texture-page bucket-id int int)) (define-extern movie? (function symbol)) (define-extern texture-page-near-allocate-1 (function texture-pool texture-page kheap int texture-page)) (define-extern texture-page-near-allocate-0 (function texture-pool texture-page kheap int texture-page)) @@ -5775,7 +5777,7 @@ ) (deftype skeleton (inline-array-class) - () + ((bones bone :inline :dynamic)) :method-count-assert 9 :size-assert #x10 :flag-assert #x900000010 @@ -5819,6 +5821,7 @@ ;; - Types +(declare-type ambient-list structure) (deftype drawable (basic) ((id int16 :offset-assert 4) ; (unknown basic :offset-assert 8) ;; - from default-menu::build-instance-list @@ -5836,7 +5839,7 @@ (dummy-14 () none 14) (dummy-15 (_type_) none 15) (dummy-16 (_type_ object object) object 16) - (dummy-17 () none 17) + (dummy-17 (_type_ sphere int ambient-list) none 17) ) ) @@ -5906,24 +5909,18 @@ ;; field distance is a float printed as hex? ) -; (deftype drawable-inline-array-node (drawable-inline-array) -; () -; :method-count-assert 18 -; :size-assert #x44 -; :flag-assert #x1200000044 -; ;; too many basic blocks -; (:methods -; (dummy-9 () none 9) -; (dummy-10 () none 10) -; (dummy-11 () none 11) -; (dummy-12 () none 12) -; (dummy-13 () none 13) -; (dummy-14 () none 14) -; (dummy-15 () none 15) -; (dummy-16 () none 16) -; (dummy-17 () none 17) -; ) -; ) +(deftype drawable-inline-array-node (drawable-inline-array) + ((data draw-node 1 :inline) + (pad uint32) + ) + :method-count-assert 18 + :size-assert #x44 + :flag-assert #x1200000044 + ;; too many basic blocks + (:methods + + ) + ) (deftype draw-node-dma (structure) ((banka draw-node 32 :inline :offset-assert 0) @@ -6038,14 +6035,13 @@ (deftype ambient-list (structure) ((num-items int32 :offset-assert 0) - (items uint32 2048 :offset-assert 4) + (items drawable-ambient 2048 :offset-assert 4) ) :method-count-assert 9 :size-assert #x2004 :flag-assert #x900002004 ) - ;; ---------------------- ;; File - game-task-h ;; Source Path - engine/game/task/game-task-h.gc @@ -6515,9 +6511,10 @@ ) (deftype ocean-mid-mask (structure) - ((mask uint8 8 :offset-assert 0) + ((mask uint8 8 :offset-assert 0 :do-not-decompile) ;; avoid huge arrays. (dword uint64 :offset 0) ) + :pack-me :method-count-assert 9 :size-assert #x8 :flag-assert #x900000008 @@ -6532,7 +6529,7 @@ ) (deftype ocean-mid-masks (basic) - ((data uint32 :offset-assert 4) + ((data (inline-array ocean-mid-mask) :offset-assert 4) ) :pack-me :method-count-assert 9 @@ -6561,7 +6558,7 @@ ) (deftype ocean-trans-indices (basic) - ((data uint32 2304 :offset-assert 4) + ((data ocean-trans-index 2304 :inline :offset-assert 4) ) :method-count-assert 9 :size-assert #x2404 @@ -6577,7 +6574,7 @@ ) (deftype ocean-near-indices (basic) - ((data uint32 :offset-assert 4) + ((data (inline-array ocean-near-index) :offset-assert 4) ) :method-count-assert 9 :size-assert #x8 @@ -7443,7 +7440,7 @@ ) (deftype art-mesh-anim (art-element) - () + ((data basic :dynamic)) :method-count-assert 13 :size-assert #x20 :flag-assert #xd00000020 @@ -8848,8 +8845,8 @@ (auto-save-status uint32 :offset-assert 280) (auto-save-card int32 :offset-assert 284) (auto-save-which int32 :offset-assert 288) - (pov-camera-handle uint64 :offset-assert 296) - (other-camera-handle uint64 :offset-assert 304) + (pov-camera-handle handle :offset-assert 296) + (other-camera-handle handle :offset-assert 304) (death-pos vector-array :offset-assert 312) (dummy basic :offset-assert 316) (auto-save-count int32 :offset-assert 320) @@ -11588,7 +11585,7 @@ (unk-data-1 pointer :offset-assert 60) (unk-data-1-len int32 :offset-assert 64) - (unk-zero-0 uint32 :offset-assert 68) + (unk-zero-0 basic :offset-assert 68) (name symbol :offset-assert 72) (nickname symbol :offset-assert 76) @@ -11616,7 +11613,6 @@ :flag-assert #x1400000190 (:methods (relocate (_type_ kheap (pointer uint8)) none :replace 7) - (dummy-17 () none 17) (dummy-18 (_type_) none 18) (dummy-19 (_type_) none 19) ) @@ -12324,7 +12320,7 @@ (dma-level-0 uint32 :offset 32) (dma-base uint32 :offset 36) (dma-level-1 uint32 :offset 40) - (dma-qwc uint32 4 :offset-assert 44) + (dma-qwc uint32 4 :offset 44) (shader uint32 :offset 48) (num-shaders uint8 :offset 52) (num-base-colors uint8 :offset 53) @@ -12359,7 +12355,7 @@ ) (deftype drawable-tree-tfrag (drawable-tree) - () + ((time-of-day-pal time-of-day-palette :offset 12)) :method-count-assert #x12 :size-assert #x24 :flag-assert #x1200000024 @@ -14016,7 +14012,7 @@ (dummy-17 () none 17) (dummy-18 () none 18) (dummy-19 () none 19) - (dummy-20 () none 20) + (hidden? (_type_) symbol 20) (dummy-21 () none 21) (dummy-22 () none 22) (TODO-RENAME-23 (_type_ symbol symbol) none 23) @@ -14797,9 +14793,9 @@ (define-extern print-cl-stat function) (define-extern clear-cl-stat function) -(define-extern mem-usage-bsp-tree function) +(define-extern mem-usage-bsp-tree (function bsp-header (inline-array bsp-node) memory-usage-block int none)) (define-extern bsp-camera-asm function) -(define-extern print-collide-stats function) +(define-extern print-collide-stats (function none)) ;; - Unknowns @@ -14817,12 +14813,12 @@ (define-extern perf-stat-bucket->string function) (define-extern print-tr-stat function) (define-extern clear-tr-stat function) -(define-extern print-terrain-stats function) +(define-extern print-terrain-stats (function none)) (define-extern update-subdivide-settings! function) (define-extern set-tfrag-dists! function) -(define-extern start-perf-stat-collection function) -(define-extern end-perf-stat-collection function) -(define-extern print-perf-stats function) +(define-extern start-perf-stat-collection (function engine display-frame int int none)) +(define-extern end-perf-stat-collection (function none)) +(define-extern print-perf-stats (function none)) ;; - Unknowns @@ -14944,7 +14940,7 @@ (define-extern add-to-sprite-aux-list function) (define-extern sprite-set-3d-quaternion! function) (define-extern sprite-get-3d-quaternion! function) -(define-extern sprite-draw function) +(define-extern sprite-draw (function display none)) (define-extern sprite-allocate-user-hvdf function) (define-extern sprite-release-user-hvdf function) (define-extern sprite-get-user-hvdf function) @@ -15348,7 +15344,7 @@ (define-extern bones-init function) (define-extern draw-bones-mtx-calc function) (define-extern bones-mtx-calc function) -(define-extern bones-mtx-calc-execute function) +(define-extern bones-mtx-calc-execute (function none)) (define-extern bones-wrapup function) (define-extern dump-qword function) (define-extern bones-debug function) @@ -15368,7 +15364,7 @@ ;;(define-extern bones-vu0-block object) ;; unknown type ;;(define-extern *texscroll-globals* object) ;; unknown type ;;(define-extern *use-generic* object) ;; unknown type -;;(define-extern *merc-global-array* object) ;; unknown type +(define-extern *merc-global-array* merc-global-array) ;; unknown type ;;(define-extern *bones-first* object) ;; unknown type ;;(define-extern *default-shadow-settings* object) ;; unknown type @@ -15491,7 +15487,7 @@ (define-extern high-speed-reject function) (define-extern generic-merc-execute-asm function) (define-extern generic-merc-add-to-cue function) -(define-extern generic-merc-execute-all function) +(define-extern generic-merc-execute-all (function none)) ;; - Unknowns @@ -15589,7 +15585,7 @@ (define-extern shadow-add-single-edges function) (define-extern shadow-add-double-tris function) (define-extern shadow-add-double-edges function) -(define-extern shadow-execute-all function) +(define-extern shadow-execute-all (function dma-buffer shadow-queue none)) ;; - Symbols @@ -15728,8 +15724,8 @@ (define-extern draw-drawable-tree-ice-tfrag function) (define-extern tie-near-make-perspective-matrix function) (define-extern draw-drawable-tree-instance-tie function) -(define-extern init-background function) -(define-extern finish-background function) +(define-extern init-background (function none)) +(define-extern finish-background (function none)) ;; - Symbols @@ -15772,7 +15768,7 @@ (define-extern shrub-upload-view-data function) (define-extern shrub-init-view-data function) (define-extern mem-usage-shrub-walk function) -(define-extern shrub-make-perspective-matrix function) +(define-extern shrub-make-perspective-matrix (function matrix none)) (define-extern shrub-time function) (define-extern draw-inline-array-instance-shrub function) (define-extern draw-prototype-inline-array-shrub function) @@ -16349,7 +16345,7 @@ (define-extern close-specific-task! (function game-task task-status int)) (define-extern reset-all-hint-controls (function none)) (define-extern reset-actors (function symbol none)) -(define-extern set-blackout-frames (function int uint)) +(define-extern set-blackout-frames (function int int)) (define-extern set-master-mode (function symbol none)) (define-extern stop (function symbol int)) (define-extern start (function symbol continue-point target)) @@ -16976,7 +16972,7 @@ (define-extern time-of-day-setup (function symbol int none)) ;; not confirmed (define-extern set-time-of-day function) (define-extern init-time-of-day-context (function time-of-day-context none)) -(define-extern update-time-of-day function) +(define-extern update-time-of-day (function time-of-day-context none)) ;; - Unknowns @@ -17068,7 +17064,7 @@ (define-extern clip-polygon-against-negative-hyperplane function) (define-extern sky-duplicate-polys function) (define-extern sky-tng-setup-clouds function) -(define-extern render-sky-tng function) +(define-extern render-sky-tng (function time-of-day-context none)) ;; - Unknowns @@ -17217,7 +17213,7 @@ (define-extern lb-set-camera function) (define-extern lb-set-player function) (define-extern lb-copy function) -(define-extern render-boundaries function) +(define-extern render-boundaries (function none)) (define-extern command-get-time function) ;; - Unknowns @@ -17314,19 +17310,20 @@ ;; - Functions (define-extern set-font-color-alpha function) -(define-extern load-game-text-info function) +(define-extern load-game-text-info (function string symbol kheap int)) (define-extern load-level-text-files (function int none)) (define-extern draw-debug-text-box function) (define-extern print-game-text-scaled function) (define-extern disable-level-text-file-loading function) (define-extern enable-level-text-file-loading function) +(define-extern link (function pointer pointer int kheap int pointer)) ;; - Unknowns -;;(define-extern *level-text-file-load-flag* object) ;; unknown type -;;(define-extern *game-text-line* object) ;; unknown type -;;(define-extern *game-text-word* object) ;; unknown type -;;(define-extern text-is-loading object) ;; unknown type +(define-extern *level-text-file-load-flag* symbol) +(define-extern *game-text-line* string) +(define-extern *game-text-word* string) +(define-extern text-is-loading symbol) ;; ---------------------- @@ -17485,7 +17482,7 @@ (define-extern find-ground-point function) (define-extern default-collision-reaction function) (define-extern simple-collision-reaction function) -(define-extern collide-shape-draw-debug-marks function) +(define-extern collide-shape-draw-debug-marks (function none)) (define-extern debug-report-col-stats function) ;; - Unknowns @@ -19357,7 +19354,7 @@ (define-extern toggle-pause (function int)) (define-extern deactivate-progress (function none)) (define-extern debug-init-buffer (function bucket-id uint uint none)) -(define-extern real-main-draw-hook function) +(define-extern real-main-draw-hook (function none)) (define-extern error-sphere function) (define-extern draw-instance-info function) (define-extern find-instance-by-name (function string instance)) ;; TODO - ret not verified @@ -19366,7 +19363,7 @@ (define-extern find-instance-by-index function) (define-extern prototype-bucket-recalc-fields (function instance none)) ;; TODO - ret not confirmed (define-extern dma-add-process-drawable-hud function) -(define-extern foreground-engine-execute function) +(define-extern foreground-engine-execute (function engine display-frame int int none)) (define-extern main-debug-hook function) (define-extern main-draw-hook function) (define-extern swap-display (function display object)) @@ -19389,10 +19386,10 @@ (define-extern put-display-env (function object none)) ;; unknown type (define-extern *surrogate-dma-buffer* dma-buffer) ;; unknown type (define-extern *screen-shot* symbol) ;; unknown type -;;(define-extern *hud-lights* object) ;; unknown type -;;(define-extern *instance-mem-usage* object) ;; unknown type -;;(define-extern *add-sphere* object) ;; unknown type -;;(define-extern *generic-effect-mode* object) ;; unknown type +(define-extern *hud-lights* vu-lights) ;; unknown type +(define-extern *instance-mem-usage* memory-usage-block) ;; unknown type +(define-extern *add-sphere* symbol) ;; unknown type +(define-extern *generic-effect-mode* int) ;; unknown type ;; ---------------------- @@ -20795,8 +20792,8 @@ (define-extern render-ocean-far function) (define-extern render-ocean-quad function) (define-extern draw-large-polygon-ocean function) -(define-extern draw-ocean function) -(define-extern update-ocean function) +(define-extern draw-ocean (function none)) +(define-extern update-ocean (function none)) ;; - Unknowns @@ -20924,7 +20921,7 @@ (define-extern compute-and-draw-shadow function) (define-extern draw-shadow function) (define-extern add-fake-shadow-to-buffer function) -(define-extern swap-fake-shadow-buffers function) +(define-extern swap-fake-shadow-buffers (function none)) ;; ---------------------- @@ -20937,7 +20934,7 @@ (define-extern convert-eye-data function) (define-extern render-eyes function) -(define-extern update-eyes function) +(define-extern update-eyes (function none)) ;; - Unknowns diff --git a/decompiler/config/jak1_ntsc_black_label/hacks.jsonc b/decompiler/config/jak1_ntsc_black_label/hacks.jsonc index a9b3fb733e..e1e7bc6bee 100644 --- a/decompiler/config/jak1_ntsc_black_label/hacks.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/hacks.jsonc @@ -207,7 +207,7 @@ "draw-string", // decomp - "(method 16 level)", // BUG: cfg fails + //"(method 16 level)", // BUG: cfg fails "unpack-comp-huf", "unpack-comp-rle", @@ -277,9 +277,6 @@ "render-boundary-quad", "draw-boundary-polygon", - // text BUG - "load-game-text-info", - // collide-probe "collide-probe-instance-tie", "collide-probe-node", @@ -505,8 +502,8 @@ " pris-geo ~192H~5DK ~280Hpris-fragment~456H~5DK~%": 2, " pris-anim ~192H~5DK ~280Hpris-generic~456H~5DK~%": 2, " textures ~192H~5DK ~280Htextures~456H~5DK~%": 2, - " entity ~192H~5DK~%":2, - " misc ~192H~5DK ~280Hsprite~456H~5DK~%":2 + " entity ~192H~5DK~%": 2, + " misc ~192H~5DK ~280Hsprite~456H~5DK~%": 2 }, "blocks_ending_in_asm_branch": { @@ -538,6 +535,10 @@ "adgif-shader<-texture-with-update!": [0, 1], - "display-loop": [44, 49, 66, 96] + "display-loop": [44, 49, 66, 96], + + "load-game-text-info": [12, 13, 14, 18], + + "real-main-draw-hook": [75, 77] } } diff --git a/decompiler/config/jak1_ntsc_black_label/label_types.jsonc b/decompiler/config/jak1_ntsc_black_label/label_types.jsonc index b9f31659f1..fd2dd9306d 100644 --- a/decompiler/config/jak1_ntsc_black_label/label_types.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/label_types.jsonc @@ -144,25 +144,28 @@ "ocean-tables": [ // see comment in ocean-tables.gc - // ["L26", "ocean-spheres", true], - // ["L18", "ocean-spheres", true], - // ["L25", "ocean-colors", true], - // ["L17", "ocean-colors", true], - // ["L23", "ocean-near-indices", true], - // ["L15", "ocean-near-indices", true], - // ["L9", "ocean-near-indices", true], - // ["L22", "ocean-trans-indices", true], - // ["L14", "ocean-trans-indices", true], - // ["L8", "ocean-trans-indices", true], - // ["L21", "ocean-mid-indices", true], - // ["L13", "ocean-mid-indices", true], - // ["L7", "ocean-mid-indices", true], - // ["L19", "ocean-mid-masks", true], - // ["L11", "ocean-mid-masks", true], - // ["L5", "ocean-mid-masks", true], - // ["L4", "ocean-map", true], - // ["L3", "ocean-map", true], - // ["L2", "ocean-map", true] + ["L26", "ocean-spheres", true], + ["L25", "ocean-colors", true], + ["L23", "ocean-near-indices", true], // ok + ["L22", "ocean-trans-indices", true], + ["L21", "ocean-mid-indices", true], + ["L19", "ocean-mid-masks", true], + ["L18", "ocean-spheres", true], + ["L17", "ocean-colors", true], + ["L15", "ocean-near-indices", true], + ["L9", "ocean-near-indices", true], + + ["L14", "ocean-trans-indices", true], + ["L8", "ocean-trans-indices", true], + + ["L13", "ocean-mid-indices", true], + ["L7", "ocean-mid-indices", true], + + ["L11", "ocean-mid-masks", true], + ["L5", "ocean-mid-masks", true], + ["L4", "ocean-map", true], + ["L3", "ocean-map", true], + ["L2", "ocean-map", true] ], "ocean-frames": [["L1", "(pointer uint32)", true, 16384]], @@ -556,11 +559,31 @@ ["L12", "uint64", true] ], + "shadow-cpu": [ + ["L122", "shadow-data", true] + ], + "entity-table": [["L8", "(array entity-info)", true]], - "main": [["L230", "_lambda_", true], ["L309", "float", true]], + "main": [ + ["L230", "_lambda_", true], + ["L309", "float", true], + ["L306", "screen-filter", true], + ["L311", "uint64", true], + ["L312", "uint64", true], + ["L317", "uint64", true], + ["L316", "uint64", true], + ["L320", "uint64", true], + ["L314", "uint64", true], + ["L313", "uint64", true], + ["L315", "uint64", true] + ], - "geometry": [["L125", "float", true], ["L126", "float", true], ["L112", "(pointer float)", true, 4]], + "geometry": [ + ["L125", "float", true], + ["L126", "float", true], + ["L112", "(pointer float)", true, 4] + ], "level": [ ["L452", "_auto_", true], @@ -1163,9 +1186,7 @@ ["L38", "uint64", true], ["L39", "uint64", true] ], - "memory-usage": [ - ["L15", "_lambda_", true] - ], + "memory-usage": [["L15", "_lambda_", true]], "path": [ ["L47", "float", true], diff --git a/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc b/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc index f7d04b7e99..4790bcee21 100644 --- a/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc @@ -497,9 +497,7 @@ [64, "vector"] ], - "vector-plane-distance": [ - [16, "vector"] - ], + "vector-plane-distance": [[16, "vector"]], "curve-length": [ [16, "vector"], @@ -521,17 +519,11 @@ [32, "vector"] ], - "mem-size": [ - [16, "memory-usage-block"] - ], + "mem-size": [[16, "memory-usage-block"]], - "display-loop": [ - [16, "sphere"] - ], + "display-loop": [[16, "sphere"]], - "(method 14 curve-control)": [ - [16, "vector"] - ], + "(method 14 curve-control)": [[16, "vector"]], "(method 19 path-control)": [ [16, "vector"], @@ -540,14 +532,14 @@ [64, "vector"] ], + "progress-allowed?": [[16, "event-message-block"]], + "(method 9 align-control)": [ [16, "matrix"], [80, "quaternion"] ], - "(method 10 align-control)": [ - [16, "vector"] - ], + "(method 10 align-control)": [[16, "vector"]], "placeholder-do-not-add-below!": [] } diff --git a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc index 8655fb818d..8adbe2f29f 100644 --- a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc @@ -407,15 +407,17 @@ "adgif-shader<-texture-simple!": [[5, "v1", "uint"]], - "display-frame-start": [ - [4, "v1", "(pointer uint32)"] - ], + "display-frame-start": [[4, "v1", "(pointer uint32)"]], "display-loop": [ [152, "v1", "(pointer int32)"], [157, "a0", "(pointer process-drawable)"] ], + "load-game-text-info": [ + [4, "v1", "game-text-info"] + ], + "texture-relocate": [ [[17, 21], "t4", "dma-packet"], [[27, 30], "t4", "gs-gif-tag"], @@ -804,7 +806,10 @@ [[1, 5], "v1", "collide-fragment"] ], - "main-cheats": [[1221, "t9", "(function cpu-thread function none)"]], + "main-cheats": [ + [1221, "t9", "(function cpu-thread function none)"], + [[1123, 1126], "v1", "dma-packet"] + ], "on": [[33, "t9", "(function cpu-thread function none)"]], "bg": [[37, "a0", "symbol"]], @@ -1158,5 +1163,14 @@ [[27, 31], "t9", "(function object object object object)"] ], + "(method 8 tie-fragment)": [ + [150, "a0", "(pointer int32)"], + [[157, 160], "a0", "basic"] + ], + + "letterbox": [[[29, 33], "v1", "dma-packet"]], + + "blackout": [[[20, 24], "v1", "dma-packet"]], + "placeholder-do-not-add-below": [] } diff --git a/decompiler/config/jak1_ntsc_black_label/var_names.jsonc b/decompiler/config/jak1_ntsc_black_label/var_names.jsonc index fb5d4f1bae..306c264332 100644 --- a/decompiler/config/jak1_ntsc_black_label/var_names.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/var_names.jsonc @@ -1385,24 +1385,22 @@ }, "display-loop": { - "vars": { - - } + "vars": {} }, "adgif-shader-login": { - "args":"shader", + "args": "shader", "vars": { - "s5-0":"tex" + "s5-0": "tex" } }, "adgif-shader-login-fast": { - "args":["shader"], - "vars":{ - "v1-4":"tex-id", - "a0-9":"dir-entry", - "s5-0":"tex" + "args": ["shader"], + "vars": { + "v1-4": "tex-id", + "a0-9": "dir-entry", + "s5-0": "tex" } }, @@ -2317,5 +2315,50 @@ "vars": { "v0-0": ["ret-val", "symbol"] } + }, + + "letterbox": { + "vars": { + "s5-0": "dma-buf", + "v1-5": ["pkt", "dma-packet"] + } + }, + + "blackout": { + "vars": { + "s5-0": "dma-buf", + "gp-0": "sprite-dma-data", + "v1-4": ["pkt", "dma-packet"] + } + }, + + "set-master-mode": { + "args": ["new-mode"], + "vars": { "v1-3": "mode" } + }, + + "main-cheats": { + "vars": { + "v1-13": "cheatmode-state", + "v1-158": "cheatmode-debug-state", + "v1-303": "cheat-language-state", + "v1-394": "cheat-pal-state", + "s5-9": "dma-buff", + "gp-9": "dma-start", + "v1-533": ["dma-pkt", "dma-packet"], + "gp-10":"timeout", + "v1-548":"inactive-timeout", + "gp-11":"game-end-proc" + } + }, + + "load-game-text-info": { + "args":["txt-name","curr-text","heap"], + "vars":{ + "sv-16":"heap-sym-heap", + "sv-24":"lang", + "sv-32":"load-status", + "sv-40":"heap-free" + } } } diff --git a/decompiler/util/DecompilerTypeSystem.h b/decompiler/util/DecompilerTypeSystem.h index ef5cfc05c8..d1ec31e446 100644 --- a/decompiler/util/DecompilerTypeSystem.h +++ b/decompiler/util/DecompilerTypeSystem.h @@ -6,7 +6,7 @@ namespace decompiler { class TP_Type; -struct TypeState; +class TypeState; class DecompilerTypeSystem { public: diff --git a/decompiler/util/TP_Type.h b/decompiler/util/TP_Type.h index 990cb93260..bde2ffa536 100644 --- a/decompiler/util/TP_Type.h +++ b/decompiler/util/TP_Type.h @@ -335,11 +335,12 @@ class TP_Type { int64_t m_extra_multiplier = 0; }; -struct TypeState { +class TypeState { + private: + public: + std::unordered_map spill_slots; TP_Type gpr_types[32]; TP_Type fpr_types[32]; - std::unordered_map spill_slots; - std::string print_gpr_masked(u32 mask) const; TP_Type& get(const Register& r) { switch (r.get_kind()) { diff --git a/decompiler/util/data_decompile.cpp b/decompiler/util/data_decompile.cpp index cc562faad8..8b237ffffa 100644 --- a/decompiler/util/data_decompile.cpp +++ b/decompiler/util/data_decompile.cpp @@ -275,6 +275,150 @@ std::string print_def(const goos::Object& obj) { } return obj.print(); } + +/*! + * Start at start_byte, and find the location of the next label. + * Will only check labels that are in the given segment. + */ +int index_of_closest_following_label_in_segment(int start_byte, + int seg, + const std::vector& labels) { + int result_idx = -1; + int closest_byte = -1; + for (int i = 0; i < (int)labels.size(); i++) { + const auto& label = labels.at(i); + if (label.target_segment == seg) { + if (result_idx == -1) { + result_idx = i; + closest_byte = label.offset; + } else { + if (label.offset > start_byte && label.offset < closest_byte) { + result_idx = i; + closest_byte = label.offset; + } + } + } + } + return result_idx; +} + +/*! + * Attempt to decompile a reference to an inline array, without knowing the size. + */ +goos::Object decomp_ref_to_inline_array_guess_size( + const std::vector& words, + const std::vector& labels, + int my_seg, + int field_location, + const TypeSystem& ts, + const Field& data_field, + const std::vector>& all_words, + const LinkedObjectFile* file, + const TypeSpec& array_elt_type, + int stride) { + fmt::print("Decomp decomp_ref_to_inline_array_guess_size {}\n", array_elt_type.print()); + + // verify that the field is the right type. + assert(data_field.type() == TypeSpec("inline-array", {array_elt_type})); + + // verify the stride matches the type system + auto elt_type_info = ts.lookup_type(array_elt_type); + assert(stride == align(elt_type_info->get_size_in_memory(), + elt_type_info->get_inline_array_stride_alignment())); + + // the input is the location of the data field. + // we expect that to be a label: + assert((field_location % 4) == 0); + auto pointer_to_data = words.at(field_location / 4); + assert(pointer_to_data.kind == LinkedWord::PTR); + + // the data shouldn't have any labels in the middle of it, so we can find the end of the array + // by searching for the label after the start label. + const auto& start_label = labels.at(pointer_to_data.label_id); + int end_label_idx = + index_of_closest_following_label_in_segment(start_label.offset, my_seg, labels); + assert(end_label_idx >= 0); + const auto& end_label = labels.at(end_label_idx); + fmt::print("Data is from {} to {}\n", start_label.name, end_label.name); + + // now we can figure out the size + int size_bytes = end_label.offset - start_label.offset; + int size_elts = size_bytes / stride; // 32 bytes per ocean-near-index + int leftover_bytes = size_bytes % stride; + fmt::print("Size is {} bytes: {} elts, {} left over\n", size_bytes, size_elts, leftover_bytes); + + // if we have leftover, should verify that its all zeros, or that it's the type pointer + // of the next basic in the data section. + // ex: + // .word + // .type + // L21: ; label some other basic + // + int padding_start = end_label.offset - leftover_bytes; + int padding_end = end_label.offset; + for (int pad_byte_idx = padding_start; pad_byte_idx < padding_end; pad_byte_idx++) { + auto& word = all_words.at(my_seg).at(pad_byte_idx / 4); + switch (word.kind) { + case LinkedWord::PLAIN_DATA: + assert(word.get_byte(pad_byte_idx) == 0); + break; + case LinkedWord::TYPE_PTR: + break; + default: + assert(false); + } + } + + // now disassemble: + std::vector array_def = {pretty_print::to_symbol( + fmt::format("new 'static 'inline-array {} {}", array_elt_type.print(), size_elts))}; + + for (int elt = 0; elt < size_elts; elt++) { + // for each element, create a fake temporary label at the start to identify it + DecompilerLabel fake_label; + fake_label.target_segment = my_seg; // same segment + fake_label.offset = start_label.offset + elt * stride; + array_def.push_back( + decompile_at_label(array_elt_type, fake_label, labels, all_words, ts, file)); + } + + // build into a list. + return pretty_print::build_list(array_def); +} + +/*! + * Decompile the data field of ocean-near-indices, which is an (inline-array ocean-near-index). + * This is like a C++ ocean_near_index*, meaning we don't know how long the array is. + * We know all the data in a ocean_near_index is just integers, so we can guess that the end + * of the array is just the location of the next label. + * There's a chance that this will include some padding in the array and make it too long, + * but there is no harm in that. + */ +goos::Object ocean_near_indices_decompile(const std::vector& words, + const std::vector& labels, + int my_seg, + int field_location, + const TypeSystem& ts, + const Field& data_field, + const std::vector>& all_words, + const LinkedObjectFile* file) { + return decomp_ref_to_inline_array_guess_size(words, labels, my_seg, field_location, ts, + data_field, all_words, file, + TypeSpec("ocean-near-index"), 32); +} + +goos::Object ocean_mid_masks_decompile(const std::vector& words, + const std::vector& labels, + int my_seg, + int field_location, + const TypeSystem& ts, + const Field& data_field, + const std::vector>& all_words, + const LinkedObjectFile* file) { + return decomp_ref_to_inline_array_guess_size(words, labels, my_seg, field_location, ts, + data_field, all_words, file, + TypeSpec("ocean-mid-mask"), 8); +} } // namespace goos::Object decompile_structure(const TypeSpec& type, @@ -325,11 +469,18 @@ goos::Object decompile_structure(const TypeSpec& type, // check alignment if (offset_location % 8) { - throw std::runtime_error(fmt::format( - "Tried to decompile a structure with type type {} (type offset {}) at label {}, but it has " - "alignment {}, which is not valid. {}", + std::string error = fmt::format( + "Decompiling a structure with type type {} (type offset {}) at label {}, but it has " + "alignment {}, which is not valid. This might be okay for a packed inline array, but " + "shouldn't happen for basics. {}", type_info->get_name(), type_info->get_offset(), label.name, (offset_location % 8), - (offset_location & 0b10) ? "Maybe it is actually a pair?" : "")); + (offset_location & 0b10) ? "Maybe it is actually a pair?" : ""); + + if (is_basic || !type_info->is_packed()) { + throw std::runtime_error(error); + } else { + // fmt::print("{}\n", error); + } } // check enough room @@ -448,11 +599,22 @@ goos::Object decompile_structure(const TypeSpec& type, fmt::format("Dynamic value field {} in static data type {} not yet implemented", field.name(), actual_type.print())); } else { - std::vector bytes_out; - for (int byte_idx = field_start; byte_idx < field_end; byte_idx++) { - bytes_out.push_back(obj_words.at(byte_idx / 4).get_byte(byte_idx % 4)); + if (field.name() == "data" && type.print() == "ocean-near-indices") { + // first, get the label: + field_defs_out.emplace_back( + field.name(), ocean_near_indices_decompile(obj_words, labels, label.target_segment, + field_start, ts, field, words, file)); + } else if (field.name() == "data" && type.print() == "ocean-mid-masks") { + field_defs_out.emplace_back( + field.name(), ocean_mid_masks_decompile(obj_words, labels, label.target_segment, + field_start, ts, field, words, file)); + } else { + std::vector bytes_out; + for (int byte_idx = field_start; byte_idx < field_end; byte_idx++) { + bytes_out.push_back(obj_words.at(byte_idx / 4).get_byte(byte_idx % 4)); + } + field_defs_out.emplace_back(field.name(), decompile_value(field.type(), bytes_out, ts)); } - field_defs_out.emplace_back(field.name(), decompile_value(field.type(), bytes_out, ts)); } } else { diff --git a/docs/markdown/progress-notes/changelog.md b/docs/markdown/progress-notes/changelog.md index a8b637fcd4..494ea29a28 100644 --- a/docs/markdown/progress-notes/changelog.md +++ b/docs/markdown/progress-notes/changelog.md @@ -175,4 +175,6 @@ - Methods can now be `:replace`d to override their type from their parent. Use this with extreme care. - TypeSpecs now support "tags". This can specify a `:behavior` tag for a function. - Lambdas and methods now support `:behavior` to specify the current process type. -- `defbehavior` has been added to define a global behavior. \ No newline at end of file +- `defbehavior` has been added to define a global behavior. +- Auto-generated inspect methods of process now start by calling the parent type's inspect, like in GOAL. +- Fields with type `(inline-array thing)` can now be set in statics. \ No newline at end of file diff --git a/game/common/game_common_types.h b/game/common/game_common_types.h new file mode 100644 index 0000000000..7f449a0f13 --- /dev/null +++ b/game/common/game_common_types.h @@ -0,0 +1,13 @@ +#pragma once + +//! Supported languages. +enum class Language { + English = 0, + French = 1, + German = 2, + Spanish = 3, + Italian = 4, + Japanese = 5, + UK_English = 6, + // uk english? +}; \ No newline at end of file diff --git a/game/kernel/kboot.cpp b/game/kernel/kboot.cpp index 16afdd0bea..0399b89aaa 100644 --- a/game/kernel/kboot.cpp +++ b/game/kernel/kboot.cpp @@ -12,6 +12,7 @@ #include "common/common_types.h" #include "common/util/Timer.h" +#include "game/common/game_common_types.h" #include "game/sce/libscf.h" #include "kboot.h" #include "kmachine.h" diff --git a/game/kernel/kboot.h b/game/kernel/kboot.h index 8b08905246..779d905f8e 100644 --- a/game/kernel/kboot.h +++ b/game/kernel/kboot.h @@ -5,23 +5,8 @@ * GOAL Boot. Contains the "main" function to launch GOAL runtime. */ -#ifndef RUNTIME_KBOOT_H -#define RUNTIME_KBOOT_H - #include "common/common_types.h" -//! Supported languages. -enum class Language { - English = 0, - French = 1, - German = 2, - Spanish = 3, - Italian = 4, - Japanese = 5, - UK_English = 6, - // uk english? -}; - struct MasterConfig { u16 language; //! GOAL language 0 u16 aspect; //! SCE_ASPECT 2 @@ -76,5 +61,3 @@ void KernelCheckAndDispatch(); void KernelShutdown(); extern u32 MasterUseKernel; - -#endif // RUNTIME_KBOOT_H diff --git a/game/kernel/kdgo.cpp b/game/kernel/kdgo.cpp index fee23cf06e..639e36c2ee 100644 --- a/game/kernel/kdgo.cpp +++ b/game/kernel/kdgo.cpp @@ -364,7 +364,7 @@ void load_and_link_dgo_from_c(const char* name, Ptr heap, u32 linkFla char objName[64]; strcpy(objName, (dgoObj + 4).cast().c()); // name from dgo object header - lg::debug("[link and exec] {} {}", objName, lastObjectLoaded); + lg::debug("[link and exec] {} {} {}", objName, lastObjectLoaded, objSize); link_and_exec(obj, objName, objSize, heap, linkFlag); // link now! // inform IOP we are done diff --git a/game/kernel/kmemcard.cpp b/game/kernel/kmemcard.cpp index e8279830dd..fe80470bba 100644 --- a/game/kernel/kmemcard.cpp +++ b/game/kernel/kmemcard.cpp @@ -8,14 +8,16 @@ //#include "ps2/common_types.h" //#include "kernel/kmachine.h" #include "kmemcard.h" +#include // static s32 next; -// static s32 language; +static s32 language; // static MemoryCardOperation op; // static mc_info mc[2]; void kmemcard_init_globals() { // next = 0; + language = 0; } ///*! @@ -65,14 +67,14 @@ void kmemcard_init_globals() { // //} // -///*! -// * Set the language or something. -// */ -// void MC_set_language(s32 l) { -// printf("Language set to %d\n", l); -// language = l; -//} -// +/*! + * Set the language or something. + */ +void MC_set_language(s32 l) { + printf("Language set to %d\n", l); + language = l; +} + // u64 MC_format(s32 param) { // u64 can_add = op.operation == NO_OP; // if(can_add) { diff --git a/game/kernel/kmemcard.h b/game/kernel/kmemcard.h index c19f52997e..f40781e446 100644 --- a/game/kernel/kmemcard.h +++ b/game/kernel/kmemcard.h @@ -5,9 +5,6 @@ * Memory card interface. Very messy code. */ -#ifndef JAK_KMEMCARD_H -#define JAK_KMEMCARD_H - #include "common/common_types.h" #include "kmachine.h" @@ -79,5 +76,3 @@ u64 MC_load(s32 param, s32 param2, Ptr data); void MC_makefile(s32 port, s32 size); u32 MC_check_result(); void MC_get_status(s32 slot, Ptr info); - -#endif // JAK_KMEMCARD_H diff --git a/game/kernel/kscheme.cpp b/game/kernel/kscheme.cpp index 825664432f..a4f45d98aa 100644 --- a/game/kernel/kscheme.cpp +++ b/game/kernel/kscheme.cpp @@ -13,6 +13,7 @@ #include "kmalloc.h" #include "kprint.h" #include "fileio.h" +#include "kmemcard.h" #include "kboot.h" #include "kdsnetm.h" #include "kdgo.h" @@ -1947,7 +1948,7 @@ s32 InitHeapAndSymbol() { // make_function_symbol_from_c("mc-check-result", &CKernel::not_yet_implemented); // make_function_symbol_from_c("mc-get-slot-info", &CKernel::not_yet_implemented); // make_function_symbol_from_c("mc-makefile", &CKernel::not_yet_implemented); - // make_function_symbol_from_c("kset-language", &CKernel::not_yet_implemented); + make_function_symbol_from_c("kset-language", (void*)MC_set_language); // set *debug-segment* auto ds_symbol = intern_from_c("*debug-segment*"); diff --git a/game/overlord/srpc.cpp b/game/overlord/srpc.cpp index 17bcbfedcc..7070b27f26 100644 --- a/game/overlord/srpc.cpp +++ b/game/overlord/srpc.cpp @@ -4,6 +4,7 @@ #include "srpc.h" #include "game/sce/iop.h" #include "game/common/loader_rpc_types.h" +#include "game/common/game_common_types.h" #include "common/versions.h" #include "sbank.h" #include "iso_api.h" @@ -16,11 +17,16 @@ uint8_t gLoaderBuf[SRPC_MESSAGE_SIZE]; int32_t gSoundEnable = 1; u32 gInfoEE = 0; // EE address where we should send info on each frame. +// english, french, germain, spanish, italian, japanese, uk. +static const char* languages[] = {"ENG", "FRE", "GER", "SPA", "ITA", "JAP", "UKE"}; +const char* gLanguage = nullptr; + void srpc_init_globals() { memset((void*)&gMusicTweakInfo, 0, sizeof(gMusicTweakInfo)); memset((void*)gLoaderBuf, 0, sizeof(gLoaderBuf)); gSoundEnable = 1; gInfoEE = 0; + gLanguage = languages[(int)Language::English]; } // todo Thread_Player @@ -71,6 +77,11 @@ void* RPC_Loader(unsigned int /*fno*/, void* data, int size) { gInfoEE = cmd->irx_version.ee_addr; return cmd; } break; + case SoundCommand::SET_LANGUAGE: { + gLanguage = languages[cmd->set_language.langauge_id]; + printf("IOP language: %s\n", gLanguage); // added. + break; + } default: printf("Unhandled RPC Loader command %d\n", (int)cmd->command); assert(false); diff --git a/game/overlord/srpc.h b/game/overlord/srpc.h index a6dd369bcb..56e1156770 100644 --- a/game/overlord/srpc.h +++ b/game/overlord/srpc.h @@ -52,12 +52,17 @@ struct SoundRpcBankCommand { char bank_name[16]; }; +struct SoundRpcSetLanguageCommand { + u32 langauge_id; // game_common_types.h, Language +}; + struct SoundRpcCommand { u16 rsvd1; SoundCommand command; union { SoundRpcGetIrxVersion irx_version; SoundRpcBankCommand load_bank; + SoundRpcSetLanguageCommand set_language; }; }; diff --git a/game/sce/libscf.cpp b/game/sce/libscf.cpp index 5a18fc00fa..cb71e8beeb 100644 --- a/game/sce/libscf.cpp +++ b/game/sce/libscf.cpp @@ -2,7 +2,7 @@ namespace ee { int sceScfGetAspect() { - return SCE_ASPECT_169; + return SCE_ASPECT_43; } int sceScfGetLanguage() { diff --git a/goal_src/engine/anim/mspace-h.gc b/goal_src/engine/anim/mspace-h.gc index ad8aa210ad..cd885dc4f4 100644 --- a/goal_src/engine/anim/mspace-h.gc +++ b/goal_src/engine/anim/mspace-h.gc @@ -5,6 +5,8 @@ ;; name in dgo: mspace-h ;; dgos: GAME, ENGINE +;; mspace is the skeleton-based animation system. + (deftype joint (basic) ((name basic :offset-assert 4) (number int32 :offset-assert 8) @@ -39,7 +41,7 @@ ) (deftype skeleton (inline-array-class) - () + ((bones bone :inline :dynamic)) :method-count-assert 9 :size-assert #x10 :flag-assert #x900000010 diff --git a/goal_src/engine/camera/math-camera-h.gc b/goal_src/engine/camera/math-camera-h.gc index 7c79bfa69f..739087b1e1 100644 --- a/goal_src/engine/camera/math-camera-h.gc +++ b/goal_src/engine/camera/math-camera-h.gc @@ -6,6 +6,10 @@ ;; dgos: GAME, ENGINE +;; The math-camera is a global that contains camera projection and culling matrices. +;; It also contains some GIF stuff, but these seem to be wrong/unused. +;; Some of the code here may be extremely old and unused. + (deftype vis-gif-tag (structure) ((fog0 uint32 :offset-assert 0) (strip uint32 :offset-assert 4) diff --git a/goal_src/engine/camera/math-camera.gc b/goal_src/engine/camera/math-camera.gc index 2d8ca3ced8..8697033dfa 100644 --- a/goal_src/engine/camera/math-camera.gc +++ b/goal_src/engine/camera/math-camera.gc @@ -535,6 +535,7 @@ ) (defun init-for-transform ((arg0 matrix)) + "Sets up VU0 registers with camera info. Most rendering stuff doesn't use this." (rlet ((vf1 :class vf) (vf17 :class vf) (vf18 :class vf) diff --git a/goal_src/engine/data/art-h.gc b/goal_src/engine/data/art-h.gc index 04f4e86e73..e8f6143dd7 100644 --- a/goal_src/engine/data/art-h.gc +++ b/goal_src/engine/data/art-h.gc @@ -149,7 +149,7 @@ ) (deftype art-mesh-anim (art-element) - () + ((data basic :dynamic :offset-assert 32)) :method-count-assert 13 :size-assert #x20 :flag-assert #xd00000020 diff --git a/goal_src/engine/debug/debug.gc b/goal_src/engine/debug/debug.gc index c1b0567f0e..f7e01565f6 100644 --- a/goal_src/engine/debug/debug.gc +++ b/goal_src/engine/debug/debug.gc @@ -155,7 +155,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - (the-as int arg1) + arg1 a2-1 (the-as (pointer dma-tag) a3-20) ) @@ -374,7 +374,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - (the-as int arg0) + arg0 a2-1 (the-as (pointer dma-tag) a3-16) ) @@ -424,7 +424,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - (the-as int arg0) + arg0 s5-0 (the-as (pointer dma-tag) a3-4) ) @@ -617,7 +617,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - (the-as int arg1) + arg1 a2-1 (the-as (pointer dma-tag) a3-7) ) @@ -884,7 +884,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - (the-as int arg1) + arg1 s5-0 (the-as (pointer dma-tag) a3-11) ) @@ -1388,7 +1388,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - (the-as int arg1) + arg1 s5-0 (the-as (pointer dma-tag) a3-3) ) @@ -1443,7 +1443,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 67 + (bucket-id debug-draw0) s4-0 (the-as (pointer dma-tag) a3-1) ) diff --git a/goal_src/engine/debug/memory-usage-h.gc b/goal_src/engine/debug/memory-usage-h.gc index 13ed8b18ce..f25a362136 100644 --- a/goal_src/engine/debug/memory-usage-h.gc +++ b/goal_src/engine/debug/memory-usage-h.gc @@ -5,17 +5,24 @@ ;; name in dgo: memory-usage-h ;; dgos: GAME, ENGINE +;; The memory-usage system is used to track how memory is arranged. +;; All basics have a mem-usage method that will add its memory usage to +;; a memory-usage-block. It also takes some flags that are currently unknown. + + +;; Information for a single category. (deftype memory-usage-info (structure) ((name string :offset-assert 0) - (count int32 :offset-assert 4) - (used int32 :offset-assert 8) - (total int32 :offset-assert 12) + (count int32 :offset-assert 4) ;; meaning depends on category. For textures, it's the number of textures, for example. + (used int32 :offset-assert 8) ;; how much memory is in use (not counting padding) + (total int32 :offset-assert 12) ;; actual total memory used, including padding to 16-bytes, etc. ) :method-count-assert 9 :size-assert #x10 :flag-assert #x900000010 ) +;; Memory info for all categories (deftype memory-usage-block (basic) ((work-bsp basic :offset-assert 4) (length int32 :offset-assert 8) @@ -31,8 +38,14 @@ ) ) + +;; The main RAM usage memory info (define *mem-usage* (new 'debug 'memory-usage-block)) + +;; The DMA memory usage info (define *dma-mem-usage* (new 'debug 'memory-usage-block)) + +;; Used internally for computing memory info (define *temp-mem-usage* (the-as memory-usage-block #f)) @@ -41,7 +54,103 @@ (defenum mem-usage-id :bitfield #f :type uint32 + (drawable-group 0) + (tfragment-unknown 1) ;; made up name + (tfragment-base 2) + (tfragment-common 3) + (tfragment-level0 4) + (tfragment-level1 5) + (tfragment-color 6) + (tfragment-debug 7) + (tfragment-pal 8) + (tie-fragment 9) + (tie-gif 10) + (tie-point 11) + (tie-colors 12) + (tie-draw-points 13) + (tie-debug 14) + ;; 15?? + (tie-pal 16) + (tie-generic 17) + (instance-tie 18) + (instance-tie-colors0 19) + (instance-tie-colors1 20) + (instance-tie-colors2 21) + (instance-tie-colors3 22) + (instance-tie-colors 23) + (prototype-bucket-shrub 24) + (generic-shrub 25) + (generic-shrub-data 26) + (shrubbery 27) + (shrubbery-object 28) + (shrubbery-vertex 29) + (shrubbery-color 30) + (shrubbery-stq 31) + (shrubbery-pal 32) + (billboard 33) + ;; ??? + (entity 43) + (camera 44) + (nav-mesh 45) + ;; ?? + (res 48) + (ambient 49) + (collide-fragment-0 50) + (collision-poly-0 51) + (collision-vertex-0 52) + (collide-fragment-1 53) + (collision-poly-1 54) + (collision-vertex-1 55) + (bsp-main 56) + (bsp-misc 57) + (bsp-node 58) + (bsp-leaf-vis-self 59) + (bsp-leaf-vis-adj 60) + (draw-node 61) + (pat 62) + (level-code 63) + (entity-links 64) ;; or ambient links, its messed up + (joint 65) + (joint-anim-compressed 66) + ;; + (art-group 70) + (art-mesh-anim 71) + (art-mesh-geo 72) + (art-joint-geo 73) + (art-joint-anim 74) + (merc-ctrl 75) + (joint-anim-drawable 76) + (blend-shape 77) + (collide-mesh 78) (texture 79) + (string 80) + (array 81) + ;; + (debug-dma 84) ;; maybe + (sky-dma 85) ;; maybe + ;; + (4k-dead-pool 87) + (8k-dead-pool 88) + (16k-dead-pool 89) + (nk-dead-pool 90) + (target-dead-pool 91) + (camera-dead-pool 92) + (debug-dead-pool 93) + (process-active 94) + (heap-total 95) + (heap-process 96) + (heap-header 97) + (heap-thread 98) + (heap-root 99) + (heap-draw-control 100) + (heap-joint-control 101) + (heap-cspace 102) + (heap-bone 103) + (heap-part 104) + (heap-collide-prim 105) + (heap-misc 106) + (shadow-geo 107) + (eye-anim 108) ) ;; get a memory usage id as an integer. diff --git a/goal_src/engine/debug/menu.gc b/goal_src/engine/debug/menu.gc index da769295d9..43dfa02efb 100644 --- a/goal_src/engine/debug/menu.gc +++ b/goal_src/engine/debug/menu.gc @@ -976,7 +976,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 68 + (bucket-id debug-draw1) s4-0 (the-as (pointer dma-tag) a3-1) ) @@ -1041,7 +1041,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 68 + (bucket-id debug-draw1) s5-0 (the-as (pointer dma-tag) a3-1) ) @@ -1096,7 +1096,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 68 + (bucket-id debug-draw1) s5-0 (the-as (pointer dma-tag) a3-1) ) @@ -1213,7 +1213,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 68 + (bucket-id debug-draw1) s1-0 (the-as (pointer dma-tag) a3-2) ) @@ -1253,7 +1253,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 68 + (bucket-id debug-draw1) sv-32 (the-as (pointer dma-tag) a3-3) ) diff --git a/goal_src/engine/dma/dma-bucket.gc b/goal_src/engine/dma/dma-bucket.gc index 9c6a39ccd2..5bb55edc85 100644 --- a/goal_src/engine/dma/dma-bucket.gc +++ b/goal_src/engine/dma/dma-bucket.gc @@ -72,7 +72,7 @@ bucket ) -(defun dma-bucket-insert-tag ((base dma-bucket) (idx int) (tag-start pointer) (tag-end (pointer dma-tag))) +(defun dma-bucket-insert-tag ((base dma-bucket) (idx bucket-id) (tag-start pointer) (tag-end (pointer dma-tag))) "Add a dma chain to the idx bucket" ;; find the bucket diff --git a/goal_src/engine/dma/dma-h.gc b/goal_src/engine/dma/dma-h.gc index e210a9c51c..af8140d175 100644 --- a/goal_src/engine/dma/dma-h.gc +++ b/goal_src/engine/dma/dma-h.gc @@ -213,6 +213,7 @@ :type int32 :bitfield #f + (bucket-3 3) (tfrag-tex0 5) ;; merc0 10 ;; generic0 11 @@ -244,7 +245,7 @@ (water-tex1 60) ;; merc1 61 ;; generic1 62 - ;; common tex 65 + (bucket-65 65) ;; debug spheres? 67 (debug-draw0 67) ;; debug text 68 diff --git a/goal_src/engine/draw/draw-node-h.gc b/goal_src/engine/draw/draw-node-h.gc index f587eee1b6..fb8c710982 100644 --- a/goal_src/engine/draw/draw-node-h.gc +++ b/goal_src/engine/draw/draw-node-h.gc @@ -17,6 +17,19 @@ ;; field distance is a float printed as hex? ) +(deftype drawable-inline-array-node (drawable-inline-array) + ((data draw-node 1 :inline) + (pad uint32) + ) + :method-count-assert 18 + :size-assert #x44 + :flag-assert #x1200000044 + ;; too many basic blocks + (:methods + + ) + ) + ;; the types of these fields are a guess for now. (deftype draw-node-dma (structure) ((banka draw-node 32 :inline :offset-assert 0) diff --git a/goal_src/engine/draw/drawable-ambient-h.gc b/goal_src/engine/draw/drawable-ambient-h.gc index 303707c007..daec1beeb3 100644 --- a/goal_src/engine/draw/drawable-ambient-h.gc +++ b/goal_src/engine/draw/drawable-ambient-h.gc @@ -18,14 +18,6 @@ ) ) -(defmethod inspect drawable-ambient ((obj drawable-ambient)) - (format #t "[~8x] ~A~%" obj (-> obj type)) - (format #t "~Tid: ~D~%" (-> obj id)) - (format #t "~Tbsphere: ~`vector`P~%" (-> obj bsphere)) - (format #t "~Tambient: ~A~%" (-> obj ambient)) - obj - ) - (deftype drawable-tree-ambient (drawable-tree) () :method-count-assert 18 @@ -68,25 +60,9 @@ ) ) -(defmethod inspect level-hint ((obj level-hint)) - (let ((t9-0 (method-of-type process inspect))) - (t9-0 obj) - ) - (format #t "~T~Ttext-id-to-display: ~D~%" (-> obj text-id-to-display)) - (format #t "~T~Tsound-to-play: ~A~%" (-> obj sound-to-play)) - (format #t "~T~Ttrans: #~%" (-> obj trans)) - (format #t "~T~Tsound-id: ~D~%" (-> obj sound-id)) - (format #t "~T~Tmode: ~A~%" (-> obj mode)) - (format #t "~T~Ttotal-time: ~D~%" (-> obj total-time)) - (format #t "~T~Ttotal-off-time: ~D~%" (-> obj total-off-time)) - (format #t "~T~Tlast-time: ~D~%" (-> obj last-time)) - (format #t "~T~Tvoicebox: ~D~%" (-> obj voicebox)) - obj - ) - (deftype ambient-list (structure) ((num-items int32 :offset-assert 0) - (items uint32 2048 :offset-assert 4) + (items drawable-ambient 2048 :offset-assert 4) ) :method-count-assert 9 :size-assert #x2004 @@ -95,4 +71,4 @@ (define-extern kill-current-level-hint (function pair pair symbol none)) -(define-extern level-hint-spawn (function game-text-id string symbol process-tree int none)) \ No newline at end of file +(define-extern level-hint-spawn (function game-text-id string symbol process-tree int none)) diff --git a/goal_src/engine/draw/drawable-h.gc b/goal_src/engine/draw/drawable-h.gc index a16467d69b..48514eb616 100644 --- a/goal_src/engine/draw/drawable-h.gc +++ b/goal_src/engine/draw/drawable-h.gc @@ -5,6 +5,8 @@ ;; name in dgo: drawable-h ;; dgos: GAME, ENGINE +(declare-type ambient-list structure) + ;; These are the base classes for the draw nodes in the engine. (deftype drawable (basic) @@ -20,10 +22,10 @@ (dummy-11 (_type_ int) none 11) ; int - length (dummy-12 (_type_ int) none 12) ; int - length (dummy-13 (_type_ int) none 13) ; int - length - (dummy-14 () none 14) + (dummy-14 () none 14) ;; related to culling? (dummy-15 (_type_) none 15) (dummy-16 (_type_ object object) object 16) - (dummy-17 () none 17) + (dummy-17 (_type_ sphere int ambient-list) none 17) ) ) @@ -40,4 +42,4 @@ ;; assuming (state process-drawable) (define-extern process-drawable-art-error state) -(declare-type process-drawable process) \ No newline at end of file +(declare-type process-drawable process) diff --git a/goal_src/engine/engine/connect.gc b/goal_src/engine/engine/connect.gc index 92be350d79..bb386b2903 100644 --- a/goal_src/engine/engine/connect.gc +++ b/goal_src/engine/engine/connect.gc @@ -8,6 +8,8 @@ ;; This extremely confusing "connection system" allows the connection between ;; "engines" and "processes". Basically, a process may add connections to an engine. ;; A "connection" is really just a function that gets called when the engine runs. +;; Another way to use the system is as a queue of messages from processes to the engine, +;; without using a function. ;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/goal_src/engine/game/game-info-h.gc b/goal_src/engine/game/game-info-h.gc index 6398a381a7..8ac3204405 100644 --- a/goal_src/engine/game/game-info-h.gc +++ b/goal_src/engine/game/game-info-h.gc @@ -264,7 +264,7 @@ (enter-level-time (array uint64) :offset-assert 212) (in-level-time (array uint64) :offset-assert 216) (blackout-time uint64 :offset-assert 224) - (letterbox-time uint64 :offset-assert 232) + (letterbox-time uint64 :offset-assert 232) ;; time to turn off letterboxing, base-frame (hint-play-time uint64 :offset-assert 240) (display-text-time uint64 :offset-assert 248) (display-text-handle uint64 :offset-assert 256) @@ -274,8 +274,8 @@ (auto-save-status uint32 :offset-assert 280) (auto-save-card int32 :offset-assert 284) (auto-save-which int32 :offset-assert 288) - (pov-camera-handle uint64 :offset-assert 296) - (other-camera-handle uint64 :offset-assert 304) + (pov-camera-handle handle :offset-assert 296) + (other-camera-handle handle :offset-assert 304) (death-pos vector-array :offset-assert 312) (dummy basic :offset-assert 316) (auto-save-count int32 :offset-assert 320) diff --git a/goal_src/engine/game/game-info.gc b/goal_src/engine/game/game-info.gc index 7eba001d35..061a975684 100644 --- a/goal_src/engine/game/game-info.gc +++ b/goal_src/engine/game/game-info.gc @@ -1136,8 +1136,8 @@ (set! (-> gp-0 auto-save-status) (the-as uint 1)) (set! (-> gp-0 auto-save-card) 0) (set! (-> gp-0 auto-save-which) -1) - (set! (-> gp-0 pov-camera-handle) (the-as uint #f)) - (set! (-> gp-0 other-camera-handle) (the-as uint #f)) + (set! (-> gp-0 pov-camera-handle) (the-as handle #f)) + (set! (-> gp-0 other-camera-handle) (the-as handle #f)) ) (defmethod get-death-count game-info ((obj game-info) (arg0 symbol)) diff --git a/goal_src/engine/game/main-h.gc b/goal_src/engine/game/main-h.gc index c048e06592..de42ef2723 100644 --- a/goal_src/engine/game/main-h.gc +++ b/goal_src/engine/game/main-h.gc @@ -5,6 +5,7 @@ ;; name in dgo: main-h ;; dgos: GAME, ENGINE +;; Global engine settings: (define *stats-poly* #f) (define *stats-memory* #f) (define *stats-memory-short* #f) @@ -91,7 +92,9 @@ (define *subdivide-draw-mode* 0) (define *ocean-subdivide-draw-mode* 0) -;; don't overwrite the dproc if we're reloading this file. +;; *dproc* is the display process. +;; It is the main loop of the game. +;; don't overwrite the dproc if we're reloading this file (define-perm *dproc* process #f) (define *run* #f) @@ -129,7 +132,7 @@ ) (defun-extern movie? symbol) -(defun-extern set-blackout-frames int uint) +(defun-extern set-blackout-frames int int) (defun-extern on symbol process) (defun-extern off int) -(define-extern set-master-mode (function symbol none)) \ No newline at end of file +(define-extern set-master-mode (function symbol none)) diff --git a/goal_src/engine/game/main.gc b/goal_src/engine/game/main.gc index f118e1d06c..8a93e5871f 100644 --- a/goal_src/engine/game/main.gc +++ b/goal_src/engine/game/main.gc @@ -5,29 +5,1056 @@ ;; name in dgo: main ;; dgos: GAME, ENGINE -(defun movie? () - "Are we in a movie?" - (nonzero? (logand (-> *kernel-context* prevent-from-run) (process-mask movie))) +;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Letterbox and blackout +;;;;;;;;;;;;;;;;;;;;;;;;;; + +(defun set-letterbox-frames ((arg0 uint)) + "Set the letterbox frame counter for arg0 frames in the future" + (let ((v0-0 (+ (-> *display* base-frame-counter) arg0))) + (set! (-> *game-info* letterbox-time) v0-0) + v0-0 + ) + ) + +(defun letterbox () + "Draw the letterbox black rectangles" + (let* ((dma-buf (-> *display* frames (-> *display* on-screen) frame global-buf)) + (gp-0 (-> dma-buf base)) + ) + ;; draw the sprites (gp-0 points to this DMA data) + (draw-sprite2d-xy dma-buf 0 0 512 25 (new 'static 'rgba :a #x80)) + (draw-sprite2d-xy dma-buf 0 199 512 26 (new 'static 'rgba :a #x80)) + (let ((a3-2 (-> dma-buf base))) + (let ((pkt (the-as dma-packet (-> dma-buf base)))) + (set! (-> pkt dma) (new 'static 'dma-tag :id (dma-tag-id next))) + (set! (-> pkt vif0) (new 'static 'vif-tag)) + (set! (-> pkt vif1) (new 'static 'vif-tag)) + (set! (-> dma-buf base) (the-as pointer (&+ pkt 16))) + ) + + ;; add the sprites to debug-draw1, this makes sure it gets drawn at the very end. + (dma-bucket-insert-tag + (-> *display* frames (-> *display* on-screen) frame bucket-group) + (bucket-id debug-draw1) + gp-0 + (the-as (pointer dma-tag) a3-2) + ) + ) + ) + (none) ) (defun set-blackout-frames ((arg0 int)) + "Set the blackout frame counter. If arg0 is 0, disables blackout immediately. + Otherwise, this can only be used to increase the blackout period." (cond ((zero? arg0) (set! (-> *game-info* blackout-time) (-> *display* base-frame-counter)) ) (else - (set! (-> *game-info* blackout-time) (max (-> *game-info* blackout-time) (+ (-> *display* base-frame-counter) arg0))) + (set! (-> *game-info* blackout-time) (max (the int (-> *game-info* blackout-time)) + (the int (+ (-> *display* base-frame-counter) arg0)))) ) ) ) -(defun display-loop () - ;; this function doesnt decompile right now - (while #t - (suspend) - ;;(format #t "hello from the display loop~%") +(defun blackout () + "Draw the blackout rectangle, convering the entire screen in darkness." + (let* ((dma-buf (-> *display* frames (-> *display* on-screen) frame global-buf)) + (sprite-dma-data (-> dma-buf base)) + ) + (draw-sprite2d-xy dma-buf 0 0 512 224 (new 'static 'rgba :a #x80)) + (let ((a3-1 (-> dma-buf base))) + (let ((pkt (the-as dma-packet (-> dma-buf base)))) + (set! (-> pkt dma) (new 'static 'dma-tag :id (dma-tag-id next))) + (set! (-> pkt vif0) (new 'static 'vif-tag)) + (set! (-> pkt vif1) (new 'static 'vif-tag)) + (set! (-> dma-buf base) (the-as pointer (&+ pkt 16))) + ) + (dma-bucket-insert-tag + (-> *display* frames (-> *display* on-screen) frame bucket-group) + (bucket-id debug-draw1) + sprite-dma-data + (the-as (pointer dma-tag) a3-1) + ) + ) ) - + (none) + ) + + +;;;;;;;;;;;;;;;;;;;;; +;; Pause/Master Mode +;;;;;;;;;;;;;;;;;;;;; + +(defun paused? () + "Are we paused? True if *master-mode* = pause, progress is not hidden, or *master-mode* = menu" + (the-as symbol + (or (= *master-mode* 'pause) + (or (and *progress-process* (not (hidden? (-> *progress-process* 0)))) + (= *master-mode* 'menu) + ) + ) + ) + ) + +(defun set-master-mode ((new-mode symbol)) + "Update pause masks for the given mode, and set *master-mode*" + (set! *master-mode* new-mode) + ;;(if *debug-segment* + ;;(menu-respond-to-pause) TODO + ;; ) + (case *master-mode* + (('pause) + + ;; request the pause mask to be set in prevent-from-run. + ;; this will block any process with pause from running, pausing most game objects. + (if (not *debug-pause*) + (set! (-> *setting-control* default process-mask) + (logior (-> *setting-control* default process-mask) (process-mask pause)) + ) + ) + + ;; allow the menu to run. + (set! (-> *setting-control* default process-mask) + (logand (lognot (process-mask menu)) + (-> *setting-control* default process-mask) + ) + ) + + ;; ?? + (set! *pause-lock* #f) + (sound-group-pause (the-as uint 255)) + ;;(hide-progress-screen) TODO + ) + (('menu) + ;; I believe these masks are just to make the progress go away work. + (set! (-> *setting-control* default process-mask) + (logior (-> *setting-control* default process-mask) (process-mask menu)) + ) + (set! (-> *setting-control* default process-mask) + (logand (lognot (process-mask pause progress)) + (-> *setting-control* default process-mask) + ) + ) + (set! *pause-lock* #f) + ;;(hide-progress-screen) TODO + ) + (('progress) + ;; allow menu to run while in progress. + (set! (-> *setting-control* default process-mask) + (logand + (lognot (process-mask menu)) + (-> *setting-control* default process-mask) + ) + ) + + ;; activate the progress menu. + (when (not *progress-process*) + (activate-progress *dproc* 0) + (if (not *progress-process*) ;; if it doesn't want to activate, back to game. + (set-master-mode 'game) + ) + ) + ) + (('game) + ;; allow pausable/menu to run. + (set! (-> *setting-control* default process-mask) + (logand (lognot (process-mask pause menu)) + (-> *setting-control* default process-mask) + ) + ) + (sound-group-continue (the-as uint 255)) + ;;(hide-progress-screen) TODO + ) + ) + ;; apply settings now. + (copy-settings-from-target! *setting-control*) + 0 + (none) + ) + +(define *last-master-mode* 'game) + +(defun toggle-pause () + "Do pause/menu/progress transitions" + (case *master-mode* + (('game) + ;; coming from normal gameplay + (set! *last-master-mode* *master-mode*) + (set-master-mode + (cond + ;; first, check if the controller fell out, and jak is spawned + ((and (nonzero? (logand (-> *cpad-list* cpads 0 valid) 128)) *target*) + (if (or *progress-process* + (not (-> *setting-control* current allow-pause)) + ) + *master-mode* + 'pause ;; no controller, jak spawned, no progress open, pause allowed. + ) + ) + (else + (cond + ;; try to open the debug menu: + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons r3))) + ;; R3 pushed, no target. + (if *debug-segment* + 'menu ;; go to debug menu, when in debug mode. + *master-mode* + ) + ) + (else + (cond + ;; debug mode pause allowed with select or R2. + ((and (or (nonzero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons select))) + (nonzero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons r2))) + ) + *debug-segment* + ) + ;; pushing select or R2, and debug. allow pause. + 'pause + ) + (else + (cond + ;; ignore anything below here, unless we are pressing start, or debug. + ((and (not *debug-segment*) + (zero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons start))) + ) + *master-mode* + ) + + ;; if you pressed start, and progress isn't allowed, but pause is, do a pause. + ((not (progress-allowed?)) + (if (pause-allowed?) + 'pause + *master-mode* + ) + ) + + ;; pushing start. + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons start))) + ;; toggle between progress/game + (if *progress-process* + 'game + 'progress + ) + ) + (else + ;; nothing requested, stay in game. + *master-mode* + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + (('menu) + ;; in debug menu + (set-master-mode + (cond + ;; push R3 to exit to previous master mode. + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons r3))) + *last-master-mode* + ) + ;; select/R2 to pause. + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons select r2))) + (if *debug-segment* + 'pause + *master-mode* ;; not sure we can get to menu in non-debug... + ) + ) + (else + (cond + ((and (not (movie?)) (not *progress-process*)) + (if (not *target*) + 'pause + 'progress + ) + ) + (else + 'game + ) + ) + ) + ) + ) + (set! *pause-lock* + (and *cheat-mode* + (nonzero? + (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons r2)) + ) + ) + ) + ) + (('pause) + (set! *last-master-mode* *master-mode*) + (set-master-mode + (cond + ;; pause -> debug menu + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons r3))) + (if *debug-segment* + 'menu + *master-mode* + ) + ) + (else + (cond + ;; pause -> single frame advance (R2) + ((and *cheat-mode* + (nonzero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons select r2))) + ) + 'game + ) + ;; pause -> game + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons start))) + 'game + ) + (else + *master-mode* + ) + ) + ) + ) + ) + (set! *pause-lock* + (and *cheat-mode* (nonzero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons r2)))) + ) + ) + (('progress) + (set-master-mode + (cond + ;; progress -> debug + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons r3))) + (if *debug-segment* + 'menu + *master-mode* + ) + ) + (else + ;; un-progress + (if (nonzero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons start))) + *last-master-mode* + *master-mode* + ) + ) + ) + ) + (set! *pause-lock* + (and *cheat-mode* (nonzero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons r2)))) + ) + ) + ) + 0 + ) + +(define *screen-filter* + (new 'static 'screen-filter + :draw? #f + :color (new 'static 'rgba :g #x20 :b #x40 :a #x50) + ) + ) + +;;;;;;;;;;;;;;;;;;;;;; +;; Cheat Codes +;;;;;;;;;;;;;;;;;;;;;; + +(define *cheat-temp* (the-as (pointer int32) (malloc 'global 16))) +(define *master-exit* #f) +(define *progress-cheat* #f) + +(defun main-cheats () + "Handle cheat codes and timeout" + + ;; look for codes when L3 is pushed + (when (and (nonzero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons l3))) + (or *cheat-mode* (= *kernel-boot-message* 'play)) ;; not in demo + ) + (when (nonzero? (-> *cpad-list* cpads 0 button0-rel 0)) + (let ((cheatmode-state (-> *cheat-temp* 0))) + (cond + ((zero? cheatmode-state) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons up))) + (set! (-> *cheat-temp* 0) (+ (-> *cheat-temp* 0) 1)) + ) + (else (set! (-> *cheat-temp* 0) 0)) + ) + ) + ((= cheatmode-state 1) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons up))) + (set! (-> *cheat-temp* 0) (+ (-> *cheat-temp* 0) 1)) + ) + (else (set! (-> *cheat-temp* 0) 0)) + ) + ) + ((= cheatmode-state 2) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons down))) + (set! (-> *cheat-temp* 0) (+ (-> *cheat-temp* 0) 1)) + ) + (else (set! (-> *cheat-temp* 0) 0)) + ) + ) + ((= cheatmode-state 3) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons down))) + (set! (-> *cheat-temp* 0) (+ (-> *cheat-temp* 0) 1)) + ) + (else (set! (-> *cheat-temp* 0) 0)) + ) + ) + ((= cheatmode-state 4) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons left))) + (set! (-> *cheat-temp* 0) (+ (-> *cheat-temp* 0) 1)) + ) + (else (set! (-> *cheat-temp* 0) 0)) + ) + ) + ((= cheatmode-state 5) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons right))) + (set! (-> *cheat-temp* 0) (+ (-> *cheat-temp* 0) 1)) + ) + (else (set! (-> *cheat-temp* 0) 0)) + ) + ) + ((= cheatmode-state 6) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons left))) + (set! (-> *cheat-temp* 0) (+ (-> *cheat-temp* 0) 1)) + ) + (else (set! (-> *cheat-temp* 0) 0)) + ) + ) + ((= cheatmode-state 7) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons right))) + (set! (-> *cheat-temp* 0) (+ (-> *cheat-temp* 0) 1)) + ) + (else (set! (-> *cheat-temp* 0) 0)) + ) + ) + ((= cheatmode-state 8) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons x))) + (set! (-> *cheat-temp* 0) (+ (-> *cheat-temp* 0) 1)) + ) + (else (set! (-> *cheat-temp* 0) 0)) + ) + ) + ((= cheatmode-state 9) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons x))) + (set! (-> *cheat-temp* 0) (+ (-> *cheat-temp* 0) 1)) + ) + (else (set! (-> *cheat-temp* 0) 0)) + ) + ) + ((= cheatmode-state 10) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons square))) + (set! (-> *cheat-temp* 0) (+ (-> *cheat-temp* 0) 1)) + ) + (else (set! (-> *cheat-temp* 0) 0)) + ) + ) + ((= cheatmode-state 11) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons circle))) + (set! (-> *cheat-temp* 0) (+ (-> *cheat-temp* 0) 1)) + ) + (else (set! (-> *cheat-temp* 0) 0)) + ) + ) + ((= cheatmode-state 12) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons square))) + (set! (-> *cheat-temp* 0) (+ (-> *cheat-temp* 0) 1)) + ) + (else (set! (-> *cheat-temp* 0) 0)) + ) + ) + ((= cheatmode-state 13) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons circle))) + ;; got the code! + ;; not sure what this does, but prevents you from having r1 pressed on entry. + (set! (-> *cpad-list* cpads 0 button0-abs 0) + (logand (lognot (pad-buttons r1)) (-> *cpad-list* cpads 0 button0-abs 0)) + ) + (set! (-> *cpad-list* cpads 0 button0-rel 0) + (logand (lognot (pad-buttons r1)) (-> *cpad-list* cpads 0 button0-rel 0)) + ) + + ;; toggle! + (set! *cheat-mode* (not *cheat-mode*)) + (if *cheat-mode* + (sound-play-by-name (static-sound-name "select-menu") (new-sound-id) 1024 0 0 (the-as uint 1) (the-as vector #t)) + (sound-play-by-name (static-sound-name "cursor-options") (new-sound-id) 1024 0 0 (the-as uint 1) (the-as vector #t)) + ) + (set! (-> *cheat-temp* 0) 0) + ) + (else + ;; bad code, reset. + (set! (-> *cheat-temp* 0) 0) + ) + ) + ) + ) + ) + ) + + ;; cheat mode, part 2 + (when *cheat-mode* + (when (nonzero? (-> *cpad-list* cpads 0 button0-rel 0)) + (let ((cheatmode-debug-state (-> *cheat-temp* 1))) + (cond + ((zero? cheatmode-debug-state) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons circle))) + (set! (-> *cheat-temp* 1) (+ (-> *cheat-temp* 1) 1)) + ) + (else (set! (-> *cheat-temp* 1) 0)) + ) + ) + ((= cheatmode-debug-state 1) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons square))) + (set! (-> *cheat-temp* 1) (+ (-> *cheat-temp* 1) 1)) + ) + (else (set! (-> *cheat-temp* 1) 0)) + ) + ) + ((= cheatmode-debug-state 2) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons circle))) + (set! (-> *cheat-temp* 1) (+ (-> *cheat-temp* 1) 1)) + ) + (else (set! (-> *cheat-temp* 1) 0)) + ) + ) + ((= cheatmode-debug-state 3) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons square))) + (set! (-> *cheat-temp* 1) (+ (-> *cheat-temp* 1) 1)) + ) + (else (set! (-> *cheat-temp* 1) 0)) + ) + ) + ((= cheatmode-debug-state 4) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons x))) + (set! (-> *cheat-temp* 1) (+ (-> *cheat-temp* 1) 1)) + ) + (else (set! (-> *cheat-temp* 1) 0)) + ) + ) + ((= cheatmode-debug-state 5) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons x))) + (set! (-> *cheat-temp* 1) (+ (-> *cheat-temp* 1) 1)) + ) + (else (set! (-> *cheat-temp* 1) 0)) + ) + ) + ((= cheatmode-debug-state 6) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons right))) + (set! (-> *cheat-temp* 1) (+ (-> *cheat-temp* 1) 1)) + ) + (else (set! (-> *cheat-temp* 1) 0)) + ) + ) + ((= cheatmode-debug-state 7) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons left))) + (set! (-> *cheat-temp* 1) (+ (-> *cheat-temp* 1) 1)) + ) + (else (set! (-> *cheat-temp* 1) 0)) + ) + ) + ((= cheatmode-debug-state 8) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons right))) + (set! (-> *cheat-temp* 1) (+ (-> *cheat-temp* 1) 1)) + ) + (else (set! (-> *cheat-temp* 1) 0)) + ) + ) + ((= cheatmode-debug-state 9) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons left))) + (set! (-> *cheat-temp* 1) (+ (-> *cheat-temp* 1) 1)) + ) + (else (set! (-> *cheat-temp* 1) 0)) + ) + ) + ((= cheatmode-debug-state 10) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons down))) + (set! (-> *cheat-temp* 1) (+ (-> *cheat-temp* 1) 1)) + ) + (else (set! (-> *cheat-temp* 1) 0)) + ) + ) + ((= cheatmode-debug-state 11) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons down))) + (set! (-> *cheat-temp* 1) (+ (-> *cheat-temp* 1) 1)) + ) + (else (set! (-> *cheat-temp* 1) 0)) + ) + ) + ((= cheatmode-debug-state 12) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons up))) + (set! (-> *cheat-temp* 1) (+ (-> *cheat-temp* 1) 1)) + ) + (else (set! (-> *cheat-temp* 1) 0)) + ) + ) + ((= cheatmode-debug-state 13) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons up))) + ;; got the code! + (set! (-> *cpad-list* cpads 0 button0-abs 0) + (logand (lognot (pad-buttons r1)) (-> *cpad-list* cpads 0 button0-abs 0)) + ) + (set! (-> *cpad-list* cpads 0 button0-rel 0) + (logand (lognot (pad-buttons r1)) (-> *cpad-list* cpads 0 button0-rel 0)) + ) + ;; toggle between #t and debug. + (set! *cheat-mode* + (if (= *cheat-mode* 'debug) + #t + 'debug + ) + ) + (if *cheat-mode* + (sound-play-by-name (static-sound-name "select-menu") (new-sound-id) 1024 0 0 (the-as uint 1) (the-as vector #t)) + (sound-play-by-name (static-sound-name "cursor-options") (new-sound-id) 1024 0 0 (the-as uint 1) (the-as vector #t)) + ) + (set! (-> *cheat-temp* 1) 0) + 0 + ) + (else + (set! (-> *cheat-temp* 1) 0) + 0 + ) + ) + ) + ) + ) + ) + ) + + ;; language cheat + (case (scf-get-territory) + ((2) + (when (nonzero? (-> *cpad-list* cpads 0 button0-rel 0)) + (let ((cheat-language-state (-> *cheat-temp* 2))) + (cond + ((zero? cheat-language-state) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons l1))) + (set! (-> *cheat-temp* 2) (+ (-> *cheat-temp* 2) 1)) + ) + (else (set! (-> *cheat-temp* 2) 0)) + ) + ) + ((= cheat-language-state 1) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons r1))) + (set! (-> *cheat-temp* 2) (+ (-> *cheat-temp* 2) 1)) + ) + (else (set! (-> *cheat-temp* 2) 0)) + ) + ) + ((= cheat-language-state 2) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons l1))) + (set! (-> *cheat-temp* 2) (+ (-> *cheat-temp* 2) 1)) + ) + (else (set! (-> *cheat-temp* 2) 0)) + ) + ) + ((= cheat-language-state 3) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons r1))) + (set! (-> *cheat-temp* 2) (+ (-> *cheat-temp* 2) 1)) + ) + (else (set! (-> *cheat-temp* 2) 0)) + ) + ) + ((= cheat-language-state 4) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons triangle))) + (set! (-> *cheat-temp* 2) (+ (-> *cheat-temp* 2) 1)) + ) + (else (set! (-> *cheat-temp* 2) 0)) + ) + ) + ((= cheat-language-state 5) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons circle))) + (set! (-> *cheat-temp* 2) (+ (-> *cheat-temp* 2) 1)) + ) + (else (set! (-> *cheat-temp* 2) 0)) + ) + ) + ((= cheat-language-state 6) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons x))) + (set! (-> *cheat-temp* 2) (+ (-> *cheat-temp* 2) 1)) + ) + (else (set! (-> *cheat-temp* 2) 0)) + ) + ) + ((= cheat-language-state 7) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons square))) + ;; got it! + (set! (-> *cpad-list* cpads 0 button0-abs 0) + (logand (lognot (pad-buttons r1)) (-> *cpad-list* cpads 0 button0-abs 0)) + ) + (set! (-> *cpad-list* cpads 0 button0-rel 0) + (logand (lognot (pad-buttons r1)) (-> *cpad-list* cpads 0 button0-rel 0)) + ) + + (set! *progress-cheat* (if *progress-cheat* + #f + 'language + ) + ) + (if *progress-cheat* + (sound-play-by-name (static-sound-name "select-menu") (new-sound-id) 1024 0 0 (the-as uint 1) (the-as vector #t)) + (sound-play-by-name (static-sound-name "cursor-options") (new-sound-id) 1024 0 0 (the-as uint 1) (the-as vector #t)) + ) + (set! (-> *cheat-temp* 2) 0) + ) + (else + ;; invalid code. + (set! (-> *cheat-temp* 2) 0) + ) + ) + ) + ) + ) + ) + ) + ) + + + ;; debug only PAL code + (when *debug-segment* + (when (nonzero? (-> *cpad-list* cpads 0 button0-rel 0)) + (let ((cheat-pal-state (-> *cheat-temp* 3))) + (cond + ((zero? cheat-pal-state) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons x))) + (set! (-> *cheat-temp* 3) (+ (-> *cheat-temp* 3) 1)) + ) + (else (set! (-> *cheat-temp* 3) 0)) + ) + ) + ((= cheat-pal-state 1) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons square))) + (set! (-> *cheat-temp* 3) (+ (-> *cheat-temp* 3) 1)) + ) + (else (set! (-> *cheat-temp* 3) 0)) + ) + ) + ((= cheat-pal-state 2) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons triangle))) + (set! (-> *cheat-temp* 3) (+ (-> *cheat-temp* 3) 1)) + ) + (else (set! (-> *cheat-temp* 3) 0)) + ) + ) + ((= cheat-pal-state 3) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons circle))) + (set! (-> *cheat-temp* 3) (+ (-> *cheat-temp* 3) 1)) + ) + (else (set! (-> *cheat-temp* 3) 0)) + ) + ) + ((= cheat-pal-state 4) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons x))) + (set! (-> *cheat-temp* 3) (+ (-> *cheat-temp* 3) 1)) + ) + (else (set! (-> *cheat-temp* 3) 0)) + ) + ) + ((= cheat-pal-state 5) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons square))) + (set! (-> *cheat-temp* 3) (+ (-> *cheat-temp* 3) 1)) + ) + (else (set! (-> *cheat-temp* 3) 0)) + ) + ) + ((= cheat-pal-state 6) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons triangle))) + (set! (-> *cheat-temp* 3) (+ (-> *cheat-temp* 3) 1)) + ) + (else (set! (-> *cheat-temp* 3) 0)) + ) + ) + ((= cheat-pal-state 7) + (cond + ((nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons circle))) + (set! (-> *cpad-list* cpads 0 button0-abs 0) + (logand (lognot (pad-buttons r1)) (-> *cpad-list* cpads 0 button0-abs 0)) + ) + (set! (-> *cpad-list* cpads 0 button0-rel 0) + (logand (lognot (pad-buttons r1)) (-> *cpad-list* cpads 0 button0-rel 0)) + ) + (set! *progress-cheat* + (if *progress-cheat* + #f + 'pal + ) + ) + (if *progress-cheat* + (sound-play-by-name (static-sound-name "select-menu") (new-sound-id) 1024 0 0 (the-as uint 1) (the-as vector #t)) + (sound-play-by-name (static-sound-name "cursor-options") (new-sound-id) 1024 0 0 (the-as uint 1) (the-as vector #t)) + ) + (set! (-> *cheat-temp* 3) 0) + ) + (else + ;; bad code. + (set! (-> *cheat-temp* 3) 0) + 0 + ) + ) + ) + ) + ) + ) + ) + ) + + + ;; if cheating, handle the inputs + (when (and (= *cheat-mode* 'debug) (not *debug-segment*)) + + ;; target start/stop with l1/r1/l2/r2 + (when (and (nonzero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons l1))) + (nonzero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons l2))) + (nonzero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons r1))) + (nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons r2))) + ) + (if *target* + (stop 'debug) + (start 'play (get-or-create-continue! *game-info*)) + ) + ) + + + ;; reinitialize to title-start with left, up, select + (if (and (nonzero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons left))) + (nonzero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons up))) + (nonzero? (logand (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons select))) + ) + (initialize! *game-info* 'game (the-as game-save #f) "title-start") + ) + + ;; push R3 to print global heap status. not very useful. + (if (nonzero? (logand (-> *cpad-list* cpads 1 button0-rel 0) (pad-buttons r3))) + (inspect global) + ) + + ;; push R3 to display IOP memory stats + (when (nonzero? (logand (-> *cpad-list* cpads 1 button0-abs 0) (pad-buttons r3))) + ;; grab a dma buffer + (let* ((dma-buff (if *debug-segment* + (-> *display* frames (-> *display* on-screen) frame debug-buf) + (-> *display* frames (-> *display* on-screen) frame global-buf) + ) + ) + (dma-start (-> dma-buff base)) + ) + (show-iop-memory dma-buff) + (let ((a3-9 (-> dma-buff base))) + (let ((dma-pkt (the-as dma-packet (-> dma-buff base)))) + (set! (-> dma-pkt dma) (new 'static 'dma-tag :id (dma-tag-id next))) + (set! (-> dma-pkt vif0) (new 'static 'vif-tag)) + (set! (-> dma-pkt vif1) (new 'static 'vif-tag)) + (set! (-> dma-buff base) (&+ (the-as pointer dma-pkt) 16)) + ) + (dma-bucket-insert-tag + (-> *display* frames (-> *display* on-screen) frame bucket-group) + (bucket-id debug-draw0) + dma-start + (the-as (pointer dma-tag) a3-9) + ) + ) + ) + ) + + + ;; push triangle to see level info + (if (nonzero? (logand (-> *cpad-list* cpads 1 button0-rel 0) (pad-buttons triangle))) + (set! *display-level-border* (not *display-level-border*)) + ) + ) + + ;; handle timeouts + (when (!= *kernel-boot-message* 'play) + (let ((timeout (scf-get-timeout)) + (inactive-timeout (scf-get-inactive-timeout)) + ) + (when (and (or + ;; aboslute timout elapsed. + (and (nonzero? timeout) + (>= (the-as int (+ -300000 (the-as int (-> *display* real-frame-counter)))) (the int (* 300.0 (the float timeout)))) + ) + (and (nonzero? inactive-timeout) + (>= (the-as int (- + (-> *display* base-frame-counter) + (-> *cpad-list* cpads 0 change-time) + ) + ) + (the int (* 300.0 (the float inactive-timeout))) + ) + ) + (= *master-exit* 'force) + ) + (progress-allowed?) + (!= *master-exit* #t) + ) + + ;; spawn a process that blacks out the screen, turns things off, and kills the game. + (let ((game-end-proc (get-process *default-dead-pool* process #x4000))) + (if (when game-end-proc + (let ((t9-28 (method-of-type process activate))) + (t9-28 + game-end-proc + *default-pool* + 'process + (the-as pointer #x70004000) + ) + ) + ((the-as (function cpu-thread function none) set-to-run) + (-> game-end-proc main-thread) + (lambda () + (set-blackout-frames #x7530) + (set! (-> *setting-control* default allow-pause) #f) + (set! (-> *setting-control* default allow-progress) #f) + (copy-settings-from-target! *setting-control*) + (set! (-> *setting-control* default sfx-volume) 0.0) + (set! (-> *setting-control* default music-volume) 0.0) + (set! (-> *setting-control* default dialog-volume) 0.0) + (set! (-> *setting-control* default ambient-volume) 0.0) + (let ((gp-0 (-> *display* base-frame-counter))) + (until (begin + (suspend) + (>= (the-as int (- (-> *display* base-frame-counter) gp-0)) 30) + ) + (empty) + ) + ) + (kernel-shutdown) + (none) + ) + ) + (-> game-end-proc ppointer) + ) + ;; failed to create process, just die. + (set! *master-exit* #t) + ) + ) + ) + ) + ) + 0 + ) + +(defun movie? () + "Are we in a movie?" + (nonzero? (logand (-> *kernel-context* prevent-from-run) (process-mask movie))) + ) + + +(defun display-loop () + "This is in progress..." + + ;; increase our stack size. + (with-pp + (stack-size-set! (-> pp main-thread) 512) + ) + + (let ((disp *display*)) + ;; todo spad terrain context + (set! *teleport* #t) + (update-per-frame-settings! *setting-control*) + ;;(init-time-of-day-context *time-of-day-context*) TODO + ;;(display-sync disp) + ;; (swap-display disp) + ;; touching list + ;; bler init + ;; collide dma + (suspend) + (while *run* + ;; blerc + ;; texscroll + ;; ripple + ;; music pick + ;; sound/flava + ;; do ambients + + ;; math engine. + ;; debug hook + ;; main cheats + ;; update-camera + ;; draw hook + ;; menu hook + ;; update-current-level-availabe-to-progress + ;; update-task-hitns + ;; load-level-textu-files + (load-level-text-files -1) + ;; sync/timeout + + ;; depth cue + ;; screen filter + ;; letterbox + ;; blackout + ;; debug draw + ;; deci count + ;; file info + ;; pause text + ;; iop info + ;; mc info + ;; dma memory usage + ;; console buffers + ;; swap display + ;; particles + ;; vif0 collid + ;; swap sound + ;; str play + ;; level update + ;; run mc + ;; auto save check + ;; suspend + + (suspend) + ) + ) + + 0 ) diff --git a/goal_src/engine/game/settings-h.gc b/goal_src/engine/game/settings-h.gc index 314e76be89..bb6b5e1a2e 100644 --- a/goal_src/engine/game/settings-h.gc +++ b/goal_src/engine/game/settings-h.gc @@ -5,13 +5,29 @@ ;; name in dgo: settings-h ;; dgos: GAME, ENGINE -;; was manually done +;; The settings system handles settings transitions. +;; There are three copies of setting data: +;; - default +;; - target +;; - current + +;; Processes may request a setting change. Once the process dies, the change will be reverted. + +;; Internally, the frame's current settings are determined with this process: +;; 1). The target settings are set to default. +;; 2). Any changes to settings requested by processes are applied to target +;; NOTE: these requests are _not_ cleared on every frame. +;; 3). Target and current are compared and updated. Mostly this is just copying, but +;; some settings may also call a function when they are changed. + + +;; The full setting state. (deftype setting-data (structure) ((border-mode symbol :offset-assert 0) (sfx-volume float :offset-assert 4) (music-volume float :offset-assert 8) (dialog-volume float :offset-assert 12) - (process-mask uint32 :offset-assert 16) + (process-mask process-mask :offset-assert 16) (common-page int32 :offset-assert 20) (language int64 :offset-assert 24) (screenx int32 :offset-assert 32) @@ -97,6 +113,9 @@ obj ) + +;; The setting-control manages the current/target/default system. +;; The setting requests are managed by the engine. (deftype setting-control (basic) ((current setting-data :inline :offset-assert 16) (target setting-data :inline :offset-assert 224) @@ -126,7 +145,8 @@ s4-0 ) - +;; believed unused. +;; possibly the PS2 BIOS time type. (deftype scf-time (structure) ((stat uint8 :offset-assert 0) (second uint8 :offset-assert 1) @@ -143,9 +163,3 @@ ) (define-extern *setting-control* setting-control) - -;; TODO - defined in the kernel -(define-extern scf-get-volume (function int)) -(define-extern scf-get-language (function uint)) -(define-extern scf-get-aspect (function uint)) -(define-extern *boot-video-mode* int) diff --git a/goal_src/engine/game/settings.gc b/goal_src/engine/game/settings.gc index 10cb2b8604..62cba6ac3c 100644 --- a/goal_src/engine/game/settings.gc +++ b/goal_src/engine/game/settings.gc @@ -12,250 +12,223 @@ (let ((conn (the-as connection (-> arg0 alive-list-end))) (s4-0 (-> arg0 alive-list-end prev0)) ) - (while (!= (the-as connectable conn) (-> arg0 alive-list)) - (let ((v1-1 (-> conn param0))) - (cond - ((= v1-1 'border-mode) - (set! (-> obj border-mode) (the-as symbol (-> conn param1))) - ) - ((= v1-1 'allow-look-around) - (set! (-> obj allow-look-around) (the-as symbol (-> conn param1))) - ) - ((= v1-1 'ocean-off) - (set! (-> obj ocean-off) (the-as symbol (-> conn param1))) - ) - ((= v1-1 'music) - (set! (-> obj music) (the-as symbol (-> conn param1))) - ) - ((= v1-1 'process-mask) - (let ((v1-6 (-> conn param1))) - (cond - ((= (the-as symbol v1-6) 'set) - (set! - (-> obj process-mask) - (logior - (-> obj process-mask) - (the-as uint (the-as int (-> conn param3))) - ) - ) - ) - ((= v1-6 'clear) - (set! - (-> obj process-mask) - (logand - (-> obj process-mask) - (the-as uint (lognot (the-as uint (-> conn param3)))) - ) - ) - ) - ((= v1-6 'abs) - (set! - (-> obj process-mask) - (the-as uint (the-as int (-> conn param3))) - ) - ) + (while (!= (the-as connectable conn) (-> arg0 alive-list)) + (case (-> conn param0) + (('border-mode) + (set! (-> obj border-mode) (the-as symbol (-> conn param1))) ) - ) - ) - ((= v1-1 'sfx-volume) - (when - (or - (zero? - (logand - (-> *kernel-context* prevent-from-run) - (process-mask progress) + (('allow-look-around) + (set! (-> obj allow-look-around) (the-as symbol (-> conn param1))) + ) + (('ocean-off) + (set! (-> obj ocean-off) (the-as symbol (-> conn param1))) + ) + (('music) + (set! (-> obj music) (the-as symbol (-> conn param1))) + ) + (('process-mask) + (case (-> conn param1) + (('set) + (set! + (-> obj process-mask) + (logior + (-> obj process-mask) + (the-as uint (the-as int (-> conn param3))) + ) + ) + ) + (('clear) + (set! + (-> obj process-mask) + (logand + (-> obj process-mask) + (the-as uint (the-as uint (lognot (the-as uint (-> conn param3))))) + ) + ) + ) + (('abs) + (set! + (-> obj process-mask) + (the-as process-mask (the-as int (-> conn param3))) + ) + ) ) - ) - (let ((v1-18 (get-process conn)) - (a0-22 *progress-process*) + ) + (('sfx-volume) + (when (or (zero? (logand (-> *kernel-context* prevent-from-run) (process-mask progress))) + (let ((v1-18 (get-process conn)) + (a0-22 *progress-process*) + ) + (= v1-18 (if a0-22 + (-> a0-22 0 self) + ) + ) + ) + ) + (let ((v1-20 (the-as symbol (-> conn param1)))) + (if (= v1-20 'rel) + (set! (-> obj sfx-volume) + (* (* 0.01 (the-as float (-> conn param2))) (-> obj sfx-volume)) + ) + (set! (-> obj sfx-volume) (the-as float (-> conn param2))) + ) + ) + ) + ) + (('music-volume) + (let ((v1-25 (the-as symbol (-> conn param1)))) + (if (= v1-25 'rel) + (set! (-> obj music-volume) + (* (* 0.01 (the-as float (-> conn param2))) (-> obj music-volume)) + ) + (set! (-> obj music-volume) (the-as float (-> conn param2))) ) - (= v1-18 (if a0-22 - (-> a0-22 0 self) - ) ) - ) ) - (let ((v1-20 (the-as symbol (-> conn param1)))) - (if (= v1-20 'rel) - (set! - (-> obj sfx-volume) - (* (* 0.01 (the-as float (-> conn param2))) (-> obj sfx-volume)) + (('ambient-volume) + (let ((v1-30 (the-as symbol (-> conn param1)))) + (if (= v1-30 'rel) + (set! (-> obj ambient-volume) + (* (* 0.01 (the-as float (-> conn param2))) (-> obj ambient-volume)) + ) + (set! (-> obj ambient-volume) (the-as float (-> conn param2))) + ) ) - (set! (-> obj sfx-volume) (the-as float (-> conn param2))) - ) ) - ) - ) - ((= v1-1 'music-volume) - (let ((v1-25 (the-as symbol (-> conn param1)))) - (if (= v1-25 'rel) - (set! - (-> obj music-volume) - (* (* 0.01 (the-as float (-> conn param2))) (-> obj music-volume)) - ) - (set! (-> obj music-volume) (the-as float (-> conn param2))) - ) - ) - ) - ((= v1-1 'ambient-volume) - (let ((v1-30 (the-as symbol (-> conn param1)))) - (if (= v1-30 'rel) - (set! - (-> obj ambient-volume) - (* (* 0.01 (the-as float (-> conn param2))) (-> obj ambient-volume)) - ) - (set! (-> obj ambient-volume) (the-as float (-> conn param2))) - ) - ) - ) - ((= v1-1 'dialog-volume) - (let ((v1-35 (the-as symbol (-> conn param1)))) - (if (= v1-35 'rel) - (set! - (-> obj dialog-volume) - (* (* 0.01 (the-as float (-> conn param2))) (-> obj dialog-volume)) - ) - (set! (-> obj dialog-volume) (the-as float (-> conn param2))) - ) - ) - ) - ((= v1-1 'sfx-volume-movie) - (let ((v1-40 (the-as symbol (-> conn param1)))) - (if (= v1-40 'rel) - (set! - (-> obj sfx-volume-movie) - (* (* 0.01 (the-as float (-> conn param2))) (-> obj sfx-volume-movie)) - ) - (set! (-> obj sfx-volume-movie) (the-as float (-> conn param2))) - ) - ) - ) - ((= v1-1 'music-volume-movie) - (let ((v1-45 (the-as symbol (-> conn param1)))) - (if (= v1-45 'rel) - (set! - (-> obj music-volume-movie) - (* - (* 0.01 (the-as float (-> conn param2))) - (-> obj music-volume-movie) + (('dialog-volume) + (let ((v1-35 (the-as symbol (-> conn param1)))) + (if (= v1-35 'rel) + (set! (-> obj dialog-volume) + (* (* 0.01 (the-as float (-> conn param2))) (-> obj dialog-volume)) + ) + (set! (-> obj dialog-volume) (the-as float (-> conn param2))) + ) ) - ) - (set! (-> obj music-volume-movie) (the-as float (-> conn param2))) ) - ) - ) - ((= v1-1 'ambient-volume-movie) - (let ((v1-50 (the-as symbol (-> conn param1)))) - (if (= v1-50 'rel) - (set! - (-> obj ambient-volume-movie) - (* - (* 0.01 (the-as float (-> conn param2))) - (-> obj ambient-volume-movie) + (('sfx-volume-movie) + (let ((v1-40 (the-as symbol (-> conn param1)))) + (if (= v1-40 'rel) + (set! (-> obj sfx-volume-movie) + (* (* 0.01 (the-as float (-> conn param2))) (-> obj sfx-volume-movie)) + ) + (set! (-> obj sfx-volume-movie) (the-as float (-> conn param2))) + ) ) - ) - (set! (-> obj ambient-volume-movie) (the-as float (-> conn param2))) ) - ) - ) - ((= v1-1 'dialog-volume-hint) - (let ((v1-55 (the-as symbol (-> conn param1)))) - (if (= v1-55 'rel) - (set! - (-> obj dialog-volume-hint) - (* - (* 0.01 (the-as float (-> conn param2))) - (-> obj dialog-volume-hint) + (('music-volume-movie) + (let ((v1-45 (the-as symbol (-> conn param1)))) + (if (= v1-45 'rel) + (set! (-> obj music-volume-movie) + (* (* 0.01 (the-as float (-> conn param2))) + (-> obj music-volume-movie) + ) + ) + (set! (-> obj music-volume-movie) (the-as float (-> conn param2))) + ) ) - ) - (set! (-> obj dialog-volume-hint) (the-as float (-> conn param2))) ) - ) - ) - ((= v1-1 'sound-flava) - (when (>= (the-as float (-> conn param2)) (-> obj sound-flava-priority)) - (set! (-> obj sound-flava) (the-as uint (the-as int (-> conn param3)))) - (set! (-> obj sound-flava-priority) (the-as float (-> conn param2))) - ) - ) - ((= v1-1 'bg-r) - (set! (-> obj bg-r) (the-as float (-> conn param2))) - ) - ((= v1-1 'bg-g) - (set! (-> obj bg-g) (the-as float (-> conn param2))) - ) - ((= v1-1 'bg-b) - (set! (-> obj bg-b) (the-as float (-> conn param2))) - ) - ((= v1-1 'bg-a) - (set! (-> obj bg-a) (the-as float (-> conn param2))) - ) - ((= v1-1 'bg-a-speed) - (set! (-> obj bg-a-speed) (the-as float (-> conn param2))) - ) - ((= v1-1 'bg-a-force) - (set! (-> obj bg-a-force) (the-as float (-> conn param2))) - ) - ((= v1-1 'language) - (set! (-> obj language) (the-as int (-> conn param3))) - ) - ((= v1-1 'vibration) - (set! (-> obj vibration) (the-as symbol (-> conn param1))) - ) - ((= v1-1 'auto-save) - (set! (-> obj auto-save) (the-as symbol (-> conn param1))) - ) - ((= v1-1 'allow-pause) - (set! (-> obj allow-pause) (the-as symbol (-> conn param1))) - ) - ((= v1-1 'allow-progress) - (set! (-> obj allow-progress) (the-as symbol (-> conn param1))) - ) - ((= v1-1 'play-hints) - (set! (-> obj play-hints) (the-as symbol (-> conn param1))) - ) - ((= v1-1 'movie) - (set! (-> obj movie) (the-as (pointer progress) (-> conn param1))) - ) - ((= v1-1 'talking) - (set! (-> obj talking) (the-as (pointer progress) (-> conn param1))) - ) - ((= v1-1 'spooling) - (set! (-> obj spooling) (the-as (pointer progress) (-> conn param1))) - ) - ((= v1-1 'hint) - (set! (-> obj hint) (the-as (pointer process) (-> conn param1))) - ) - ((= v1-1 'ambient) - (set! (-> obj ambient) (the-as (pointer progress) (-> conn param1))) - ) - ((= v1-1 'common-page) - (let ((v1-89 (-> conn param1))) - (cond - ((= (the-as symbol v1-89) 'set) - (set! - (-> obj common-page) - (logior (-> obj common-page) (the-as int (-> conn param3))) + (('ambient-volume-movie) + (let ((v1-50 (the-as symbol (-> conn param1)))) + (if (= v1-50 'rel) + (set! (-> obj ambient-volume-movie) + (* (* 0.01 (the-as float (-> conn param2))) + (-> obj ambient-volume-movie) + ) + ) + (set! (-> obj ambient-volume-movie) (the-as float (-> conn param2))) + ) ) - ) - ((= v1-89 'clear) - (set! - (-> obj common-page) - (logand - (-> obj common-page) - (the-as int (the-as uint (lognot (the-as uint (-> conn param3))))) + ) + (('dialog-volume-hint) + (let ((v1-55 (the-as symbol (-> conn param1)))) + (if (= v1-55 'rel) + (set! (-> obj dialog-volume-hint) + (* (* 0.01 (the-as float (-> conn param2))) + (-> obj dialog-volume-hint) + ) + ) + (set! (-> obj dialog-volume-hint) (the-as float (-> conn param2))) + ) + ) + ) + (('sound-flava) + (when (>= (the-as float (-> conn param2)) (-> obj sound-flava-priority)) + (set! (-> obj sound-flava) (the-as uint (the-as int (-> conn param3)))) + (set! (-> obj sound-flava-priority) (the-as float (-> conn param2))) + ) + ) + (('bg-r) + (set! (-> obj bg-r) (the-as float (-> conn param2))) + ) + (('bg-g) + (set! (-> obj bg-g) (the-as float (-> conn param2))) + ) + (('bg-b) + (set! (-> obj bg-b) (the-as float (-> conn param2))) + ) + (('bg-a) + (set! (-> obj bg-a) (the-as float (-> conn param2))) + ) + (('bg-a-speed) + (set! (-> obj bg-a-speed) (the-as float (-> conn param2))) + ) + (('bg-a-force) + (set! (-> obj bg-a-force) (the-as float (-> conn param2))) + ) + (('language) + (set! (-> obj language) (the-as int (-> conn param3))) + ) + (('vibration) + (set! (-> obj vibration) (the-as symbol (-> conn param1))) + ) + (('auto-save) + (set! (-> obj auto-save) (the-as symbol (-> conn param1))) + ) + (('allow-pause) + (set! (-> obj allow-pause) (the-as symbol (-> conn param1))) + ) + (('allow-progress) + (set! (-> obj allow-progress) (the-as symbol (-> conn param1))) + ) + (('play-hints) + (set! (-> obj play-hints) (the-as symbol (-> conn param1))) + ) + (('movie) + (set! (-> obj movie) (the-as (pointer progress) (-> conn param1))) + ) + (('talking) + (set! (-> obj talking) (the-as (pointer progress) (-> conn param1))) + ) + (('spooling) + (set! (-> obj spooling) (the-as (pointer progress) (-> conn param1))) + ) + (('hint) + (set! (-> obj hint) (the-as (pointer process) (-> conn param1))) + ) + (('ambient) + (set! (-> obj ambient) (the-as (pointer progress) (-> conn param1))) + ) + (('common-page) + (case (-> conn param1) + (('set) + (set! (-> obj common-page) + (logior (-> obj common-page) (the-as int (-> conn param3))) + ) + ) + (('clear) + (set! (-> obj common-page) + (logand (-> obj common-page) + (the-as int (the-as uint (lognot (the-as uint (-> conn param3))))) + ) + ) ) ) - ) ) ) - ) + (set! conn (the-as connection s4-0)) + (set! s4-0 (-> (the-as connectable conn) prev0)) ) - ) - (set! conn (the-as connection s4-0)) - (set! s4-0 (-> (the-as connectable conn) prev0)) ) - ) obj ) @@ -360,10 +333,7 @@ (set! (-> gp-0 dialog-volume-hint) (-> s5-0 dialog-volume-hint)) (set! (-> gp-0 process-mask) (-> s5-0 process-mask)) ) - (set! - (-> *kernel-context* prevent-from-run) - (the-as process-mask (-> gp-0 process-mask)) - ) + (set! (-> *kernel-context* prevent-from-run) (-> gp-0 process-mask)) gp-0 ) ) @@ -502,17 +472,16 @@ (set! (-> *level* border?) (-> gp-0 border-mode)) (set! (-> *texture-pool* common-page-mask) (-> gp-0 common-page)) (set! (-> *cpad-list* cpads 0 buzz) (-> gp-0 vibration)) - (let ((v1-64 (-> gp-0 ocean-off))) - (cond - ((= v1-64 #t) + + (case (-> gp-0 ocean-off) + ((#t) (set! *ocean-off* #t) ) - ((= v1-64 'mid) - (set! *ocean-mid-off* #t) - ) - ((= v1-64 'near) - (set! *ocean-near-off* #t) - ) + (('mid) + (set! *ocean-mid-off* #t) + ) + (('near) + (set! *ocean-near-off* #t) ) ) gp-0 @@ -563,7 +532,7 @@ ) ) (set! (-> gp-0 language) (the-as int (scf-get-language))) - (set! (-> gp-0 process-mask) (the-as uint 65)) + (set! (-> gp-0 process-mask) (process-mask execute sleep)) (set! (-> gp-0 screenx) 0) (set! (-> gp-0 screeny) 0) (set! (-> gp-0 vibration) #t) diff --git a/goal_src/engine/game/task/hint-control.gc b/goal_src/engine/game/task/hint-control.gc index 156b15ef92..96608adbba 100644 --- a/goal_src/engine/game/task/hint-control.gc +++ b/goal_src/engine/game/task/hint-control.gc @@ -491,44 +491,38 @@ ;; TODO - defined in progress-static (define-extern *level-task-data-remap* (array int32)) -;; definition for function update-task-hints -;; INFO: Return type mismatch int vs none. + (defun update-task-hints () (when *target* - (let ((a0-0 (+ (-> *target* current-level info index) -1)) - (v1-7 (-> *game-info* task-hint-control)) - ) - (when (and (>= a0-0 0) (< a0-0 (-> *level-task-data-remap* length))) - (let ((a0-3 (-> *level-task-data-remap* a0-0))) - (when (< a0-3 (-> v1-7 length)) - (let ((gp-0 (-> v1-7 a0-3 tasks))) - (when (and (!= gp-0 0) (nonzero? (-> gp-0 length))) - (let ((s5-0 (-> *game-info* in-level-time a0-3))) - (dotimes (s4-0 (-> gp-0 length)) - (let - ((v1-17 (get-task-status (the-as game-task (-> gp-0 s4-0 task))))) - (when - (or - (= v1-17 (task-status need-hint)) - (= v1-17 (task-status unknown)) - ) - (if (< (-> gp-0 s4-0 delay) s5-0) - (close-specific-task! - (the-as game-task (-> gp-0 s4-0 task)) - (task-status need-hint) - ) - ) - ) - ) - ) + (let ((a0-0 (+ (-> *target* current-level info index) -1)) + (v1-7 (-> *game-info* task-hint-control)) + ) + (when (and (>= a0-0 0) (< a0-0 (-> *level-task-data-remap* length))) + (let ((a0-3 (-> *level-task-data-remap* a0-0))) + (when (< a0-3 (-> v1-7 length)) + (let ((gp-0 (-> v1-7 a0-3 tasks))) + (when (and (!= gp-0 0) (nonzero? (-> gp-0 length))) + (let ((s5-0 (-> *game-info* in-level-time a0-3))) + (dotimes (s4-0 (-> gp-0 length)) + (case (get-task-status (the-as game-task (-> gp-0 s4-0 task))) + (((task-status need-hint) (task-status unknown)) + (if (< (-> gp-0 s4-0 delay) s5-0) + (close-specific-task! + (the-as game-task (-> gp-0 s4-0 task)) + (task-status need-hint) + ) + ) + ) + ) + ) + ) + ) + ) + ) ) - ) ) - ) ) - ) ) - ) 0 (none) ) diff --git a/goal_src/engine/game/video.gc b/goal_src/engine/game/video.gc index d53fca680f..8279cf9be4 100644 --- a/goal_src/engine/game/video.gc +++ b/goal_src/engine/game/video.gc @@ -8,9 +8,8 @@ ;; definition for function set-video-mode ;; INFO: Return type mismatch int vs none. (defun set-video-mode ((arg0 symbol)) - (let ((v1-0 arg0)) - (cond - ((= v1-0 'ntsc) + (case arg0 + (('ntsc) (set! (-> *video-parms* screen-sy) 224) (set! (-> *setting-control* default screenx) 0) (set! (-> *setting-control* default screeny) 8) @@ -22,7 +21,7 @@ (set! (-> *math-camera* y-clip) 448.0) (set! (-> *shadow-data* texoffset y) 112.5) ) - ((= v1-0 'pal) + (('pal) (set! (-> *video-parms* screen-sy) 256) (set! (-> *setting-control* default screenx) 0) (set! (-> *setting-control* default screeny) 24) @@ -35,7 +34,6 @@ (set! (-> *shadow-data* texoffset y) 128.5) ) ) - ) (set-time-ratios *display* (-> *display* time-ratio)) (set! (-> *video-parms* reset-video-mode) #t) (set! (-> *video-parms* screen-hy) (/ (-> *video-parms* screen-sy) 2)) @@ -58,12 +56,16 @@ (set! (-> *video-parms* relative-y-scale-reciprical) 1.0) (set! *profile-y* (+ (-> *video-parms* screen-miny) 8)) (set! (-> *video-parms* set-video-mode) #t) - (set-hud-aspect-ratio (get-aspect-ratio) arg0) + + ;; NOTE: added nonzero check + (if (nonzero? set-hud-aspect-ratio) + (set-hud-aspect-ratio (get-aspect-ratio) arg0) + ) (if *progress-process* - (TODO-RENAME-23 (-> *progress-process* 0) (get-aspect-ratio) arg0) - ) + (TODO-RENAME-23 (-> *progress-process* 0) (get-aspect-ratio) arg0) + ) (let ((v0-3 0)) - ) + ) (none) ) @@ -75,28 +77,30 @@ ;; definition for function set-aspect-ratio ;; INFO: Return type mismatch int vs none. (defun set-aspect-ratio ((arg0 symbol)) - (let ((v1-0 arg0)) - (cond - ((= v1-0 'aspect4x3) + (case arg0 + (('aspect4x3) (set! (-> *video-parms* relative-x-scale) 1.0) (set! (-> *video-parms* relative-x-scale-reciprical) 1.0) ) - ((= v1-0 'aspect16x9) + (('aspect16x9) (set! (-> *video-parms* relative-x-scale) 0.75) (set! (-> *video-parms* relative-x-scale-reciprical) 1.3333334) ) ) - ) (set! (-> *font-default-matrix* vector 0 x) (-> *video-parms* relative-x-scale) ) - (set-hud-aspect-ratio arg0 (get-video-mode)) + + ;; NOTE: added. + (if (nonzero? set-hud-aspect-ratio) + (set-hud-aspect-ratio arg0 (get-video-mode)) + ) (if *progress-process* - (TODO-RENAME-23 (-> *progress-process* 0) arg0 (get-video-mode)) - ) + (TODO-RENAME-23 (-> *progress-process* 0) arg0 (get-video-mode)) + ) (let ((v0-2 0)) - ) + ) (none) ) diff --git a/goal_src/engine/gfx/capture.gc b/goal_src/engine/gfx/capture.gc index 03ee86b1bb..f8cc225a83 100644 --- a/goal_src/engine/gfx/capture.gc +++ b/goal_src/engine/gfx/capture.gc @@ -5,6 +5,9 @@ ;; name in dgo: capture ;; dgos: GAME, ENGINE +;; Functions for taking a screenshot of VRAM. +;; These are debug-only and leak memory. + ;; vif/gif tags to do a transfer of data from VRAM to EE memory. (deftype gs-store-image-packet (structure) ((vifcode vif-tag 4 :offset-assert 0) diff --git a/goal_src/engine/gfx/font-h.gc b/goal_src/engine/gfx/font-h.gc index 1f0510a0da..74f5f8768b 100644 --- a/goal_src/engine/gfx/font-h.gc +++ b/goal_src/engine/gfx/font-h.gc @@ -5,6 +5,9 @@ ;; name in dgo: font-h ;; dgos: GAME, ENGINE +;; The font system draws all of the strings. +;; The font textures live in the upper 8 bits of the 24-bit texture format depth buffer. + (deftype char-verts (structure) ((pos vector 4 :inline :offset-assert 0) (color vector 4 :inline :offset-assert 64) diff --git a/goal_src/engine/gfx/generic/generic.gc b/goal_src/engine/gfx/generic/generic.gc index 8f7c5727d4..e73f4b4f82 100644 --- a/goal_src/engine/gfx/generic/generic.gc +++ b/goal_src/engine/gfx/generic/generic.gc @@ -135,7 +135,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - s3-0 + (the bucket-id s3-0) ;; TODO, correct types here s2-0 (the-as (pointer dma-tag) a3-0) ) diff --git a/goal_src/engine/gfx/hw/display.gc b/goal_src/engine/gfx/hw/display.gc index 51bfae64f7..84b8e703e6 100644 --- a/goal_src/engine/gfx/hw/display.gc +++ b/goal_src/engine/gfx/hw/display.gc @@ -33,23 +33,21 @@ ;; calculations from getting huge. (let ((ratio (fmin 4.0 slowdown))) (set! (-> obj time-ratio) ratio) - (let ((v1-0 (get-video-mode))) - (cond - ((= v1-0 'pal) - (set! (-> obj time-adjust-ratio) (* 1.2 ratio)) - (set! (-> obj seconds-per-frame) (* 0.02 ratio)) - (set! (-> obj frames-per-second) (* 50.0 (/ 1.0 ratio))) - ;; 6 "ticks" per frame * 50 fps = 300 ticks per second. - (set! (-> obj time-factor) 6.0) - ) - (else - (set! (-> obj time-adjust-ratio) ratio) - (set! (-> obj seconds-per-frame) (* 0.016666668 ratio)) - (set! (-> obj frames-per-second) (* 60.0 (/ 1.0 ratio))) - ;; 5 "ticks" per frame * 60 fps = 300 ticks per second. - (set! (-> obj time-factor) 5.0) - ) - ) + (case (get-video-mode) + (('pal) + (set! (-> obj time-adjust-ratio) (* 1.2 ratio)) + (set! (-> obj seconds-per-frame) (* 0.02 ratio)) + (set! (-> obj frames-per-second) (* 50.0 (/ 1.0 ratio))) + ;; 6 "ticks" per frame * 50 fps = 300 ticks per second. + (set! (-> obj time-factor) 6.0) + ) + (else + (set! (-> obj time-adjust-ratio) ratio) + (set! (-> obj seconds-per-frame) (* 0.016666668 ratio)) + (set! (-> obj frames-per-second) (* 60.0 (/ 1.0 ratio))) + ;; 5 "ticks" per frame * 60 fps = 300 ticks per second. + (set! (-> obj time-factor) 5.0) + ) ) ) (-> obj time-ratio) diff --git a/goal_src/engine/gfx/hw/gs.gc b/goal_src/engine/gfx/hw/gs.gc index b820a88cab..7a95a53bb5 100644 --- a/goal_src/engine/gfx/hw/gs.gc +++ b/goal_src/engine/gfx/hw/gs.gc @@ -86,26 +86,23 @@ ) ) - (defun psm->string ((arg0 gs-psm)) "Get the name of a texture format." - (let ((v1-0 arg0)) - (cond - ((= v1-0 (gs-psm mz16s)) "mz16s") - ((= v1-0 (gs-psm mz16)) "mz16") - ((= v1-0 (gs-psm mz24)) "mz24") - ((= v1-0 (gs-psm mz32)) "mz32") - ((= v1-0 (gs-psm mt4hh)) "mt4hh") - ((= v1-0 (gs-psm mt4hl)) "mt4hl") - ((= v1-0 (gs-psm mt8h)) "mt8h") - ((= v1-0 (gs-psm mt4)) "mt4") - ((= v1-0 (gs-psm mt8)) "mt8") - ((= v1-0 (gs-psm ct16s)) "ct16s") - ((= v1-0 (gs-psm ct16)) "ct16") - ((= v1-0 (gs-psm ct24)) "ct24") - ((zero? v1-0) "ct32") - (else "*unknown*") - ) + (case arg0 + (((gs-psm mz16s)) "mz16s") + (((gs-psm mz16)) "mz16") + (((gs-psm mz24)) "mz24") + (((gs-psm mz32)) "mz32") + (((gs-psm mt4hh)) "mt4hh") + (((gs-psm mt4hl)) "mt4hl") + (((gs-psm mt8h)) "mt8h") + (((gs-psm mt4)) "mt4") + (((gs-psm mt8)) "mt8") + (((gs-psm ct16s)) "ct16s") + (((gs-psm ct16)) "ct16") + (((gs-psm ct24)) "ct24") + (((gs-psm ct32)) "ct32") + (else "*unknown*") ) ) diff --git a/goal_src/engine/gfx/lights-h.gc b/goal_src/engine/gfx/lights-h.gc index 4afba9fb98..0a7f7464b2 100644 --- a/goal_src/engine/gfx/lights-h.gc +++ b/goal_src/engine/gfx/lights-h.gc @@ -5,6 +5,9 @@ ;; name in dgo: lights-h ;; dgos: GAME, ENGINE +;; It seems like some of these are unused. +;; The commonly used lights are vu-lights and light-group. + (deftype vu-lights (structure) ((direction vector 3 :inline :offset-assert 0) (color vector 3 :inline :offset-assert 48) diff --git a/goal_src/engine/gfx/ocean/ocean-h.gc b/goal_src/engine/gfx/ocean/ocean-h.gc index 0654da8a63..1cf35c4f0f 100644 --- a/goal_src/engine/gfx/ocean/ocean-h.gc +++ b/goal_src/engine/gfx/ocean/ocean-h.gc @@ -5,6 +5,9 @@ ;; name in dgo: ocean-h ;; dgos: GAME, ENGINE +;; The "ocean" renderer is used to render the infinite water. +;; It doesn't draw the rivers in FJ or the water near the farmer. + (deftype ocean-corner (structure) ((bsphere sphere :inline :offset-assert 0) (start-corner vector :inline :offset-assert 16) @@ -62,6 +65,7 @@ ((mask uint8 8 :offset-assert 0) (dword uint64 :offset 0) ) + :pack-me :method-count-assert 9 :size-assert #x8 :flag-assert #x900000008 @@ -76,7 +80,7 @@ ) (deftype ocean-mid-masks (basic) - ((data uint32 :offset-assert 4) + ((data (inline-array ocean-mid-mask) :offset-assert 4) ) :pack-me :method-count-assert 9 @@ -105,7 +109,7 @@ ) (deftype ocean-trans-indices (basic) - ((data uint32 2304 :offset-assert 4) + ((data ocean-trans-index 2304 :inline :offset-assert 4) ) :method-count-assert 9 :size-assert #x2404 @@ -122,7 +126,7 @@ (deftype ocean-near-indices (basic) - ((data uint32 :offset-assert 4) + ((data (inline-array ocean-near-index) :offset-assert 4) ) :method-count-assert 9 :size-assert #x8 diff --git a/goal_src/engine/gfx/ocean/ocean-tables.gc b/goal_src/engine/gfx/ocean/ocean-tables.gc index 3978019ed1..e26cec6ee5 100644 --- a/goal_src/engine/gfx/ocean/ocean-tables.gc +++ b/goal_src/engine/gfx/ocean/ocean-tables.gc @@ -5,9919 +5,12285 @@ ;; name in dgo: ocean-tables ;; dgos: GAME, ENGINE -;; note: the following types aren't decompiled correctly -;; - ocean-mid-masks -;; - ocean-near-indices -;; these types have a pointer to an array of unknown length. -;; when we do get to the ocean renderer, we should probably write a special tool -;; for this file in both the compiler/decompiler. +;; These tables contain information for particular oceans. +;; All of the information is contained in *ocean-map-* +;; where is one of +;; - village1 +;; - village2 +;; - sunken +;; levels like beach/jungle/misty will use village1's ocean map. -(define *ocean-spheres-village1* (new 'static 'ocean-spheres - :spheres (new 'static 'inline-array sphere 36 - (new 'static 'sphere :x -7864320.0 :z -7864320.0 :w 2224365.5) - (new 'static 'sphere :x -4718592.0 :z -7864320.0 :w 2224365.5) - (new 'static 'sphere :x -1572864.0 :z -7864320.0 :w 2224365.5) - (new 'static 'sphere :x 1572864.0 :z -7864320.0 :w 2224365.5) - (new 'static 'sphere :x 4718592.0 :z -7864320.0 :w 2224365.5) - (new 'static 'sphere :x 7864320.0 :z -7864320.0 :w 2224365.5) - (new 'static 'sphere :x -7864320.0 :z -4718592.0 :w 2224365.5) - (new 'static 'sphere :x -4718592.0 :z -4718592.0 :w 2224365.5) - (new 'static 'sphere :x -1572864.0 :z -4718592.0 :w 2224365.5) - (new 'static 'sphere :x 1572864.0 :z -4718592.0 :w 2224365.5) - (new 'static 'sphere :x 4718592.0 :z -4718592.0 :w 2224365.5) - (new 'static 'sphere :x 7864320.0 :z -4718592.0 :w 2224365.5) - (new 'static 'sphere :x -7864320.0 :z -1572864.0 :w 2224365.5) - (new 'static 'sphere :x -4718592.0 :z -1572864.0 :w 2224365.5) - (new 'static 'sphere :x -1572864.0 :z -1572864.0 :w 2224365.5) - (new 'static 'sphere :x 1572864.0 :z -1572864.0 :w 2224365.5) - (new 'static 'sphere :x 4718592.0 :z -1572864.0 :w 2224365.5) - (new 'static 'sphere :x 7864320.0 :z -1572864.0 :w 2224365.5) - (new 'static 'sphere :x -7864320.0 :z 1572864.0 :w 2224365.5) - (new 'static 'sphere :x -4718592.0 :z 1572864.0 :w 2224365.5) - (new 'static 'sphere :x -1572864.0 :z 1572864.0 :w 2224365.5) - (new 'static 'sphere :x 1572864.0 :z 1572864.0 :w 2224365.5) - (new 'static 'sphere :x 4718592.0 :z 1572864.0 :w 2224365.5) - (new 'static 'sphere :x 7864320.0 :z 1572864.0 :w 2224365.5) - (new 'static 'sphere :x -7864320.0 :z 4718592.0 :w 2224365.5) - (new 'static 'sphere :x -4718592.0 :z 4718592.0 :w 2224365.5) - (new 'static 'sphere :x -1572864.0 :z 4718592.0 :w 2224365.5) - (new 'static 'sphere :x 1572864.0 :z 4718592.0 :w 2224365.5) - (new 'static 'sphere :x 4718592.0 :z 4718592.0 :w 2224365.5) - (new 'static 'sphere :x 7864320.0 :z 4718592.0 :w 2224365.5) - (new 'static 'sphere :x -7864320.0 :z 7864320.0 :w 2224365.5) - (new 'static 'sphere :x -4718592.0 :z 7864320.0 :w 2224365.5) - (new 'static 'sphere :x -1572864.0 :z 7864320.0 :w 2224365.5) - (new 'static 'sphere :x 1572864.0 :z 7864320.0 :w 2224365.5) - (new 'static 'sphere :x 4718592.0 :z 7864320.0 :w 2224365.5) - (new 'static 'sphere :x 7864320.0 :z 7864320.0 :w 2224365.5) - ) - ) +(define *ocean-spheres-village1* + (new 'static 'ocean-spheres + :spheres + (new 'static 'inline-array sphere 36 + (new 'static 'sphere :x -7864320.0 :z -7864320.0 :w 2224365.5) + (new 'static 'sphere :x -4718592.0 :z -7864320.0 :w 2224365.5) + (new 'static 'sphere :x -1572864.0 :z -7864320.0 :w 2224365.5) + (new 'static 'sphere :x 1572864.0 :z -7864320.0 :w 2224365.5) + (new 'static 'sphere :x 4718592.0 :z -7864320.0 :w 2224365.5) + (new 'static 'sphere :x 7864320.0 :z -7864320.0 :w 2224365.5) + (new 'static 'sphere :x -7864320.0 :z -4718592.0 :w 2224365.5) + (new 'static 'sphere :x -4718592.0 :z -4718592.0 :w 2224365.5) + (new 'static 'sphere :x -1572864.0 :z -4718592.0 :w 2224365.5) + (new 'static 'sphere :x 1572864.0 :z -4718592.0 :w 2224365.5) + (new 'static 'sphere :x 4718592.0 :z -4718592.0 :w 2224365.5) + (new 'static 'sphere :x 7864320.0 :z -4718592.0 :w 2224365.5) + (new 'static 'sphere :x -7864320.0 :z -1572864.0 :w 2224365.5) + (new 'static 'sphere :x -4718592.0 :z -1572864.0 :w 2224365.5) + (new 'static 'sphere :x -1572864.0 :z -1572864.0 :w 2224365.5) + (new 'static 'sphere :x 1572864.0 :z -1572864.0 :w 2224365.5) + (new 'static 'sphere :x 4718592.0 :z -1572864.0 :w 2224365.5) + (new 'static 'sphere :x 7864320.0 :z -1572864.0 :w 2224365.5) + (new 'static 'sphere :x -7864320.0 :z 1572864.0 :w 2224365.5) + (new 'static 'sphere :x -4718592.0 :z 1572864.0 :w 2224365.5) + (new 'static 'sphere :x -1572864.0 :z 1572864.0 :w 2224365.5) + (new 'static 'sphere :x 1572864.0 :z 1572864.0 :w 2224365.5) + (new 'static 'sphere :x 4718592.0 :z 1572864.0 :w 2224365.5) + (new 'static 'sphere :x 7864320.0 :z 1572864.0 :w 2224365.5) + (new 'static 'sphere :x -7864320.0 :z 4718592.0 :w 2224365.5) + (new 'static 'sphere :x -4718592.0 :z 4718592.0 :w 2224365.5) + (new 'static 'sphere :x -1572864.0 :z 4718592.0 :w 2224365.5) + (new 'static 'sphere :x 1572864.0 :z 4718592.0 :w 2224365.5) + (new 'static 'sphere :x 4718592.0 :z 4718592.0 :w 2224365.5) + (new 'static 'sphere :x 7864320.0 :z 4718592.0 :w 2224365.5) + (new 'static 'sphere :x -7864320.0 :z 7864320.0 :w 2224365.5) + (new 'static 'sphere :x -4718592.0 :z 7864320.0 :w 2224365.5) + (new 'static 'sphere :x -1572864.0 :z 7864320.0 :w 2224365.5) + (new 'static 'sphere :x 1572864.0 :z 7864320.0 :w 2224365.5) + (new 'static 'sphere :x 4718592.0 :z 7864320.0 :w 2224365.5) + (new 'static 'sphere :x 7864320.0 :z 7864320.0 :w 2224365.5) + ) + ) ) -(define *ocean-colors-village1* (new 'static 'ocean-colors - :colors (new 'static 'array rgba 2548 - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2b :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2b :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x4 :g #x30 :b #x3b :a #x80) - (new 'static 'rgba :r #x6 :g #x32 :b #x3e :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x3f :a #x80) - (new 'static 'rgba :r #x5 :g #x31 :b #x3f :a #x80) - (new 'static 'rgba :r #x5 :g #x31 :b #x40 :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x40 :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x41 :a #x80) - (new 'static 'rgba :r #x6 :g #x33 :b #x41 :a #x80) - (new 'static 'rgba :r #x6 :g #x33 :b #x41 :a #x80) - (new 'static 'rgba :r #x6 :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x6 :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x5 :g #x31 :b #x40 :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x3f :a #x80) - (new 'static 'rgba :r #x4 :g #x30 :b #x3f :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) - (new 'static 'rgba :r #x4 :g #x30 :b #x3d :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3b :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x3 :g #x2d :b #x3a :a #x80) - (new 'static 'rgba :r #x6 :g #x32 :b #x3f :a #x80) - (new 'static 'rgba :r #x7 :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x7 :g #x34 :b #x43 :a #x80) - (new 'static 'rgba :r #x7 :g #x35 :b #x44 :a #x80) - (new 'static 'rgba :r #x7 :g #x33 :b #x43 :a #x80) - (new 'static 'rgba :r #x7 :g #x35 :b #x44 :a #x80) - (new 'static 'rgba :r #x7 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x7 :g #x34 :b #x44 :a #x80) - (new 'static 'rgba :r #x7 :g #x34 :b #x44 :a #x80) - (new 'static 'rgba :r #x7 :g #x35 :b #x44 :a #x80) - (new 'static 'rgba :r #x7 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x7 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x7 :g #x34 :b #x44 :a #x80) - (new 'static 'rgba :r #x7 :g #x34 :b #x44 :a #x80) - (new 'static 'rgba :r #x7 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x7 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x7 :g #x34 :b #x43 :a #x80) - (new 'static 'rgba :r #x7 :g #x34 :b #x44 :a #x80) - (new 'static 'rgba :r #x8 :g #x34 :b #x45 :a #x80) - (new 'static 'rgba :r #x8 :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x8 :g #x35 :b #x44 :a #x80) - (new 'static 'rgba :r #x7 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x7 :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x6 :g #x32 :b #x3f :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x3e :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x3e :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x3e :a #x80) - (new 'static 'rgba :r #x5 :g #x31 :b #x3d :a #x80) - (new 'static 'rgba :r #x4 :g #x2f :b #x3c :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3b :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x40 :a #x80) - (new 'static 'rgba :r #x7 :g #x35 :b #x44 :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x45 :a #x80) - (new 'static 'rgba :r #x9 :g #x38 :b #x46 :a #x80) - (new 'static 'rgba :r #x9 :g #x38 :b #x46 :a #x80) - (new 'static 'rgba :r #x9 :g #x38 :b #x46 :a #x80) - (new 'static 'rgba :r #x9 :g #x36 :b #x47 :a #x80) - (new 'static 'rgba :r #x9 :g #x36 :b #x46 :a #x80) - (new 'static 'rgba :r #x9 :g #x37 :b #x47 :a #x80) - (new 'static 'rgba :r #x9 :g #x36 :b #x47 :a #x80) - (new 'static 'rgba :r #x9 :g #x35 :b #x46 :a #x80) - (new 'static 'rgba :r #x9 :g #x39 :b #x47 :a #x80) - (new 'static 'rgba :r #x9 :g #x38 :b #x47 :a #x80) - (new 'static 'rgba :r #x9 :g #x38 :b #x47 :a #x80) - (new 'static 'rgba :r #x9 :g #x35 :b #x46 :a #x80) - (new 'static 'rgba :r #x9 :g #x38 :b #x46 :a #x80) - (new 'static 'rgba :r #x9 :g #x37 :b #x46 :a #x80) - (new 'static 'rgba :r #x9 :g #x36 :b #x47 :a #x80) - (new 'static 'rgba :r #xb :g #x39 :b #x49 :a #x80) - (new 'static 'rgba :r #xc :g #x3a :b #x4b :a #x80) - (new 'static 'rgba :r #xc :g #x3a :b #x4b :a #x80) - (new 'static 'rgba :r #xc :g #x39 :b #x4b :a #x80) - (new 'static 'rgba :r #xc :g #x39 :b #x4a :a #x80) - (new 'static 'rgba :r #xb :g #x37 :b #x48 :a #x80) - (new 'static 'rgba :r #x9 :g #x38 :b #x46 :a #x80) - (new 'static 'rgba :r #xb :g #x38 :b #x47 :a #x80) - (new 'static 'rgba :r #xc :g #x37 :b #x48 :a #x80) - (new 'static 'rgba :r #xc :g #x38 :b #x49 :a #x80) - (new 'static 'rgba :r #xc :g #x39 :b #x4a :a #x80) - (new 'static 'rgba :r #xc :g #x3c :b #x49 :a #x80) - (new 'static 'rgba :r #xc :g #x39 :b #x48 :a #x80) - (new 'static 'rgba :r #xa :g #x38 :b #x46 :a #x80) - (new 'static 'rgba :r #x8 :g #x35 :b #x44 :a #x80) - (new 'static 'rgba :r #x7 :g #x33 :b #x43 :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x40 :a #x80) - (new 'static 'rgba :r #x5 :g #x30 :b #x3e :a #x80) - (new 'static 'rgba :r #x3 :g #x2e :b #x3d :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x3 :g #x2d :b #x3b :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2b :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x6 :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x9 :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #xc :g #x3b :b #x48 :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x4c :a #x80) - (new 'static 'rgba :r #x11 :g #x3e :b #x4d :a #x80) - (new 'static 'rgba :r #x12 :g #x3f :b #x4e :a #x80) - (new 'static 'rgba :r #x10 :g #x3f :b #x4d :a #x80) - (new 'static 'rgba :r #xd :g #x3b :b #x4a :a #x80) - (new 'static 'rgba :r #xc :g #x3c :b #x4a :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x4b :a #x80) - (new 'static 'rgba :r #x11 :g #x3f :b #x4d :a #x80) - (new 'static 'rgba :r #x13 :g #x40 :b #x4f :a #x80) - (new 'static 'rgba :r #x14 :g #x43 :b #x50 :a #x80) - (new 'static 'rgba :r #x14 :g #x42 :b #x50 :a #x80) - (new 'static 'rgba :r #x13 :g #x40 :b #x4f :a #x80) - (new 'static 'rgba :r #x12 :g #x42 :b #x4e :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x4d :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x4c :a #x80) - (new 'static 'rgba :r #xd :g #x3a :b #x4b :a #x80) - (new 'static 'rgba :r #xd :g #x39 :b #x4d :a #x80) - (new 'static 'rgba :r #xd :g #x3d :b #x4e :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x4e :a #x80) - (new 'static 'rgba :r #xd :g #x3d :b #x4e :a #x80) - (new 'static 'rgba :r #xc :g #x3c :b #x4c :a #x80) - (new 'static 'rgba :r #xa :g #x3a :b #x49 :a #x80) - (new 'static 'rgba :r #xb :g #x37 :b #x4a :a #x80) - (new 'static 'rgba :r #xd :g #x3d :b #x4d :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x4f :a #x80) - (new 'static 'rgba :r #xe :g #x3b :b #x4f :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x4f :a #x80) - (new 'static 'rgba :r #xe :g #x3e :b #x4f :a #x80) - (new 'static 'rgba :r #xe :g #x3f :b #x4e :a #x80) - (new 'static 'rgba :r #xe :g #x3a :b #x4e :a #x80) - (new 'static 'rgba :r #xd :g #x3d :b #x4e :a #x80) - (new 'static 'rgba :r #xc :g #x3a :b #x4c :a #x80) - (new 'static 'rgba :r #xa :g #x39 :b #x49 :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x46 :a #x80) - (new 'static 'rgba :r #x7 :g #x34 :b #x43 :a #x80) - (new 'static 'rgba :r #x5 :g #x31 :b #x40 :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) - (new 'static 'rgba :r #x3 :g #x2e :b #x3c :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x4 :g #x30 :b #x3d :a #x80) - (new 'static 'rgba :r #x7 :g #x33 :b #x43 :a #x80) - (new 'static 'rgba :r #xb :g #x38 :b #x48 :a #x80) - (new 'static 'rgba :r #x13 :g #x40 :b #x4e :a #x80) - (new 'static 'rgba :r #x1b :g #x47 :b #x54 :a #x80) - (new 'static 'rgba :r #x1e :g #x4c :b #x57 :a #x80) - (new 'static 'rgba :r #x1e :g #x4a :b #x58 :a #x80) - (new 'static 'rgba :r #x1d :g #x4b :b #x56 :a #x80) - (new 'static 'rgba :r #x1a :g #x47 :b #x55 :a #x80) - (new 'static 'rgba :r #x1a :g #x47 :b #x55 :a #x80) - (new 'static 'rgba :r #x1b :g #x48 :b #x56 :a #x80) - (new 'static 'rgba :r #x1e :g #x4c :b #x58 :a #x80) - (new 'static 'rgba :r #x20 :g #x4d :b #x59 :a #x80) - (new 'static 'rgba :r #x21 :g #x50 :b #x5a :a #x80) - (new 'static 'rgba :r #x21 :g #x4c :b #x5a :a #x80) - (new 'static 'rgba :r #x20 :g #x4d :b #x59 :a #x80) - (new 'static 'rgba :r #x1f :g #x4c :b #x58 :a #x80) - (new 'static 'rgba :r #x1e :g #x4b :b #x57 :a #x80) - (new 'static 'rgba :r #x1b :g #x4b :b #x56 :a #x80) - (new 'static 'rgba :r #x18 :g #x46 :b #x54 :a #x80) - (new 'static 'rgba :r #x15 :g #x44 :b #x52 :a #x80) - (new 'static 'rgba :r #x12 :g #x3f :b #x51 :a #x80) - (new 'static 'rgba :r #xf :g #x3d :b #x4f :a #x80) - (new 'static 'rgba :r #xd :g #x3e :b #x4e :a #x80) - (new 'static 'rgba :r #xc :g #x3b :b #x4c :a #x80) - (new 'static 'rgba :r #xc :g #x38 :b #x4b :a #x80) - (new 'static 'rgba :r #xc :g #x3a :b #x4c :a #x80) - (new 'static 'rgba :r #xf :g #x3c :b #x50 :a #x80) - (new 'static 'rgba :r #x10 :g #x3f :b #x52 :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x52 :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x52 :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x52 :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x52 :a #x80) - (new 'static 'rgba :r #x10 :g #x3c :b #x51 :a #x80) - (new 'static 'rgba :r #x10 :g #x3c :b #x51 :a #x80) - (new 'static 'rgba :r #xf :g #x3f :b #x52 :a #x80) - (new 'static 'rgba :r #xe :g #x3a :b #x50 :a #x80) - (new 'static 'rgba :r #xd :g #x3a :b #x4e :a #x80) - (new 'static 'rgba :r #xb :g #x39 :b #x4b :a #x80) - (new 'static 'rgba :r #x9 :g #x37 :b #x46 :a #x80) - (new 'static 'rgba :r #x6 :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x4 :g #x33 :b #x3e :a #x80) - (new 'static 'rgba :r #x3 :g #x2e :b #x3c :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x5 :g #x30 :b #x3e :a #x80) - (new 'static 'rgba :r #x8 :g #x33 :b #x44 :a #x80) - (new 'static 'rgba :r #xc :g #x3c :b #x49 :a #x80) - (new 'static 'rgba :r #x17 :g #x45 :b #x52 :a #x80) - (new 'static 'rgba :r #x1f :g #x4c :b #x58 :a #x80) - (new 'static 'rgba :r #x23 :g #x51 :b #x5a :a #x80) - (new 'static 'rgba :r #x23 :g #x4f :b #x5b :a #x80) - (new 'static 'rgba :r #x23 :g #x50 :b #x5c :a #x80) - (new 'static 'rgba :r #x23 :g #x4f :b #x5b :a #x80) - (new 'static 'rgba :r #x22 :g #x4f :b #x5b :a #x80) - (new 'static 'rgba :r #x23 :g #x52 :b #x5c :a #x80) - (new 'static 'rgba :r #x24 :g #x52 :b #x5c :a #x80) - (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) - (new 'static 'rgba :r #x25 :g #x51 :b #x5c :a #x80) - (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) - (new 'static 'rgba :r #x25 :g #x52 :b #x5c :a #x80) - (new 'static 'rgba :r #x24 :g #x53 :b #x5c :a #x80) - (new 'static 'rgba :r #x24 :g #x53 :b #x5d :a #x80) - (new 'static 'rgba :r #x23 :g #x51 :b #x5b :a #x80) - (new 'static 'rgba :r #x22 :g #x50 :b #x5b :a #x80) - (new 'static 'rgba :r #x21 :g #x4d :b #x5a :a #x80) - (new 'static 'rgba :r #x1e :g #x4c :b #x58 :a #x80) - (new 'static 'rgba :r #x19 :g #x47 :b #x55 :a #x80) - (new 'static 'rgba :r #x15 :g #x41 :b #x52 :a #x80) - (new 'static 'rgba :r #x12 :g #x3e :b #x50 :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x4e :a #x80) - (new 'static 'rgba :r #x10 :g #x3f :b #x4e :a #x80) - (new 'static 'rgba :r #x10 :g #x3c :b #x50 :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x52 :a #x80) - (new 'static 'rgba :r #x10 :g #x3f :b #x53 :a #x80) - (new 'static 'rgba :r #x11 :g #x41 :b #x53 :a #x80) - (new 'static 'rgba :r #x11 :g #x41 :b #x53 :a #x80) - (new 'static 'rgba :r #x11 :g #x3c :b #x53 :a #x80) - (new 'static 'rgba :r #x11 :g #x3f :b #x53 :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x52 :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x53 :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x53 :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x52 :a #x80) - (new 'static 'rgba :r #xf :g #x3d :b #x50 :a #x80) - (new 'static 'rgba :r #xd :g #x39 :b #x4c :a #x80) - (new 'static 'rgba :r #x9 :g #x36 :b #x46 :a #x80) - (new 'static 'rgba :r #x5 :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x4 :g #x2f :b #x3d :a #x80) - (new 'static 'rgba :r #x3 :g #x2d :b #x3b :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x3f :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x4a :a #x80) - (new 'static 'rgba :r #x19 :g #x49 :b #x53 :a #x80) - (new 'static 'rgba :r #x22 :g #x4e :b #x5a :a #x80) - (new 'static 'rgba :r #x24 :g #x51 :b #x5b :a #x80) - (new 'static 'rgba :r #x24 :g #x51 :b #x5c :a #x80) - (new 'static 'rgba :r #x25 :g #x52 :b #x5d :a #x80) - (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) - (new 'static 'rgba :r #x25 :g #x54 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x55 :b #x5e :a #x80) - (new 'static 'rgba :r #x25 :g #x54 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x54 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x53 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x54 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x52 :b #x5e :a #x80) - (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) - (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) - (new 'static 'rgba :r #x25 :g #x52 :b #x5d :a #x80) - (new 'static 'rgba :r #x25 :g #x55 :b #x5d :a #x80) - (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) - (new 'static 'rgba :r #x24 :g #x50 :b #x5d :a #x80) - (new 'static 'rgba :r #x22 :g #x52 :b #x5c :a #x80) - (new 'static 'rgba :r #x21 :g #x4e :b #x5b :a #x80) - (new 'static 'rgba :r #x1e :g #x4e :b #x59 :a #x80) - (new 'static 'rgba :r #x1c :g #x4a :b #x57 :a #x80) - (new 'static 'rgba :r #x1b :g #x4c :b #x57 :a #x80) - (new 'static 'rgba :r #x19 :g #x4a :b #x56 :a #x80) - (new 'static 'rgba :r #x15 :g #x45 :b #x54 :a #x80) - (new 'static 'rgba :r #x12 :g #x41 :b #x54 :a #x80) - (new 'static 'rgba :r #x11 :g #x3e :b #x53 :a #x80) - (new 'static 'rgba :r #x11 :g #x41 :b #x53 :a #x80) - (new 'static 'rgba :r #x11 :g #x40 :b #x54 :a #x80) - (new 'static 'rgba :r #x11 :g #x41 :b #x54 :a #x80) - (new 'static 'rgba :r #x11 :g #x42 :b #x54 :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x54 :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x54 :a #x80) - (new 'static 'rgba :r #x12 :g #x3f :b #x55 :a #x80) - (new 'static 'rgba :r #x13 :g #x41 :b #x55 :a #x80) - (new 'static 'rgba :r #x12 :g #x40 :b #x51 :a #x80) - (new 'static 'rgba :r #xe :g #x3d :b #x4b :a #x80) - (new 'static 'rgba :r #x9 :g #x34 :b #x44 :a #x80) - (new 'static 'rgba :r #x5 :g #x31 :b #x3f :a #x80) - (new 'static 'rgba :r #x3 :g #x2e :b #x3b :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x40 :a #x80) - (new 'static 'rgba :r #x9 :g #x35 :b #x45 :a #x80) - (new 'static 'rgba :r #x10 :g #x3d :b #x4b :a #x80) - (new 'static 'rgba :r #x1b :g #x4a :b #x54 :a #x80) - (new 'static 'rgba :r #x22 :g #x51 :b #x5a :a #x80) - (new 'static 'rgba :r #x24 :g #x50 :b #x5c :a #x80) - (new 'static 'rgba :r #x25 :g #x55 :b #x5d :a #x80) - (new 'static 'rgba :r #x26 :g #x54 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x51 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x56 :b #x5f :a #x80) - (new 'static 'rgba :r #x26 :g #x55 :b #x5f :a #x80) - (new 'static 'rgba :r #x27 :g #x55 :b #x5f :a #x80) - (new 'static 'rgba :r #x26 :g #x55 :b #x5f :a #x80) - (new 'static 'rgba :r #x27 :g #x54 :b #x5f :a #x80) - (new 'static 'rgba :r #x26 :g #x56 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x55 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x54 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x55 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x53 :b #x5e :a #x80) - (new 'static 'rgba :r #x25 :g #x52 :b #x5d :a #x80) - (new 'static 'rgba :r #x25 :g #x54 :b #x5d :a #x80) - (new 'static 'rgba :r #x25 :g #x55 :b #x5d :a #x80) - (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) - (new 'static 'rgba :r #x25 :g #x51 :b #x5d :a #x80) - (new 'static 'rgba :r #x24 :g #x55 :b #x5d :a #x80) - (new 'static 'rgba :r #x24 :g #x51 :b #x5c :a #x80) - (new 'static 'rgba :r #x24 :g #x53 :b #x5d :a #x80) - (new 'static 'rgba :r #x23 :g #x50 :b #x5d :a #x80) - (new 'static 'rgba :r #x20 :g #x4d :b #x5b :a #x80) - (new 'static 'rgba :r #x1c :g #x4c :b #x58 :a #x80) - (new 'static 'rgba :r #x18 :g #x49 :b #x55 :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x54 :a #x80) - (new 'static 'rgba :r #x13 :g #x41 :b #x54 :a #x80) - (new 'static 'rgba :r #x12 :g #x42 :b #x54 :a #x80) - (new 'static 'rgba :r #x11 :g #x41 :b #x54 :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x54 :a #x80) - (new 'static 'rgba :r #x11 :g #x3f :b #x54 :a #x80) - (new 'static 'rgba :r #x13 :g #x44 :b #x55 :a #x80) - (new 'static 'rgba :r #x16 :g #x44 :b #x56 :a #x80) - (new 'static 'rgba :r #x15 :g #x44 :b #x53 :a #x80) - (new 'static 'rgba :r #x11 :g #x3d :b #x4e :a #x80) - (new 'static 'rgba :r #xb :g #x38 :b #x47 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3e :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x3a :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x7 :g #x33 :b #x40 :a #x80) - (new 'static 'rgba :r #xc :g #x3a :b #x47 :a #x80) - (new 'static 'rgba :r #x13 :g #x42 :b #x4e :a #x80) - (new 'static 'rgba :r #x1b :g #x49 :b #x54 :a #x80) - (new 'static 'rgba :r #x20 :g #x50 :b #x59 :a #x80) - (new 'static 'rgba :r #x24 :g #x52 :b #x5c :a #x80) - (new 'static 'rgba :r #x25 :g #x51 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x53 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x52 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x55 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x55 :b #x5f :a #x80) - (new 'static 'rgba :r #x27 :g #x55 :b #x5f :a #x80) - (new 'static 'rgba :r #x27 :g #x56 :b #x5f :a #x80) - (new 'static 'rgba :r #x27 :g #x55 :b #x5f :a #x80) - (new 'static 'rgba :r #x26 :g #x55 :b #x5f :a #x80) - (new 'static 'rgba :r #x26 :g #x56 :b #x5f :a #x80) - (new 'static 'rgba :r #x26 :g #x54 :b #x5f :a #x80) - (new 'static 'rgba :r #x25 :g #x54 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x52 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x55 :b #x5e :a #x80) - (new 'static 'rgba :r #x25 :g #x54 :b #x5e :a #x80) - (new 'static 'rgba :r #x25 :g #x55 :b #x5e :a #x80) - (new 'static 'rgba :r #x25 :g #x50 :b #x5d :a #x80) - (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) - (new 'static 'rgba :r #x25 :g #x54 :b #x5d :a #x80) - (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) - (new 'static 'rgba :r #x25 :g #x52 :b #x5d :a #x80) - (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) - (new 'static 'rgba :r #x24 :g #x51 :b #x5d :a #x80) - (new 'static 'rgba :r #x23 :g #x50 :b #x5c :a #x80) - (new 'static 'rgba :r #x21 :g #x50 :b #x5b :a #x80) - (new 'static 'rgba :r #x1d :g #x4a :b #x59 :a #x80) - (new 'static 'rgba :r #x17 :g #x44 :b #x55 :a #x80) - (new 'static 'rgba :r #x13 :g #x42 :b #x54 :a #x80) - (new 'static 'rgba :r #x11 :g #x3e :b #x54 :a #x80) - (new 'static 'rgba :r #x11 :g #x42 :b #x55 :a #x80) - (new 'static 'rgba :r #x13 :g #x41 :b #x55 :a #x80) - (new 'static 'rgba :r #x16 :g #x43 :b #x56 :a #x80) - (new 'static 'rgba :r #x18 :g #x46 :b #x56 :a #x80) - (new 'static 'rgba :r #x17 :g #x44 :b #x54 :a #x80) - (new 'static 'rgba :r #x12 :g #x41 :b #x4f :a #x80) - (new 'static 'rgba :r #xb :g #x3a :b #x47 :a #x80) - (new 'static 'rgba :r #x7 :g #x36 :b #x42 :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x3f :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3b :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x8 :g #x34 :b #x40 :a #x80) - (new 'static 'rgba :r #x10 :g #x3b :b #x4a :a #x80) - (new 'static 'rgba :r #x15 :g #x43 :b #x4f :a #x80) - (new 'static 'rgba :r #x19 :g #x46 :b #x54 :a #x80) - (new 'static 'rgba :r #x1d :g #x4b :b #x57 :a #x80) - (new 'static 'rgba :r #x20 :g #x4f :b #x5a :a #x80) - (new 'static 'rgba :r #x25 :g #x52 :b #x5d :a #x80) - (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) - (new 'static 'rgba :r #x24 :g #x51 :b #x5d :a #x80) - (new 'static 'rgba :r #x26 :g #x54 :b #x5e :a #x80) - (new 'static 'rgba :r #x27 :g #x53 :b #x5f :a #x80) - (new 'static 'rgba :r #x28 :g #x57 :b #x60 :a #x80) - (new 'static 'rgba :r #x27 :g #x54 :b #x5f :a #x80) - (new 'static 'rgba :r #x27 :g #x55 :b #x5f :a #x80) - (new 'static 'rgba :r #x27 :g #x54 :b #x5f :a #x80) - (new 'static 'rgba :r #x26 :g #x55 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x53 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x54 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x54 :b #x5e :a #x80) - (new 'static 'rgba :r #x25 :g #x54 :b #x5e :a #x80) - (new 'static 'rgba :r #x25 :g #x54 :b #x5d :a #x80) - (new 'static 'rgba :r #x24 :g #x51 :b #x5c :a #x80) - (new 'static 'rgba :r #x24 :g #x50 :b #x5c :a #x80) - (new 'static 'rgba :r #x24 :g #x50 :b #x5c :a #x80) - (new 'static 'rgba :r #x24 :g #x50 :b #x5c :a #x80) - (new 'static 'rgba :r #x23 :g #x53 :b #x5b :a #x80) - (new 'static 'rgba :r #x24 :g #x50 :b #x5c :a #x80) - (new 'static 'rgba :r #x24 :g #x54 :b #x5c :a #x80) - (new 'static 'rgba :r #x23 :g #x52 :b #x5b :a #x80) - (new 'static 'rgba :r #x23 :g #x50 :b #x5b :a #x80) - (new 'static 'rgba :r #x23 :g #x51 :b #x5c :a #x80) - (new 'static 'rgba :r #x20 :g #x4f :b #x5b :a #x80) - (new 'static 'rgba :r #x18 :g #x48 :b #x57 :a #x80) - (new 'static 'rgba :r #x13 :g #x41 :b #x54 :a #x80) - (new 'static 'rgba :r #x11 :g #x40 :b #x54 :a #x80) - (new 'static 'rgba :r #x11 :g #x41 :b #x54 :a #x80) - (new 'static 'rgba :r #x13 :g #x43 :b #x55 :a #x80) - (new 'static 'rgba :r #x16 :g #x47 :b #x56 :a #x80) - (new 'static 'rgba :r #x18 :g #x45 :b #x57 :a #x80) - (new 'static 'rgba :r #x16 :g #x45 :b #x54 :a #x80) - (new 'static 'rgba :r #x11 :g #x40 :b #x4f :a #x80) - (new 'static 'rgba :r #xb :g #x3a :b #x48 :a #x80) - (new 'static 'rgba :r #x7 :g #x34 :b #x43 :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x40 :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3b :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x8 :g #x35 :b #x40 :a #x80) - (new 'static 'rgba :r #x12 :g #x3d :b #x4b :a #x80) - (new 'static 'rgba :r #x16 :g #x42 :b #x50 :a #x80) - (new 'static 'rgba :r #x19 :g #x45 :b #x54 :a #x80) - (new 'static 'rgba :r #x1c :g #x4b :b #x57 :a #x80) - (new 'static 'rgba :r #x1d :g #x49 :b #x59 :a #x80) - (new 'static 'rgba :r #x20 :g #x4d :b #x5a :a #x80) - (new 'static 'rgba :r #x20 :g #x4f :b #x5b :a #x80) - (new 'static 'rgba :r #x20 :g #x4e :b #x5a :a #x80) - (new 'static 'rgba :r #x20 :g #x4d :b #x5b :a #x80) - (new 'static 'rgba :r #x24 :g #x52 :b #x5d :a #x80) - (new 'static 'rgba :r #x26 :g #x56 :b #x5e :a #x80) - (new 'static 'rgba :r #x25 :g #x54 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x52 :b #x5f :a #x80) - (new 'static 'rgba :r #x27 :g #x56 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x55 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x54 :b #x5e :a #x80) - (new 'static 'rgba :r #x25 :g #x54 :b #x5d :a #x80) - (new 'static 'rgba :r #x25 :g #x52 :b #x5d :a #x80) - (new 'static 'rgba :r #x24 :g #x53 :b #x5c :a #x80) - (new 'static 'rgba :r #x24 :g #x52 :b #x5c :a #x80) - (new 'static 'rgba :r #x24 :g #x52 :b #x5c :a #x80) - (new 'static 'rgba :r #x23 :g #x51 :b #x5b :a #x80) - (new 'static 'rgba :r #x23 :g #x50 :b #x5b :a #x80) - (new 'static 'rgba :r #x23 :g #x4f :b #x5b :a #x80) - (new 'static 'rgba :r #x22 :g #x50 :b #x5b :a #x80) - (new 'static 'rgba :r #x22 :g #x50 :b #x5b :a #x80) - (new 'static 'rgba :r #x22 :g #x4f :b #x5a :a #x80) - (new 'static 'rgba :r #x22 :g #x50 :b #x5a :a #x80) - (new 'static 'rgba :r #x22 :g #x4e :b #x5a :a #x80) - (new 'static 'rgba :r #x21 :g #x4e :b #x5a :a #x80) - (new 'static 'rgba :r #x1f :g #x4d :b #x5a :a #x80) - (new 'static 'rgba :r #x17 :g #x47 :b #x55 :a #x80) - (new 'static 'rgba :r #x11 :g #x40 :b #x53 :a #x80) - (new 'static 'rgba :r #xf :g #x40 :b #x52 :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x53 :a #x80) - (new 'static 'rgba :r #x13 :g #x43 :b #x54 :a #x80) - (new 'static 'rgba :r #x15 :g #x42 :b #x55 :a #x80) - (new 'static 'rgba :r #x17 :g #x45 :b #x55 :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x53 :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x4e :a #x80) - (new 'static 'rgba :r #xa :g #x39 :b #x48 :a #x80) - (new 'static 'rgba :r #x6 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x3f :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x7 :g #x33 :b #x3f :a #x80) - (new 'static 'rgba :r #x12 :g #x3e :b #x4b :a #x80) - (new 'static 'rgba :r #x16 :g #x44 :b #x51 :a #x80) - (new 'static 'rgba :r #x19 :g #x45 :b #x54 :a #x80) - (new 'static 'rgba :r #x1c :g #x49 :b #x57 :a #x80) - (new 'static 'rgba :r #x1d :g #x4b :b #x59 :a #x80) - (new 'static 'rgba :r #x1e :g #x4b :b #x5a :a #x80) - (new 'static 'rgba :r #x1e :g #x4b :b #x5a :a #x80) - (new 'static 'rgba :r #x1f :g #x4b :b #x5a :a #x80) - (new 'static 'rgba :r #x20 :g #x4c :b #x5b :a #x80) - (new 'static 'rgba :r #x20 :g #x4e :b #x5d :a #x80) - (new 'static 'rgba :r #x1e :g #x4c :b #x5c :a #x80) - (new 'static 'rgba :r #x1e :g #x4b :b #x5c :a #x80) - (new 'static 'rgba :r #x20 :g #x50 :b #x5c :a #x80) - (new 'static 'rgba :r #x24 :g #x50 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x55 :b #x5e :a #x80) - (new 'static 'rgba :r #x26 :g #x55 :b #x5d :a #x80) - (new 'static 'rgba :r #x24 :g #x54 :b #x5c :a #x80) - (new 'static 'rgba :r #x24 :g #x52 :b #x5c :a #x80) - (new 'static 'rgba :r #x24 :g #x52 :b #x5c :a #x80) - (new 'static 'rgba :r #x23 :g #x51 :b #x5b :a #x80) - (new 'static 'rgba :r #x23 :g #x50 :b #x5b :a #x80) - (new 'static 'rgba :r #x22 :g #x4f :b #x5a :a #x80) - (new 'static 'rgba :r #x21 :g #x50 :b #x59 :a #x80) - (new 'static 'rgba :r #x21 :g #x4e :b #x59 :a #x80) - (new 'static 'rgba :r #x20 :g #x4e :b #x59 :a #x80) - (new 'static 'rgba :r #x20 :g #x4e :b #x59 :a #x80) - (new 'static 'rgba :r #x20 :g #x4e :b #x59 :a #x80) - (new 'static 'rgba :r #x21 :g #x4e :b #x59 :a #x80) - (new 'static 'rgba :r #x21 :g #x4f :b #x59 :a #x80) - (new 'static 'rgba :r #x20 :g #x4c :b #x58 :a #x80) - (new 'static 'rgba :r #x1d :g #x4d :b #x57 :a #x80) - (new 'static 'rgba :r #x15 :g #x45 :b #x54 :a #x80) - (new 'static 'rgba :r #x10 :g #x3f :b #x51 :a #x80) - (new 'static 'rgba :r #xe :g #x3e :b #x50 :a #x80) - (new 'static 'rgba :r #xf :g #x3d :b #x51 :a #x80) - (new 'static 'rgba :r #x11 :g #x42 :b #x52 :a #x80) - (new 'static 'rgba :r #x13 :g #x43 :b #x53 :a #x80) - (new 'static 'rgba :r #x13 :g #x44 :b #x53 :a #x80) - (new 'static 'rgba :r #x12 :g #x40 :b #x52 :a #x80) - (new 'static 'rgba :r #xf :g #x3c :b #x4f :a #x80) - (new 'static 'rgba :r #xb :g #x3a :b #x4a :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x40 :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3c :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x3d :a #x80) - (new 'static 'rgba :r #x11 :g #x3d :b #x4a :a #x80) - (new 'static 'rgba :r #x16 :g #x42 :b #x50 :a #x80) - (new 'static 'rgba :r #x18 :g #x44 :b #x53 :a #x80) - (new 'static 'rgba :r #x1b :g #x49 :b #x57 :a #x80) - (new 'static 'rgba :r #x1d :g #x49 :b #x58 :a #x80) - (new 'static 'rgba :r #x1f :g #x4f :b #x5a :a #x80) - (new 'static 'rgba :r #x1f :g #x50 :b #x5b :a #x80) - (new 'static 'rgba :r #x1e :g #x4d :b #x5b :a #x80) - (new 'static 'rgba :r #x1c :g #x4d :b #x5a :a #x80) - (new 'static 'rgba :r #x19 :g #x45 :b #x58 :a #x80) - (new 'static 'rgba :r #x15 :g #x45 :b #x57 :a #x80) - (new 'static 'rgba :r #x13 :g #x3f :b #x56 :a #x80) - (new 'static 'rgba :r #x16 :g #x45 :b #x57 :a #x80) - (new 'static 'rgba :r #x1e :g #x4d :b #x5a :a #x80) - (new 'static 'rgba :r #x23 :g #x4f :b #x5d :a #x80) - (new 'static 'rgba :r #x24 :g #x52 :b #x5c :a #x80) - (new 'static 'rgba :r #x24 :g #x52 :b #x5d :a #x80) - (new 'static 'rgba :r #x24 :g #x4f :b #x5b :a #x80) - (new 'static 'rgba :r #x22 :g #x50 :b #x5b :a #x80) - (new 'static 'rgba :r #x21 :g #x4f :b #x5a :a #x80) - (new 'static 'rgba :r #x21 :g #x4e :b #x59 :a #x80) - (new 'static 'rgba :r #x20 :g #x4e :b #x58 :a #x80) - (new 'static 'rgba :r #x20 :g #x4d :b #x58 :a #x80) - (new 'static 'rgba :r #x1f :g #x4d :b #x57 :a #x80) - (new 'static 'rgba :r #x1e :g #x4b :b #x56 :a #x80) - (new 'static 'rgba :r #x1d :g #x4c :b #x56 :a #x80) - (new 'static 'rgba :r #x1e :g #x4b :b #x56 :a #x80) - (new 'static 'rgba :r #x1e :g #x4a :b #x56 :a #x80) - (new 'static 'rgba :r #x1d :g #x49 :b #x55 :a #x80) - (new 'static 'rgba :r #x1d :g #x4a :b #x56 :a #x80) - (new 'static 'rgba :r #x1a :g #x49 :b #x54 :a #x80) - (new 'static 'rgba :r #x14 :g #x42 :b #x51 :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x4f :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x4f :a #x80) - (new 'static 'rgba :r #xf :g #x3d :b #x50 :a #x80) - (new 'static 'rgba :r #x10 :g #x3f :b #x50 :a #x80) - (new 'static 'rgba :r #x11 :g #x40 :b #x51 :a #x80) - (new 'static 'rgba :r #x11 :g #x40 :b #x52 :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x50 :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x4f :a #x80) - (new 'static 'rgba :r #xc :g #x3b :b #x4b :a #x80) - (new 'static 'rgba :r #x9 :g #x36 :b #x46 :a #x80) - (new 'static 'rgba :r #x7 :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x3 :g #x2e :b #x3d :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2f :b #x38 :a #x80) - (new 'static 'rgba :r #x4 :g #x2f :b #x3c :a #x80) - (new 'static 'rgba :r #xd :g #x3a :b #x47 :a #x80) - (new 'static 'rgba :r #x12 :g #x41 :b #x4e :a #x80) - (new 'static 'rgba :r #x15 :g #x44 :b #x51 :a #x80) - (new 'static 'rgba :r #x19 :g #x48 :b #x55 :a #x80) - (new 'static 'rgba :r #x19 :g #x49 :b #x57 :a #x80) - (new 'static 'rgba :r #x1a :g #x48 :b #x59 :a #x80) - (new 'static 'rgba :r #x19 :g #x47 :b #x58 :a #x80) - (new 'static 'rgba :r #x17 :g #x45 :b #x56 :a #x80) - (new 'static 'rgba :r #x14 :g #x44 :b #x54 :a #x80) - (new 'static 'rgba :r #x12 :g #x3f :b #x54 :a #x80) - (new 'static 'rgba :r #x12 :g #x42 :b #x54 :a #x80) - (new 'static 'rgba :r #x12 :g #x41 :b #x55 :a #x80) - (new 'static 'rgba :r #x13 :g #x3e :b #x54 :a #x80) - (new 'static 'rgba :r #x19 :g #x47 :b #x58 :a #x80) - (new 'static 'rgba :r #x20 :g #x4f :b #x5a :a #x80) - (new 'static 'rgba :r #x1f :g #x4d :b #x59 :a #x80) - (new 'static 'rgba :r #x23 :g #x4f :b #x5a :a #x80) - (new 'static 'rgba :r #x23 :g #x50 :b #x5b :a #x80) - (new 'static 'rgba :r #x20 :g #x4f :b #x59 :a #x80) - (new 'static 'rgba :r #x20 :g #x4d :b #x58 :a #x80) - (new 'static 'rgba :r #x1f :g #x4e :b #x57 :a #x80) - (new 'static 'rgba :r #x1e :g #x4b :b #x56 :a #x80) - (new 'static 'rgba :r #x1e :g #x4a :b #x56 :a #x80) - (new 'static 'rgba :r #x1d :g #x49 :b #x54 :a #x80) - (new 'static 'rgba :r #x1c :g #x48 :b #x54 :a #x80) - (new 'static 'rgba :r #x1c :g #x4a :b #x54 :a #x80) - (new 'static 'rgba :r #x1b :g #x49 :b #x53 :a #x80) - (new 'static 'rgba :r #x1b :g #x49 :b #x53 :a #x80) - (new 'static 'rgba :r #x1b :g #x47 :b #x53 :a #x80) - (new 'static 'rgba :r #x1a :g #x47 :b #x52 :a #x80) - (new 'static 'rgba :r #x18 :g #x46 :b #x51 :a #x80) - (new 'static 'rgba :r #x12 :g #x3f :b #x4f :a #x80) - (new 'static 'rgba :r #xe :g #x3d :b #x4d :a #x80) - (new 'static 'rgba :r #xe :g #x3d :b #x4e :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x4f :a #x80) - (new 'static 'rgba :r #x11 :g #x3e :b #x4f :a #x80) - (new 'static 'rgba :r #x10 :g #x3f :b #x4f :a #x80) - (new 'static 'rgba :r #x10 :g #x3d :b #x4f :a #x80) - (new 'static 'rgba :r #xf :g #x3f :b #x50 :a #x80) - (new 'static 'rgba :r #xf :g #x3f :b #x4f :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x4c :a #x80) - (new 'static 'rgba :r #xb :g #x38 :b #x49 :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x45 :a #x80) - (new 'static 'rgba :r #x4 :g #x30 :b #x3e :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3c :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #xa :g #x38 :b #x48 :a #x80) - (new 'static 'rgba :r #xd :g #x3a :b #x4b :a #x80) - (new 'static 'rgba :r #xe :g #x3f :b #x4e :a #x80) - (new 'static 'rgba :r #x10 :g #x41 :b #x4f :a #x80) - (new 'static 'rgba :r #x10 :g #x3f :b #x51 :a #x80) - (new 'static 'rgba :r #x10 :g #x3c :b #x50 :a #x80) - (new 'static 'rgba :r #xf :g #x3a :b #x50 :a #x80) - (new 'static 'rgba :r #xf :g #x3a :b #x4f :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x53 :a #x80) - (new 'static 'rgba :r #x11 :g #x40 :b #x55 :a #x80) - (new 'static 'rgba :r #x12 :g #x42 :b #x54 :a #x80) - (new 'static 'rgba :r #x13 :g #x40 :b #x55 :a #x80) - (new 'static 'rgba :r #x19 :g #x48 :b #x57 :a #x80) - (new 'static 'rgba :r #x1d :g #x4c :b #x59 :a #x80) - (new 'static 'rgba :r #x1a :g #x47 :b #x56 :a #x80) - (new 'static 'rgba :r #x1a :g #x48 :b #x56 :a #x80) - (new 'static 'rgba :r #x1e :g #x4b :b #x57 :a #x80) - (new 'static 'rgba :r #x1e :g #x4d :b #x58 :a #x80) - (new 'static 'rgba :r #x1e :g #x4c :b #x57 :a #x80) - (new 'static 'rgba :r #x1d :g #x4a :b #x55 :a #x80) - (new 'static 'rgba :r #x1d :g #x49 :b #x54 :a #x80) - (new 'static 'rgba :r #x1c :g #x4a :b #x54 :a #x80) - (new 'static 'rgba :r #x1b :g #x49 :b #x53 :a #x80) - (new 'static 'rgba :r #x19 :g #x46 :b #x52 :a #x80) - (new 'static 'rgba :r #x19 :g #x47 :b #x51 :a #x80) - (new 'static 'rgba :r #x19 :g #x46 :b #x51 :a #x80) - (new 'static 'rgba :r #x18 :g #x46 :b #x51 :a #x80) - (new 'static 'rgba :r #x18 :g #x45 :b #x50 :a #x80) - (new 'static 'rgba :r #x18 :g #x45 :b #x50 :a #x80) - (new 'static 'rgba :r #x17 :g #x43 :b #x4f :a #x80) - (new 'static 'rgba :r #x13 :g #x41 :b #x4e :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x4d :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x4d :a #x80) - (new 'static 'rgba :r #x11 :g #x3f :b #x4d :a #x80) - (new 'static 'rgba :r #x12 :g #x40 :b #x4e :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x4e :a #x80) - (new 'static 'rgba :r #x10 :g #x3f :b #x4e :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x4e :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x4e :a #x80) - (new 'static 'rgba :r #xe :g #x3b :b #x4d :a #x80) - (new 'static 'rgba :r #xc :g #x39 :b #x4a :a #x80) - (new 'static 'rgba :r #xa :g #x36 :b #x47 :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x40 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x6 :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x45 :a #x80) - (new 'static 'rgba :r #x9 :g #x36 :b #x48 :a #x80) - (new 'static 'rgba :r #xa :g #x38 :b #x4a :a #x80) - (new 'static 'rgba :r #xb :g #x39 :b #x4b :a #x80) - (new 'static 'rgba :r #xb :g #x39 :b #x4b :a #x80) - (new 'static 'rgba :r #xb :g #x3a :b #x4c :a #x80) - (new 'static 'rgba :r #xb :g #x3b :b #x4c :a #x80) - (new 'static 'rgba :r #xd :g #x39 :b #x4e :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x53 :a #x80) - (new 'static 'rgba :r #x11 :g #x40 :b #x54 :a #x80) - (new 'static 'rgba :r #x12 :g #x3f :b #x54 :a #x80) - (new 'static 'rgba :r #x15 :g #x41 :b #x55 :a #x80) - (new 'static 'rgba :r #x19 :g #x46 :b #x57 :a #x80) - (new 'static 'rgba :r #x19 :g #x46 :b #x57 :a #x80) - (new 'static 'rgba :r #x15 :g #x42 :b #x54 :a #x80) - (new 'static 'rgba :r #x13 :g #x41 :b #x52 :a #x80) - (new 'static 'rgba :r #x18 :g #x46 :b #x54 :a #x80) - (new 'static 'rgba :r #x1d :g #x4a :b #x56 :a #x80) - (new 'static 'rgba :r #x1c :g #x49 :b #x55 :a #x80) - (new 'static 'rgba :r #x1c :g #x49 :b #x54 :a #x80) - (new 'static 'rgba :r #x1a :g #x47 :b #x53 :a #x80) - (new 'static 'rgba :r #x19 :g #x47 :b #x52 :a #x80) - (new 'static 'rgba :r #x18 :g #x45 :b #x50 :a #x80) - (new 'static 'rgba :r #x18 :g #x45 :b #x4f :a #x80) - (new 'static 'rgba :r #x17 :g #x43 :b #x4e :a #x80) - (new 'static 'rgba :r #x16 :g #x43 :b #x4e :a #x80) - (new 'static 'rgba :r #x16 :g #x42 :b #x4d :a #x80) - (new 'static 'rgba :r #x16 :g #x43 :b #x4e :a #x80) - (new 'static 'rgba :r #x16 :g #x43 :b #x4d :a #x80) - (new 'static 'rgba :r #x15 :g #x42 :b #x4d :a #x80) - (new 'static 'rgba :r #x16 :g #x42 :b #x4d :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x4c :a #x80) - (new 'static 'rgba :r #x13 :g #x41 :b #x4c :a #x80) - (new 'static 'rgba :r #x13 :g #x40 :b #x4c :a #x80) - (new 'static 'rgba :r #x12 :g #x40 :b #x4c :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x4c :a #x80) - (new 'static 'rgba :r #xf :g #x3d :b #x4c :a #x80) - (new 'static 'rgba :r #xe :g #x3d :b #x4d :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x4d :a #x80) - (new 'static 'rgba :r #xe :g #x3b :b #x4c :a #x80) - (new 'static 'rgba :r #xc :g #x39 :b #x4a :a #x80) - (new 'static 'rgba :r #xa :g #x37 :b #x47 :a #x80) - (new 'static 'rgba :r #x6 :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x5 :g #x31 :b #x40 :a #x80) - (new 'static 'rgba :r #x8 :g #x35 :b #x45 :a #x80) - (new 'static 'rgba :r #x9 :g #x39 :b #x48 :a #x80) - (new 'static 'rgba :r #xa :g #x39 :b #x4a :a #x80) - (new 'static 'rgba :r #xa :g #x3a :b #x4a :a #x80) - (new 'static 'rgba :r #xa :g #x3a :b #x4a :a #x80) - (new 'static 'rgba :r #xb :g #x39 :b #x4b :a #x80) - (new 'static 'rgba :r #xb :g #x39 :b #x4d :a #x80) - (new 'static 'rgba :r #xd :g #x3a :b #x4f :a #x80) - (new 'static 'rgba :r #x10 :g #x3f :b #x53 :a #x80) - (new 'static 'rgba :r #x12 :g #x40 :b #x54 :a #x80) - (new 'static 'rgba :r #x14 :g #x43 :b #x55 :a #x80) - (new 'static 'rgba :r #x17 :g #x48 :b #x57 :a #x80) - (new 'static 'rgba :r #x19 :g #x45 :b #x57 :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x54 :a #x80) - (new 'static 'rgba :r #x11 :g #x3e :b #x51 :a #x80) - (new 'static 'rgba :r #x10 :g #x3f :b #x51 :a #x80) - (new 'static 'rgba :r #x15 :g #x41 :b #x51 :a #x80) - (new 'static 'rgba :r #x1b :g #x47 :b #x53 :a #x80) - (new 'static 'rgba :r #x1c :g #x49 :b #x54 :a #x80) - (new 'static 'rgba :r #x1a :g #x48 :b #x52 :a #x80) - (new 'static 'rgba :r #x18 :g #x45 :b #x51 :a #x80) - (new 'static 'rgba :r #x17 :g #x44 :b #x4f :a #x80) - (new 'static 'rgba :r #x16 :g #x43 :b #x4e :a #x80) - (new 'static 'rgba :r #x15 :g #x42 :b #x4d :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x4c :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x4b :a #x80) - (new 'static 'rgba :r #x13 :g #x40 :b #x4a :a #x80) - (new 'static 'rgba :r #x13 :g #x40 :b #x4a :a #x80) - (new 'static 'rgba :r #x13 :g #x3f :b #x4a :a #x80) - (new 'static 'rgba :r #x13 :g #x3f :b #x4a :a #x80) - (new 'static 'rgba :r #x13 :g #x40 :b #x4a :a #x80) - (new 'static 'rgba :r #x13 :g #x40 :b #x4b :a #x80) - (new 'static 'rgba :r #x13 :g #x3f :b #x4a :a #x80) - (new 'static 'rgba :r #x12 :g #x3f :b #x4b :a #x80) - (new 'static 'rgba :r #x11 :g #x3e :b #x4b :a #x80) - (new 'static 'rgba :r #xf :g #x3d :b #x4a :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x4b :a #x80) - (new 'static 'rgba :r #xd :g #x3d :b #x4b :a #x80) - (new 'static 'rgba :r #xd :g #x3c :b #x4b :a #x80) - (new 'static 'rgba :r #xc :g #x3a :b #x4b :a #x80) - (new 'static 'rgba :r #xb :g #x38 :b #x49 :a #x80) - (new 'static 'rgba :r #x9 :g #x38 :b #x47 :a #x80) - (new 'static 'rgba :r #x6 :g #x33 :b #x41 :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x4 :g #x30 :b #x3d :a #x80) - (new 'static 'rgba :r #x7 :g #x37 :b #x44 :a #x80) - (new 'static 'rgba :r #x9 :g #x36 :b #x47 :a #x80) - (new 'static 'rgba :r #xa :g #x39 :b #x49 :a #x80) - (new 'static 'rgba :r #xa :g #x3a :b #x4a :a #x80) - (new 'static 'rgba :r #xb :g #x39 :b #x4b :a #x80) - (new 'static 'rgba :r #xd :g #x39 :b #x4e :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x50 :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x52 :a #x80) - (new 'static 'rgba :r #x12 :g #x3e :b #x54 :a #x80) - (new 'static 'rgba :r #x15 :g #x45 :b #x56 :a #x80) - (new 'static 'rgba :r #x18 :g #x47 :b #x58 :a #x80) - (new 'static 'rgba :r #x1a :g #x47 :b #x58 :a #x80) - (new 'static 'rgba :r #x17 :g #x46 :b #x56 :a #x80) - (new 'static 'rgba :r #x12 :g #x43 :b #x53 :a #x80) - (new 'static 'rgba :r #x11 :g #x40 :b #x51 :a #x80) - (new 'static 'rgba :r #x11 :g #x41 :b #x51 :a #x80) - (new 'static 'rgba :r #x18 :g #x45 :b #x52 :a #x80) - (new 'static 'rgba :r #x1d :g #x4a :b #x54 :a #x80) - (new 'static 'rgba :r #x1c :g #x48 :b #x53 :a #x80) - (new 'static 'rgba :r #x19 :g #x46 :b #x51 :a #x80) - (new 'static 'rgba :r #x16 :g #x43 :b #x4f :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x4d :a #x80) - (new 'static 'rgba :r #x13 :g #x40 :b #x4b :a #x80) - (new 'static 'rgba :r #x11 :g #x3e :b #x4a :a #x80) - (new 'static 'rgba :r #x11 :g #x3e :b #x49 :a #x80) - (new 'static 'rgba :r #x10 :g #x3d :b #x48 :a #x80) - (new 'static 'rgba :r #x10 :g #x3c :b #x47 :a #x80) - (new 'static 'rgba :r #x10 :g #x3c :b #x47 :a #x80) - (new 'static 'rgba :r #x10 :g #x3c :b #x47 :a #x80) - (new 'static 'rgba :r #x10 :g #x3c :b #x47 :a #x80) - (new 'static 'rgba :r #x10 :g #x3c :b #x47 :a #x80) - (new 'static 'rgba :r #x10 :g #x3d :b #x48 :a #x80) - (new 'static 'rgba :r #xf :g #x3c :b #x47 :a #x80) - (new 'static 'rgba :r #xf :g #x3c :b #x47 :a #x80) - (new 'static 'rgba :r #xe :g #x3b :b #x48 :a #x80) - (new 'static 'rgba :r #xd :g #x3b :b #x48 :a #x80) - (new 'static 'rgba :r #xc :g #x3a :b #x49 :a #x80) - (new 'static 'rgba :r #xc :g #x3a :b #x49 :a #x80) - (new 'static 'rgba :r #xb :g #x3a :b #x49 :a #x80) - (new 'static 'rgba :r #xb :g #x37 :b #x49 :a #x80) - (new 'static 'rgba :r #x9 :g #x38 :b #x47 :a #x80) - (new 'static 'rgba :r #x8 :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x3f :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3b :a #x80) - (new 'static 'rgba :r #x6 :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x8 :g #x35 :b #x46 :a #x80) - (new 'static 'rgba :r #xa :g #x39 :b #x49 :a #x80) - (new 'static 'rgba :r #xb :g #x3b :b #x4b :a #x80) - (new 'static 'rgba :r #xd :g #x3a :b #x4e :a #x80) - (new 'static 'rgba :r #x10 :g #x3f :b #x52 :a #x80) - (new 'static 'rgba :r #x12 :g #x3e :b #x55 :a #x80) - (new 'static 'rgba :r #x15 :g #x43 :b #x57 :a #x80) - (new 'static 'rgba :r #x18 :g #x48 :b #x58 :a #x80) - (new 'static 'rgba :r #x1b :g #x49 :b #x59 :a #x80) - (new 'static 'rgba :r #x1c :g #x4c :b #x59 :a #x80) - (new 'static 'rgba :r #x19 :g #x47 :b #x57 :a #x80) - (new 'static 'rgba :r #x13 :g #x43 :b #x54 :a #x80) - (new 'static 'rgba :r #x12 :g #x40 :b #x52 :a #x80) - (new 'static 'rgba :r #x11 :g #x3f :b #x51 :a #x80) - (new 'static 'rgba :r #x15 :g #x44 :b #x53 :a #x80) - (new 'static 'rgba :r #x1c :g #x4a :b #x55 :a #x80) - (new 'static 'rgba :r #x20 :g #x4e :b #x56 :a #x80) - (new 'static 'rgba :r #x1d :g #x4a :b #x53 :a #x80) - (new 'static 'rgba :r #x17 :g #x45 :b #x50 :a #x80) - (new 'static 'rgba :r #x14 :g #x42 :b #x4d :a #x80) - (new 'static 'rgba :r #x11 :g #x3f :b #x4b :a #x80) - (new 'static 'rgba :r #xf :g #x3d :b #x4a :a #x80) - (new 'static 'rgba :r #xd :g #x3a :b #x48 :a #x80) - (new 'static 'rgba :r #xb :g #x39 :b #x46 :a #x80) - (new 'static 'rgba :r #xa :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #xa :g #x38 :b #x44 :a #x80) - (new 'static 'rgba :r #xa :g #x37 :b #x43 :a #x80) - (new 'static 'rgba :r #xa :g #x37 :b #x43 :a #x80) - (new 'static 'rgba :r #xb :g #x37 :b #x43 :a #x80) - (new 'static 'rgba :r #xb :g #x38 :b #x44 :a #x80) - (new 'static 'rgba :r #xb :g #x38 :b #x44 :a #x80) - (new 'static 'rgba :r #xb :g #x38 :b #x44 :a #x80) - (new 'static 'rgba :r #xb :g #x39 :b #x44 :a #x80) - (new 'static 'rgba :r #xb :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #xb :g #x39 :b #x46 :a #x80) - (new 'static 'rgba :r #xb :g #x38 :b #x47 :a #x80) - (new 'static 'rgba :r #xa :g #x38 :b #x46 :a #x80) - (new 'static 'rgba :r #x9 :g #x37 :b #x47 :a #x80) - (new 'static 'rgba :r #x9 :g #x37 :b #x46 :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x45 :a #x80) - (new 'static 'rgba :r #x7 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x4 :g #x30 :b #x3d :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x5 :g #x31 :b #x3f :a #x80) - (new 'static 'rgba :r #x7 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #xa :g #x3a :b #x48 :a #x80) - (new 'static 'rgba :r #xd :g #x3d :b #x4d :a #x80) - (new 'static 'rgba :r #x12 :g #x40 :b #x52 :a #x80) - (new 'static 'rgba :r #x15 :g #x42 :b #x56 :a #x80) - (new 'static 'rgba :r #x18 :g #x46 :b #x59 :a #x80) - (new 'static 'rgba :r #x1c :g #x4c :b #x5a :a #x80) - (new 'static 'rgba :r #x21 :g #x4f :b #x5c :a #x80) - (new 'static 'rgba :r #x22 :g #x50 :b #x5c :a #x80) - (new 'static 'rgba :r #x20 :g #x4f :b #x5a :a #x80) - (new 'static 'rgba :r #x18 :g #x44 :b #x56 :a #x80) - (new 'static 'rgba :r #x12 :g #x3f :b #x53 :a #x80) - (new 'static 'rgba :r #x10 :g #x3f :b #x52 :a #x80) - (new 'static 'rgba :r #x12 :g #x40 :b #x52 :a #x80) - (new 'static 'rgba :r #x17 :g #x44 :b #x53 :a #x80) - (new 'static 'rgba :r #x1e :g #x4c :b #x55 :a #x80) - (new 'static 'rgba :r #x21 :g #x4d :b #x55 :a #x80) - (new 'static 'rgba :r #x1d :g #x49 :b #x52 :a #x80) - (new 'static 'rgba :r #x17 :g #x43 :b #x4e :a #x80) - (new 'static 'rgba :r #x13 :g #x40 :b #x4c :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x4a :a #x80) - (new 'static 'rgba :r #xa :g #x39 :b #x47 :a #x80) - (new 'static 'rgba :r #x5 :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x4 :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x4 :g #x33 :b #x3f :a #x80) - (new 'static 'rgba :r #x4 :g #x33 :b #x3f :a #x80) - (new 'static 'rgba :r #x4 :g #x33 :b #x3e :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x3e :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x3f :a #x80) - (new 'static 'rgba :r #x5 :g #x34 :b #x3f :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x40 :a #x80) - (new 'static 'rgba :r #x7 :g #x34 :b #x40 :a #x80) - (new 'static 'rgba :r #x8 :g #x35 :b #x41 :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x7 :g #x35 :b #x44 :a #x80) - (new 'static 'rgba :r #x7 :g #x34 :b #x43 :a #x80) - (new 'static 'rgba :r #x6 :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x5 :g #x31 :b #x40 :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3c :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x4 :g #x2f :b #x3e :a #x80) - (new 'static 'rgba :r #x6 :g #x33 :b #x43 :a #x80) - (new 'static 'rgba :r #xa :g #x3a :b #x49 :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x4f :a #x80) - (new 'static 'rgba :r #x16 :g #x47 :b #x56 :a #x80) - (new 'static 'rgba :r #x1c :g #x4a :b #x5a :a #x80) - (new 'static 'rgba :r #x20 :g #x4d :b #x5c :a #x80) - (new 'static 'rgba :r #x24 :g #x4f :b #x5d :a #x80) - (new 'static 'rgba :r #x26 :g #x53 :b #x5e :a #x80) - (new 'static 'rgba :r #x25 :g #x54 :b #x5d :a #x80) - (new 'static 'rgba :r #x20 :g #x4e :b #x5b :a #x80) - (new 'static 'rgba :r #x18 :g #x44 :b #x57 :a #x80) - (new 'static 'rgba :r #x13 :g #x3f :b #x53 :a #x80) - (new 'static 'rgba :r #x11 :g #x3d :b #x52 :a #x80) - (new 'static 'rgba :r #x13 :g #x41 :b #x52 :a #x80) - (new 'static 'rgba :r #x17 :g #x45 :b #x53 :a #x80) - (new 'static 'rgba :r #x1d :g #x4a :b #x54 :a #x80) - (new 'static 'rgba :r #x20 :g #x4c :b #x53 :a #x80) - (new 'static 'rgba :r #x1c :g #x48 :b #x4f :a #x80) - (new 'static 'rgba :r #x18 :g #x43 :b #x4d :a #x80) - (new 'static 'rgba :r #x13 :g #x40 :b #x4c :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x49 :a #x80) - (new 'static 'rgba :r #x7 :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x4 :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x3 :g #x33 :b #x3e :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #x3d :a #x80) - (new 'static 'rgba :r #x2 :g #x31 :b #x3d :a #x80) - (new 'static 'rgba :r #x2 :g #x30 :b #x3d :a #x80) - (new 'static 'rgba :r #x2 :g #x31 :b #x3c :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #x3d :a #x80) - (new 'static 'rgba :r #x3 :g #x32 :b #x3d :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x3e :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x3f :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x40 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x41 :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x40 :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #x3d :a #x80) - (new 'static 'rgba :r #x6 :g #x36 :b #x42 :a #x80) - (new 'static 'rgba :r #xb :g #x38 :b #x49 :a #x80) - (new 'static 'rgba :r #x12 :g #x42 :b #x50 :a #x80) - (new 'static 'rgba :r #x1b :g #x49 :b #x57 :a #x80) - (new 'static 'rgba :r #x21 :g #x51 :b #x5d :a #x80) - (new 'static 'rgba :r #x26 :g #x53 :b #x5f :a #x80) - (new 'static 'rgba :r #x28 :g #x55 :b #x5f :a #x80) - (new 'static 'rgba :r #x27 :g #x53 :b #x5f :a #x80) - (new 'static 'rgba :r #x25 :g #x54 :b #x5d :a #x80) - (new 'static 'rgba :r #x20 :g #x4f :b #x5b :a #x80) - (new 'static 'rgba :r #x1a :g #x47 :b #x57 :a #x80) - (new 'static 'rgba :r #x15 :g #x42 :b #x55 :a #x80) - (new 'static 'rgba :r #x13 :g #x41 :b #x53 :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x53 :a #x80) - (new 'static 'rgba :r #x19 :g #x45 :b #x54 :a #x80) - (new 'static 'rgba :r #x1d :g #x49 :b #x54 :a #x80) - (new 'static 'rgba :r #x20 :g #x4c :b #x53 :a #x80) - (new 'static 'rgba :r #x1e :g #x48 :b #x4f :a #x80) - (new 'static 'rgba :r #x1a :g #x44 :b #x4d :a #x80) - (new 'static 'rgba :r #x15 :g #x42 :b #x4b :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x49 :a #x80) - (new 'static 'rgba :r #x9 :g #x39 :b #x46 :a #x80) - (new 'static 'rgba :r #x5 :g #x36 :b #x42 :a #x80) - (new 'static 'rgba :r #x4 :g #x34 :b #x40 :a #x80) - (new 'static 'rgba :r #x3 :g #x33 :b #x3e :a #x80) - (new 'static 'rgba :r #x2 :g #x32 :b #x3d :a #x80) - (new 'static 'rgba :r #x2 :g #x31 :b #x3d :a #x80) - (new 'static 'rgba :r #x2 :g #x31 :b #x3c :a #x80) - (new 'static 'rgba :r #x2 :g #x31 :b #x3c :a #x80) - (new 'static 'rgba :r #x3 :g #x32 :b #x3d :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x3d :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x3e :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x3e :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x3f :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x3f :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x3f :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x3f :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x3f :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3f :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3e :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3c :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #x3c :a #x80) - (new 'static 'rgba :r #x7 :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #xc :g #x3a :b #x49 :a #x80) - (new 'static 'rgba :r #x13 :g #x40 :b #x50 :a #x80) - (new 'static 'rgba :r #x1b :g #x48 :b #x57 :a #x80) - (new 'static 'rgba :r #x22 :g #x52 :b #x5d :a #x80) - (new 'static 'rgba :r #x26 :g #x52 :b #x5f :a #x80) - (new 'static 'rgba :r #x26 :g #x56 :b #x5f :a #x80) - (new 'static 'rgba :r #x24 :g #x51 :b #x5d :a #x80) - (new 'static 'rgba :r #x21 :g #x4f :b #x5c :a #x80) - (new 'static 'rgba :r #x1e :g #x4b :b #x5a :a #x80) - (new 'static 'rgba :r #x1c :g #x4a :b #x59 :a #x80) - (new 'static 'rgba :r #x19 :g #x47 :b #x57 :a #x80) - (new 'static 'rgba :r #x18 :g #x47 :b #x56 :a #x80) - (new 'static 'rgba :r #x19 :g #x47 :b #x56 :a #x80) - (new 'static 'rgba :r #x1b :g #x4a :b #x55 :a #x80) - (new 'static 'rgba :r #x1e :g #x49 :b #x55 :a #x80) - (new 'static 'rgba :r #x20 :g #x4c :b #x54 :a #x80) - (new 'static 'rgba :r #x20 :g #x4b :b #x51 :a #x80) - (new 'static 'rgba :r #x1d :g #x46 :b #x4d :a #x80) - (new 'static 'rgba :r #x19 :g #x44 :b #x4b :a #x80) - (new 'static 'rgba :r #x15 :g #x41 :b #x4a :a #x80) - (new 'static 'rgba :r #x11 :g #x3d :b #x48 :a #x80) - (new 'static 'rgba :r #xd :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x9 :g #x38 :b #x43 :a #x80) - (new 'static 'rgba :r #x5 :g #x36 :b #x40 :a #x80) - (new 'static 'rgba :r #x4 :g #x35 :b #x3f :a #x80) - (new 'static 'rgba :r #x3 :g #x34 :b #x3e :a #x80) - (new 'static 'rgba :r #x3 :g #x33 :b #x3e :a #x80) - (new 'static 'rgba :r #x3 :g #x32 :b #x3d :a #x80) - (new 'static 'rgba :r #x3 :g #x32 :b #x3d :a #x80) - (new 'static 'rgba :r #x3 :g #x32 :b #x3d :a #x80) - (new 'static 'rgba :r #x3 :g #x32 :b #x3e :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x3e :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x3e :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #x3e :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #x3e :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3e :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3d :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #x3d :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3b :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x3a :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x6 :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #xb :g #x3a :b #x49 :a #x80) - (new 'static 'rgba :r #x11 :g #x3e :b #x4f :a #x80) - (new 'static 'rgba :r #x18 :g #x46 :b #x55 :a #x80) - (new 'static 'rgba :r #x1d :g #x4c :b #x59 :a #x80) - (new 'static 'rgba :r #x20 :g #x4c :b #x5b :a #x80) - (new 'static 'rgba :r #x1f :g #x4c :b #x5b :a #x80) - (new 'static 'rgba :r #x1c :g #x4a :b #x59 :a #x80) - (new 'static 'rgba :r #x1a :g #x49 :b #x58 :a #x80) - (new 'static 'rgba :r #x19 :g #x47 :b #x57 :a #x80) - (new 'static 'rgba :r #x1a :g #x47 :b #x57 :a #x80) - (new 'static 'rgba :r #x19 :g #x4a :b #x56 :a #x80) - (new 'static 'rgba :r #x1b :g #x48 :b #x57 :a #x80) - (new 'static 'rgba :r #x1b :g #x49 :b #x56 :a #x80) - (new 'static 'rgba :r #x1b :g #x47 :b #x54 :a #x80) - (new 'static 'rgba :r #x1c :g #x49 :b #x55 :a #x80) - (new 'static 'rgba :r #x1e :g #x4c :b #x55 :a #x80) - (new 'static 'rgba :r #x20 :g #x4b :b #x53 :a #x80) - (new 'static 'rgba :r #x20 :g #x4a :b #x50 :a #x80) - (new 'static 'rgba :r #x1e :g #x48 :b #x4e :a #x80) - (new 'static 'rgba :r #x1b :g #x46 :b #x4c :a #x80) - (new 'static 'rgba :r #x17 :g #x43 :b #x4a :a #x80) - (new 'static 'rgba :r #x15 :g #x41 :b #x49 :a #x80) - (new 'static 'rgba :r #x12 :g #x3f :b #x48 :a #x80) - (new 'static 'rgba :r #xd :g #x3b :b #x45 :a #x80) - (new 'static 'rgba :r #x8 :g #x38 :b #x42 :a #x80) - (new 'static 'rgba :r #x6 :g #x35 :b #x40 :a #x80) - (new 'static 'rgba :r #x5 :g #x34 :b #x3f :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x3f :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x3e :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x3d :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #x3d :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #x3d :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3d :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3d :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) - (new 'static 'rgba :r #x2 :g #x30 :b #x3c :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3b :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) - (new 'static 'rgba :r #x5 :g #x30 :b #x40 :a #x80) - (new 'static 'rgba :r #xa :g #x39 :b #x47 :a #x80) - (new 'static 'rgba :r #xe :g #x3b :b #x4d :a #x80) - (new 'static 'rgba :r #x12 :g #x3f :b #x50 :a #x80) - (new 'static 'rgba :r #x15 :g #x43 :b #x54 :a #x80) - (new 'static 'rgba :r #x16 :g #x42 :b #x54 :a #x80) - (new 'static 'rgba :r #x14 :g #x42 :b #x53 :a #x80) - (new 'static 'rgba :r #x13 :g #x43 :b #x53 :a #x80) - (new 'static 'rgba :r #x13 :g #x40 :b #x52 :a #x80) - (new 'static 'rgba :r #x13 :g #x3f :b #x52 :a #x80) - (new 'static 'rgba :r #x14 :g #x42 :b #x53 :a #x80) - (new 'static 'rgba :r #x14 :g #x44 :b #x52 :a #x80) - (new 'static 'rgba :r #x14 :g #x43 :b #x51 :a #x80) - (new 'static 'rgba :r #x14 :g #x43 :b #x50 :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x4f :a #x80) - (new 'static 'rgba :r #x14 :g #x42 :b #x50 :a #x80) - (new 'static 'rgba :r #x19 :g #x44 :b #x51 :a #x80) - (new 'static 'rgba :r #x1e :g #x4a :b #x54 :a #x80) - (new 'static 'rgba :r #x22 :g #x4d :b #x54 :a #x80) - (new 'static 'rgba :r #x22 :g #x4e :b #x53 :a #x80) - (new 'static 'rgba :r #x20 :g #x4c :b #x52 :a #x80) - (new 'static 'rgba :r #x1d :g #x49 :b #x50 :a #x80) - (new 'static 'rgba :r #x19 :g #x46 :b #x4e :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x4b :a #x80) - (new 'static 'rgba :r #xf :g #x3c :b #x47 :a #x80) - (new 'static 'rgba :r #xb :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x8 :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x6 :g #x33 :b #x3f :a #x80) - (new 'static 'rgba :r #x5 :g #x31 :b #x3e :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3d :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3c :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3b :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3d :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3d :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3d :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3c :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2b :b #x39 :a #x80) - (new 'static 'rgba :r #x4 :g #x30 :b #x3e :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x45 :a #x80) - (new 'static 'rgba :r #xb :g #x39 :b #x49 :a #x80) - (new 'static 'rgba :r #xd :g #x3b :b #x4c :a #x80) - (new 'static 'rgba :r #xe :g #x3b :b #x4d :a #x80) - (new 'static 'rgba :r #xe :g #x3a :b #x4e :a #x80) - (new 'static 'rgba :r #xd :g #x39 :b #x4e :a #x80) - (new 'static 'rgba :r #xd :g #x3b :b #x4e :a #x80) - (new 'static 'rgba :r #xe :g #x3d :b #x4f :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x4f :a #x80) - (new 'static 'rgba :r #xf :g #x3d :b #x4f :a #x80) - (new 'static 'rgba :r #xf :g #x3d :b #x4d :a #x80) - (new 'static 'rgba :r #xd :g #x3b :b #x4b :a #x80) - (new 'static 'rgba :r #xc :g #x3a :b #x49 :a #x80) - (new 'static 'rgba :r #xb :g #x39 :b #x48 :a #x80) - (new 'static 'rgba :r #xe :g #x3b :b #x4b :a #x80) - (new 'static 'rgba :r #x13 :g #x42 :b #x4e :a #x80) - (new 'static 'rgba :r #x1a :g #x47 :b #x53 :a #x80) - (new 'static 'rgba :r #x20 :g #x4e :b #x56 :a #x80) - (new 'static 'rgba :r #x23 :g #x4f :b #x57 :a #x80) - (new 'static 'rgba :r #x22 :g #x4e :b #x54 :a #x80) - (new 'static 'rgba :r #x1f :g #x4c :b #x52 :a #x80) - (new 'static 'rgba :r #x19 :g #x46 :b #x4f :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x4c :a #x80) - (new 'static 'rgba :r #xe :g #x3b :b #x48 :a #x80) - (new 'static 'rgba :r #x9 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x6 :g #x32 :b #x40 :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x3e :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3d :a #x80) - (new 'static 'rgba :r #x4 :g #x30 :b #x3c :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3d :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x40 :a #x80) - (new 'static 'rgba :r #x6 :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x6 :g #x33 :b #x41 :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x40 :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2b :b #x39 :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3d :a #x80) - (new 'static 'rgba :r #x6 :g #x32 :b #x43 :a #x80) - (new 'static 'rgba :r #x8 :g #x37 :b #x47 :a #x80) - (new 'static 'rgba :r #x9 :g #x39 :b #x49 :a #x80) - (new 'static 'rgba :r #x9 :g #x37 :b #x49 :a #x80) - (new 'static 'rgba :r #xa :g #x3a :b #x4a :a #x80) - (new 'static 'rgba :r #xb :g #x37 :b #x4c :a #x80) - (new 'static 'rgba :r #xc :g #x3b :b #x4e :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x51 :a #x80) - (new 'static 'rgba :r #x11 :g #x40 :b #x51 :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x51 :a #x80) - (new 'static 'rgba :r #xe :g #x3e :b #x4e :a #x80) - (new 'static 'rgba :r #xc :g #x3b :b #x4b :a #x80) - (new 'static 'rgba :r #xa :g #x37 :b #x48 :a #x80) - (new 'static 'rgba :r #xa :g #x38 :b #x47 :a #x80) - (new 'static 'rgba :r #xd :g #x3b :b #x49 :a #x80) - (new 'static 'rgba :r #x12 :g #x41 :b #x4d :a #x80) - (new 'static 'rgba :r #x19 :g #x48 :b #x52 :a #x80) - (new 'static 'rgba :r #x20 :g #x4e :b #x56 :a #x80) - (new 'static 'rgba :r #x24 :g #x51 :b #x57 :a #x80) - (new 'static 'rgba :r #x25 :g #x50 :b #x57 :a #x80) - (new 'static 'rgba :r #x20 :g #x4e :b #x55 :a #x80) - (new 'static 'rgba :r #x1b :g #x49 :b #x51 :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x4d :a #x80) - (new 'static 'rgba :r #xd :g #x3a :b #x48 :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x40 :a #x80) - (new 'static 'rgba :r #x5 :g #x31 :b #x3e :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x3e :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3d :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3d :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3d :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x40 :a #x80) - (new 'static 'rgba :r #x7 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x8 :g #x35 :b #x45 :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x45 :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x45 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3d :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2f :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x5 :g #x30 :b #x41 :a #x80) - (new 'static 'rgba :r #x7 :g #x36 :b #x45 :a #x80) - (new 'static 'rgba :r #x7 :g #x39 :b #x47 :a #x80) - (new 'static 'rgba :r #x9 :g #x39 :b #x48 :a #x80) - (new 'static 'rgba :r #xa :g #x3a :b #x4a :a #x80) - (new 'static 'rgba :r #xc :g #x3b :b #x4d :a #x80) - (new 'static 'rgba :r #xf :g #x40 :b #x51 :a #x80) - (new 'static 'rgba :r #x12 :g #x41 :b #x54 :a #x80) - (new 'static 'rgba :r #x14 :g #x40 :b #x54 :a #x80) - (new 'static 'rgba :r #x14 :g #x45 :b #x54 :a #x80) - (new 'static 'rgba :r #x12 :g #x40 :b #x51 :a #x80) - (new 'static 'rgba :r #xf :g #x3f :b #x4e :a #x80) - (new 'static 'rgba :r #xe :g #x3b :b #x4b :a #x80) - (new 'static 'rgba :r #xe :g #x3a :b #x49 :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x4b :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x4c :a #x80) - (new 'static 'rgba :r #x19 :g #x49 :b #x4f :a #x80) - (new 'static 'rgba :r #x20 :g #x4e :b #x53 :a #x80) - (new 'static 'rgba :r #x25 :g #x51 :b #x56 :a #x80) - (new 'static 'rgba :r #x25 :g #x52 :b #x57 :a #x80) - (new 'static 'rgba :r #x22 :g #x4e :b #x56 :a #x80) - (new 'static 'rgba :r #x1c :g #x48 :b #x52 :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x4e :a #x80) - (new 'static 'rgba :r #xd :g #x3b :b #x48 :a #x80) - (new 'static 'rgba :r #x9 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x7 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x7 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x7 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x6 :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x5 :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x6 :g #x33 :b #x41 :a #x80) - (new 'static 'rgba :r #x7 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x9 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #xb :g #x39 :b #x47 :a #x80) - (new 'static 'rgba :r #xb :g #x3a :b #x49 :a #x80) - (new 'static 'rgba :r #xa :g #x39 :b #x49 :a #x80) - (new 'static 'rgba :r #xa :g #x38 :b #x48 :a #x80) - (new 'static 'rgba :r #x8 :g #x35 :b #x45 :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3b :a #x80) - (new 'static 'rgba :r #x5 :g #x30 :b #x40 :a #x80) - (new 'static 'rgba :r #x6 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x8 :g #x38 :b #x47 :a #x80) - (new 'static 'rgba :r #xa :g #x38 :b #x49 :a #x80) - (new 'static 'rgba :r #xd :g #x3a :b #x4c :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x50 :a #x80) - (new 'static 'rgba :r #x14 :g #x43 :b #x54 :a #x80) - (new 'static 'rgba :r #x16 :g #x46 :b #x57 :a #x80) - (new 'static 'rgba :r #x16 :g #x44 :b #x56 :a #x80) - (new 'static 'rgba :r #x15 :g #x46 :b #x54 :a #x80) - (new 'static 'rgba :r #x14 :g #x42 :b #x51 :a #x80) - (new 'static 'rgba :r #x11 :g #x41 :b #x4e :a #x80) - (new 'static 'rgba :r #x10 :g #x41 :b #x4b :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x4a :a #x80) - (new 'static 'rgba :r #x12 :g #x40 :b #x49 :a #x80) - (new 'static 'rgba :r #x15 :g #x45 :b #x4a :a #x80) - (new 'static 'rgba :r #x1a :g #x48 :b #x4a :a #x80) - (new 'static 'rgba :r #x1f :g #x4a :b #x4b :a #x80) - (new 'static 'rgba :r #x23 :g #x4d :b #x4e :a #x80) - (new 'static 'rgba :r #x26 :g #x51 :b #x53 :a #x80) - (new 'static 'rgba :r #x23 :g #x51 :b #x55 :a #x80) - (new 'static 'rgba :r #x1d :g #x49 :b #x51 :a #x80) - (new 'static 'rgba :r #x15 :g #x45 :b #x4c :a #x80) - (new 'static 'rgba :r #xf :g #x3d :b #x48 :a #x80) - (new 'static 'rgba :r #xb :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x9 :g #x3a :b #x44 :a #x80) - (new 'static 'rgba :r #x9 :g #x38 :b #x46 :a #x80) - (new 'static 'rgba :r #x9 :g #x37 :b #x47 :a #x80) - (new 'static 'rgba :r #xa :g #x39 :b #x48 :a #x80) - (new 'static 'rgba :r #x9 :g #x38 :b #x47 :a #x80) - (new 'static 'rgba :r #x9 :g #x36 :b #x46 :a #x80) - (new 'static 'rgba :r #x9 :g #x37 :b #x46 :a #x80) - (new 'static 'rgba :r #xa :g #x38 :b #x47 :a #x80) - (new 'static 'rgba :r #xc :g #x3a :b #x48 :a #x80) - (new 'static 'rgba :r #xe :g #x3d :b #x4b :a #x80) - (new 'static 'rgba :r #xf :g #x3f :b #x4c :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x4d :a #x80) - (new 'static 'rgba :r #xe :g #x3d :b #x4c :a #x80) - (new 'static 'rgba :r #xc :g #x39 :b #x4a :a #x80) - (new 'static 'rgba :r #x9 :g #x36 :b #x46 :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x40 :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x4 :g #x2f :b #x3d :a #x80) - (new 'static 'rgba :r #x5 :g #x31 :b #x42 :a #x80) - (new 'static 'rgba :r #x8 :g #x38 :b #x46 :a #x80) - (new 'static 'rgba :r #xa :g #x39 :b #x48 :a #x80) - (new 'static 'rgba :r #xd :g #x3a :b #x4b :a #x80) - (new 'static 'rgba :r #x12 :g #x3f :b #x4f :a #x80) - (new 'static 'rgba :r #x16 :g #x42 :b #x54 :a #x80) - (new 'static 'rgba :r #x1d :g #x4a :b #x59 :a #x80) - (new 'static 'rgba :r #x1e :g #x4a :b #x59 :a #x80) - (new 'static 'rgba :r #x1a :g #x49 :b #x56 :a #x80) - (new 'static 'rgba :r #x16 :g #x44 :b #x51 :a #x80) - (new 'static 'rgba :r #x13 :g #x42 :b #x4e :a #x80) - (new 'static 'rgba :r #x11 :g #x42 :b #x4a :a #x80) - (new 'static 'rgba :r #xf :g #x42 :b #x47 :a #x80) - (new 'static 'rgba :r #x10 :g #x42 :b #x45 :a #x80) - (new 'static 'rgba :r #x12 :g #x41 :b #x44 :a #x80) - (new 'static 'rgba :r #x15 :g #x42 :b #x41 :a #x80) - (new 'static 'rgba :r #x1a :g #x43 :b #x42 :a #x80) - (new 'static 'rgba :r #x1d :g #x45 :b #x42 :a #x80) - (new 'static 'rgba :r #x21 :g #x47 :b #x42 :a #x80) - (new 'static 'rgba :r #x23 :g #x4b :b #x48 :a #x80) - (new 'static 'rgba :r #x22 :g #x4b :b #x4d :a #x80) - (new 'static 'rgba :r #x1d :g #x49 :b #x4a :a #x80) - (new 'static 'rgba :r #x17 :g #x46 :b #x49 :a #x80) - (new 'static 'rgba :r #x12 :g #x41 :b #x48 :a #x80) - (new 'static 'rgba :r #xe :g #x3d :b #x47 :a #x80) - (new 'static 'rgba :r #xc :g #x3d :b #x46 :a #x80) - (new 'static 'rgba :r #xc :g #x3c :b #x48 :a #x80) - (new 'static 'rgba :r #xd :g #x3c :b #x49 :a #x80) - (new 'static 'rgba :r #xc :g #x3c :b #x4a :a #x80) - (new 'static 'rgba :r #xc :g #x3c :b #x4a :a #x80) - (new 'static 'rgba :r #xc :g #x3b :b #x4b :a #x80) - (new 'static 'rgba :r #xd :g #x3d :b #x4b :a #x80) - (new 'static 'rgba :r #xf :g #x3d :b #x4c :a #x80) - (new 'static 'rgba :r #x12 :g #x40 :b #x4e :a #x80) - (new 'static 'rgba :r #x14 :g #x42 :b #x4f :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x50 :a #x80) - (new 'static 'rgba :r #x13 :g #x40 :b #x4f :a #x80) - (new 'static 'rgba :r #x11 :g #x3e :b #x4e :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x4c :a #x80) - (new 'static 'rgba :r #xb :g #x39 :b #x48 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3c :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3d :a #x80) - (new 'static 'rgba :r #x5 :g #x34 :b #x40 :a #x80) - (new 'static 'rgba :r #x7 :g #x33 :b #x45 :a #x80) - (new 'static 'rgba :r #x9 :g #x39 :b #x48 :a #x80) - (new 'static 'rgba :r #xc :g #x3a :b #x4b :a #x80) - (new 'static 'rgba :r #x12 :g #x3f :b #x4f :a #x80) - (new 'static 'rgba :r #x17 :g #x47 :b #x54 :a #x80) - (new 'static 'rgba :r #x1d :g #x48 :b #x56 :a #x80) - (new 'static 'rgba :r #x21 :g #x52 :b #x5a :a #x80) - (new 'static 'rgba :r #x21 :g #x4f :b #x58 :a #x80) - (new 'static 'rgba :r #x1e :g #x4c :b #x55 :a #x80) - (new 'static 'rgba :r #x18 :g #x49 :b #x4f :a #x80) - (new 'static 'rgba :r #x12 :g #x45 :b #x4b :a #x80) - (new 'static 'rgba :r #xf :g #x44 :b #x46 :a #x80) - (new 'static 'rgba :r #xe :g #x3f :b #x42 :a #x80) - (new 'static 'rgba :r #xf :g #x3d :b #x3e :a #x80) - (new 'static 'rgba :r #x11 :g #x3d :b #x3d :a #x80) - (new 'static 'rgba :r #x14 :g #x3e :b #x3c :a #x80) - (new 'static 'rgba :r #x19 :g #x40 :b #x39 :a #x80) - (new 'static 'rgba :r #x1c :g #x41 :b #x38 :a #x80) - (new 'static 'rgba :r #x1f :g #x43 :b #x3b :a #x80) - (new 'static 'rgba :r #x20 :g #x45 :b #x3e :a #x80) - (new 'static 'rgba :r #x20 :g #x44 :b #x3e :a #x80) - (new 'static 'rgba :r #x1c :g #x44 :b #x40 :a #x80) - (new 'static 'rgba :r #x18 :g #x43 :b #x42 :a #x80) - (new 'static 'rgba :r #x15 :g #x42 :b #x46 :a #x80) - (new 'static 'rgba :r #x11 :g #x42 :b #x49 :a #x80) - (new 'static 'rgba :r #x10 :g #x3f :b #x48 :a #x80) - (new 'static 'rgba :r #xe :g #x3e :b #x48 :a #x80) - (new 'static 'rgba :r #xe :g #x3f :b #x49 :a #x80) - (new 'static 'rgba :r #xe :g #x3e :b #x4a :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x4b :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x4c :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x4d :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x50 :a #x80) - (new 'static 'rgba :r #x16 :g #x44 :b #x51 :a #x80) - (new 'static 'rgba :r #x18 :g #x46 :b #x52 :a #x80) - (new 'static 'rgba :r #x17 :g #x45 :b #x52 :a #x80) - (new 'static 'rgba :r #x16 :g #x44 :b #x51 :a #x80) - (new 'static 'rgba :r #x15 :g #x43 :b #x50 :a #x80) - (new 'static 'rgba :r #x12 :g #x40 :b #x4e :a #x80) - (new 'static 'rgba :r #xe :g #x3b :b #x49 :a #x80) - (new 'static 'rgba :r #x7 :g #x36 :b #x42 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x3d :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x3f :a #x80) - (new 'static 'rgba :r #x7 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #xa :g #x39 :b #x48 :a #x80) - (new 'static 'rgba :r #xc :g #x3b :b #x4b :a #x80) - (new 'static 'rgba :r #x11 :g #x3d :b #x4e :a #x80) - (new 'static 'rgba :r #x17 :g #x45 :b #x52 :a #x80) - (new 'static 'rgba :r #x1d :g #x49 :b #x55 :a #x80) - (new 'static 'rgba :r #x20 :g #x4c :b #x55 :a #x80) - (new 'static 'rgba :r #x1c :g #x47 :b #x4f :a #x80) - (new 'static 'rgba :r #x1c :g #x48 :b #x51 :a #x80) - (new 'static 'rgba :r #x1f :g #x50 :b #x53 :a #x80) - (new 'static 'rgba :r #x1a :g #x4b :b #x4e :a #x80) - (new 'static 'rgba :r #x12 :g #x43 :b #x45 :a #x80) - (new 'static 'rgba :r #xf :g #x3f :b #x40 :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x3b :a #x80) - (new 'static 'rgba :r #xf :g #x3c :b #x39 :a #x80) - (new 'static 'rgba :r #x10 :g #x3d :b #x37 :a #x80) - (new 'static 'rgba :r #x14 :g #x3f :b #x35 :a #x80) - (new 'static 'rgba :r #x17 :g #x40 :b #x34 :a #x80) - (new 'static 'rgba :r #x1a :g #x41 :b #x35 :a #x80) - (new 'static 'rgba :r #x1e :g #x42 :b #x36 :a #x80) - (new 'static 'rgba :r #x1f :g #x43 :b #x35 :a #x80) - (new 'static 'rgba :r #x1d :g #x42 :b #x38 :a #x80) - (new 'static 'rgba :r #x1b :g #x41 :b #x39 :a #x80) - (new 'static 'rgba :r #x17 :g #x40 :b #x3e :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x43 :a #x80) - (new 'static 'rgba :r #x12 :g #x41 :b #x47 :a #x80) - (new 'static 'rgba :r #x10 :g #x42 :b #x48 :a #x80) - (new 'static 'rgba :r #x10 :g #x42 :b #x49 :a #x80) - (new 'static 'rgba :r #xf :g #x3f :b #x49 :a #x80) - (new 'static 'rgba :r #xf :g #x3d :b #x49 :a #x80) - (new 'static 'rgba :r #xe :g #x40 :b #x4b :a #x80) - (new 'static 'rgba :r #xf :g #x40 :b #x4c :a #x80) - (new 'static 'rgba :r #x12 :g #x43 :b #x4e :a #x80) - (new 'static 'rgba :r #x15 :g #x42 :b #x51 :a #x80) - (new 'static 'rgba :r #x19 :g #x48 :b #x53 :a #x80) - (new 'static 'rgba :r #x1a :g #x48 :b #x54 :a #x80) - (new 'static 'rgba :r #x19 :g #x47 :b #x53 :a #x80) - (new 'static 'rgba :r #x19 :g #x47 :b #x53 :a #x80) - (new 'static 'rgba :r #x17 :g #x45 :b #x52 :a #x80) - (new 'static 'rgba :r #x13 :g #x42 :b #x4f :a #x80) - (new 'static 'rgba :r #xf :g #x3b :b #x4b :a #x80) - (new 'static 'rgba :r #x9 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3b :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) - (new 'static 'rgba :r #x7 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #xa :g #x37 :b #x47 :a #x80) - (new 'static 'rgba :r #xd :g #x3c :b #x4b :a #x80) - (new 'static 'rgba :r #x12 :g #x42 :b #x4f :a #x80) - (new 'static 'rgba :r #x17 :g #x46 :b #x52 :a #x80) - (new 'static 'rgba :r #x1b :g #x49 :b #x54 :a #x80) - (new 'static 'rgba :r #x1e :g #x48 :b #x54 :a #x80) - (new 'static 'rgba :r #x18 :g #x43 :b #x4c :a #x80) - (new 'static 'rgba :r #x12 :g #x3f :b #x46 :a #x80) - (new 'static 'rgba :r #x14 :g #x44 :b #x48 :a #x80) - (new 'static 'rgba :r #x1a :g #x4b :b #x4c :a #x80) - (new 'static 'rgba :r #x1b :g #x4a :b #x4a :a #x80) - (new 'static 'rgba :r #x13 :g #x41 :b #x41 :a #x80) - (new 'static 'rgba :r #x10 :g #x3d :b #x3c :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x39 :a #x80) - (new 'static 'rgba :r #xf :g #x3d :b #x36 :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x36 :a #x80) - (new 'static 'rgba :r #x12 :g #x3e :b #x31 :a #x80) - (new 'static 'rgba :r #x15 :g #x40 :b #x2e :a #x80) - (new 'static 'rgba :r #x18 :g #x40 :b #x2e :a #x80) - (new 'static 'rgba :r #x1b :g #x41 :b #x2f :a #x80) - (new 'static 'rgba :r #x1c :g #x42 :b #x31 :a #x80) - (new 'static 'rgba :r #x1b :g #x42 :b #x32 :a #x80) - (new 'static 'rgba :r #x19 :g #x42 :b #x34 :a #x80) - (new 'static 'rgba :r #x16 :g #x40 :b #x3b :a #x80) - (new 'static 'rgba :r #x13 :g #x3f :b #x3e :a #x80) - (new 'static 'rgba :r #x11 :g #x41 :b #x44 :a #x80) - (new 'static 'rgba :r #x10 :g #x3f :b #x46 :a #x80) - (new 'static 'rgba :r #x10 :g #x42 :b #x47 :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x48 :a #x80) - (new 'static 'rgba :r #xe :g #x41 :b #x48 :a #x80) - (new 'static 'rgba :r #xe :g #x41 :b #x49 :a #x80) - (new 'static 'rgba :r #xe :g #x40 :b #x4a :a #x80) - (new 'static 'rgba :r #x11 :g #x3f :b #x4d :a #x80) - (new 'static 'rgba :r #x15 :g #x42 :b #x50 :a #x80) - (new 'static 'rgba :r #x19 :g #x48 :b #x53 :a #x80) - (new 'static 'rgba :r #x1c :g #x48 :b #x55 :a #x80) - (new 'static 'rgba :r #x1b :g #x48 :b #x55 :a #x80) - (new 'static 'rgba :r #x1a :g #x48 :b #x54 :a #x80) - (new 'static 'rgba :r #x16 :g #x44 :b #x52 :a #x80) - (new 'static 'rgba :r #x13 :g #x3f :b #x50 :a #x80) - (new 'static 'rgba :r #xe :g #x3a :b #x4b :a #x80) - (new 'static 'rgba :r #x8 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x3b :a #x80) - (new 'static 'rgba :r #x5 :g #x31 :b #x40 :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #xc :g #x38 :b #x49 :a #x80) - (new 'static 'rgba :r #x10 :g #x41 :b #x4e :a #x80) - (new 'static 'rgba :r #x17 :g #x45 :b #x52 :a #x80) - (new 'static 'rgba :r #x1b :g #x47 :b #x54 :a #x80) - (new 'static 'rgba :r #x1d :g #x4c :b #x54 :a #x80) - (new 'static 'rgba :r #x19 :g #x43 :b #x4c :a #x80) - (new 'static 'rgba :r #x11 :g #x40 :b #x46 :a #x80) - (new 'static 'rgba :r #x10 :g #x3d :b #x43 :a #x80) - (new 'static 'rgba :r #x12 :g #x41 :b #x45 :a #x80) - (new 'static 'rgba :r #x16 :g #x45 :b #x46 :a #x80) - (new 'static 'rgba :r #x1a :g #x48 :b #x47 :a #x80) - (new 'static 'rgba :r #x13 :g #x40 :b #x3d :a #x80) - (new 'static 'rgba :r #xf :g #x3c :b #x37 :a #x80) - (new 'static 'rgba :r #xe :g #x3e :b #x34 :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x35 :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x30 :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x2c :a #x80) - (new 'static 'rgba :r #x11 :g #x3d :b #x2a :a #x80) - (new 'static 'rgba :r #x14 :g #x3e :b #x29 :a #x80) - (new 'static 'rgba :r #x16 :g #x3f :b #x27 :a #x80) - (new 'static 'rgba :r #x17 :g #x3f :b #x29 :a #x80) - (new 'static 'rgba :r #x16 :g #x3f :b #x2c :a #x80) - (new 'static 'rgba :r #x15 :g #x3f :b #x30 :a #x80) - (new 'static 'rgba :r #x12 :g #x3f :b #x36 :a #x80) - (new 'static 'rgba :r #x11 :g #x3e :b #x3a :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x40 :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x43 :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x45 :a #x80) - (new 'static 'rgba :r #xf :g #x40 :b #x46 :a #x80) - (new 'static 'rgba :r #xf :g #x3f :b #x47 :a #x80) - (new 'static 'rgba :r #xe :g #x40 :b #x47 :a #x80) - (new 'static 'rgba :r #xe :g #x41 :b #x48 :a #x80) - (new 'static 'rgba :r #x10 :g #x3f :b #x4a :a #x80) - (new 'static 'rgba :r #x12 :g #x41 :b #x4e :a #x80) - (new 'static 'rgba :r #x16 :g #x44 :b #x51 :a #x80) - (new 'static 'rgba :r #x19 :g #x48 :b #x53 :a #x80) - (new 'static 'rgba :r #x19 :g #x47 :b #x54 :a #x80) - (new 'static 'rgba :r #x17 :g #x46 :b #x54 :a #x80) - (new 'static 'rgba :r #x15 :g #x42 :b #x52 :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x4f :a #x80) - (new 'static 'rgba :r #xc :g #x3b :b #x4a :a #x80) - (new 'static 'rgba :r #x6 :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3b :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x40 :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x45 :a #x80) - (new 'static 'rgba :r #xe :g #x3a :b #x4b :a #x80) - (new 'static 'rgba :r #x14 :g #x43 :b #x50 :a #x80) - (new 'static 'rgba :r #x1a :g #x48 :b #x55 :a #x80) - (new 'static 'rgba :r #x1f :g #x49 :b #x54 :a #x80) - (new 'static 'rgba :r #x1a :g #x46 :b #x4f :a #x80) - (new 'static 'rgba :r #x13 :g #x41 :b #x48 :a #x80) - (new 'static 'rgba :r #x10 :g #x3d :b #x44 :a #x80) - (new 'static 'rgba :r #x11 :g #x3f :b #x43 :a #x80) - (new 'static 'rgba :r #x12 :g #x40 :b #x42 :a #x80) - (new 'static 'rgba :r #x19 :g #x47 :b #x47 :a #x80) - (new 'static 'rgba :r #x18 :g #x45 :b #x40 :a #x80) - (new 'static 'rgba :r #x11 :g #x3d :b #x36 :a #x80) - (new 'static 'rgba :r #xf :g #x3c :b #x33 :a #x80) - (new 'static 'rgba :r #xe :g #x3e :b #x31 :a #x80) - (new 'static 'rgba :r #xe :g #x3d :b #x30 :a #x80) - (new 'static 'rgba :r #xd :g #x3c :b #x2b :a #x80) - (new 'static 'rgba :r #xd :g #x3b :b #x26 :a #x80) - (new 'static 'rgba :r #xc :g #x3a :b #x22 :a #x80) - (new 'static 'rgba :r #xd :g #x3a :b #x1c :a #x80) - (new 'static 'rgba :r #xf :g #x3a :b #x1d :a #x80) - (new 'static 'rgba :r #x10 :g #x3b :b #x21 :a #x80) - (new 'static 'rgba :r #x10 :g #x3c :b #x24 :a #x80) - (new 'static 'rgba :r #x11 :g #x3d :b #x2b :a #x80) - (new 'static 'rgba :r #x11 :g #x3e :b #x30 :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x38 :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x3c :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x40 :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x42 :a #x80) - (new 'static 'rgba :r #xf :g #x40 :b #x43 :a #x80) - (new 'static 'rgba :r #xe :g #x40 :b #x44 :a #x80) - (new 'static 'rgba :r #xe :g #x3f :b #x44 :a #x80) - (new 'static 'rgba :r #xe :g #x40 :b #x46 :a #x80) - (new 'static 'rgba :r #xf :g #x40 :b #x48 :a #x80) - (new 'static 'rgba :r #x11 :g #x41 :b #x4b :a #x80) - (new 'static 'rgba :r #x13 :g #x42 :b #x4f :a #x80) - (new 'static 'rgba :r #x16 :g #x46 :b #x53 :a #x80) - (new 'static 'rgba :r #x16 :g #x45 :b #x54 :a #x80) - (new 'static 'rgba :r #x15 :g #x43 :b #x53 :a #x80) - (new 'static 'rgba :r #x11 :g #x41 :b #x50 :a #x80) - (new 'static 'rgba :r #xd :g #x3d :b #x4d :a #x80) - (new 'static 'rgba :r #xa :g #x36 :b #x48 :a #x80) - (new 'static 'rgba :r #x5 :g #x30 :b #x3f :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x31 :b #x3c :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x41 :a #x80) - (new 'static 'rgba :r #x8 :g #x35 :b #x45 :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x4a :a #x80) - (new 'static 'rgba :r #x15 :g #x45 :b #x51 :a #x80) - (new 'static 'rgba :r #x1d :g #x4b :b #x56 :a #x80) - (new 'static 'rgba :r #x1f :g #x4c :b #x53 :a #x80) - (new 'static 'rgba :r #x18 :g #x46 :b #x4e :a #x80) - (new 'static 'rgba :r #x13 :g #x43 :b #x48 :a #x80) - (new 'static 'rgba :r #x13 :g #x43 :b #x47 :a #x80) - (new 'static 'rgba :r #x13 :g #x41 :b #x44 :a #x80) - (new 'static 'rgba :r #x17 :g #x44 :b #x45 :a #x80) - (new 'static 'rgba :r #x18 :g #x46 :b #x44 :a #x80) - (new 'static 'rgba :r #x13 :g #x3e :b #x39 :a #x80) - (new 'static 'rgba :r #x10 :g #x3d :b #x33 :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x2d :a #x80) - (new 'static 'rgba :r #xf :g #x3d :b #x2a :a #x80) - (new 'static 'rgba :r #xe :g #x3d :b #x2a :a #x80) - (new 'static 'rgba :r #xc :g #x3a :b #x24 :a #x80) - (new 'static 'rgba :r #x9 :g #x38 :b #x21 :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x19 :a #x80) - (new 'static 'rgba :r #x8 :g #x35 :b #x17 :a #x80) - (new 'static 'rgba :r #x8 :g #x35 :b #x15 :a #x80) - (new 'static 'rgba :r #x9 :g #x36 :b #x16 :a #x80) - (new 'static 'rgba :r #xa :g #x38 :b #x1c :a #x80) - (new 'static 'rgba :r #xc :g #x3a :b #x23 :a #x80) - (new 'static 'rgba :r #xd :g #x3c :b #x2d :a #x80) - (new 'static 'rgba :r #xe :g #x3e :b #x35 :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x3a :a #x80) - (new 'static 'rgba :r #xe :g #x3f :b #x3e :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x40 :a #x80) - (new 'static 'rgba :r #xe :g #x3e :b #x41 :a #x80) - (new 'static 'rgba :r #xe :g #x3e :b #x42 :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x42 :a #x80) - (new 'static 'rgba :r #xe :g #x3f :b #x44 :a #x80) - (new 'static 'rgba :r #xd :g #x3f :b #x46 :a #x80) - (new 'static 'rgba :r #xf :g #x40 :b #x49 :a #x80) - (new 'static 'rgba :r #x10 :g #x41 :b #x4d :a #x80) - (new 'static 'rgba :r #x12 :g #x40 :b #x51 :a #x80) - (new 'static 'rgba :r #x12 :g #x42 :b #x52 :a #x80) - (new 'static 'rgba :r #x12 :g #x40 :b #x52 :a #x80) - (new 'static 'rgba :r #xf :g #x3c :b #x4f :a #x80) - (new 'static 'rgba :r #xb :g #x3b :b #x4a :a #x80) - (new 'static 'rgba :r #x7 :g #x35 :b #x44 :a #x80) - (new 'static 'rgba :r #x4 :g #x2f :b #x3d :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3c :a #x80) - (new 'static 'rgba :r #x4 :g #x30 :b #x3f :a #x80) - (new 'static 'rgba :r #x7 :g #x33 :b #x43 :a #x80) - (new 'static 'rgba :r #xc :g #x39 :b #x49 :a #x80) - (new 'static 'rgba :r #x13 :g #x43 :b #x50 :a #x80) - (new 'static 'rgba :r #x1b :g #x47 :b #x55 :a #x80) - (new 'static 'rgba :r #x1e :g #x4b :b #x55 :a #x80) - (new 'static 'rgba :r #x1d :g #x4c :b #x51 :a #x80) - (new 'static 'rgba :r #x18 :g #x48 :b #x4b :a #x80) - (new 'static 'rgba :r #x19 :g #x4a :b #x4b :a #x80) - (new 'static 'rgba :r #x18 :g #x47 :b #x49 :a #x80) - (new 'static 'rgba :r #x16 :g #x45 :b #x43 :a #x80) - (new 'static 'rgba :r #x12 :g #x3f :b #x3b :a #x80) - (new 'static 'rgba :r #xf :g #x3c :b #x34 :a #x80) - (new 'static 'rgba :r #xe :g #x3b :b #x2e :a #x80) - (new 'static 'rgba :r #xe :g #x3b :b #x29 :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x29 :a #x80) - (new 'static 'rgba :r #xd :g #x3a :b #x22 :a #x80) - (new 'static 'rgba :r #xa :g #x38 :b #x1f :a #x80) - (new 'static 'rgba :r #x8 :g #x35 :b #x18 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x12 :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #xe :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #xd :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x10 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x15 :a #x80) - (new 'static 'rgba :r #x8 :g #x37 :b #x1f :a #x80) - (new 'static 'rgba :r #xa :g #x3a :b #x26 :a #x80) - (new 'static 'rgba :r #xc :g #x3b :b #x2e :a #x80) - (new 'static 'rgba :r #xd :g #x3d :b #x33 :a #x80) - (new 'static 'rgba :r #xe :g #x3e :b #x39 :a #x80) - (new 'static 'rgba :r #xe :g #x3e :b #x3a :a #x80) - (new 'static 'rgba :r #xe :g #x3e :b #x3e :a #x80) - (new 'static 'rgba :r #xe :g #x3e :b #x3f :a #x80) - (new 'static 'rgba :r #xe :g #x3e :b #x3e :a #x80) - (new 'static 'rgba :r #xe :g #x3e :b #x3f :a #x80) - (new 'static 'rgba :r #xe :g #x3e :b #x44 :a #x80) - (new 'static 'rgba :r #xe :g #x3f :b #x47 :a #x80) - (new 'static 'rgba :r #xf :g #x3f :b #x4b :a #x80) - (new 'static 'rgba :r #x11 :g #x42 :b #x4f :a #x80) - (new 'static 'rgba :r #x11 :g #x3d :b #x51 :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x50 :a #x80) - (new 'static 'rgba :r #xd :g #x3b :b #x4c :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x46 :a #x80) - (new 'static 'rgba :r #x5 :g #x31 :b #x40 :a #x80) - (new 'static 'rgba :r #x3 :g #x2e :b #x3b :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x3f :a #x80) - (new 'static 'rgba :r #x5 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x9 :g #x38 :b #x46 :a #x80) - (new 'static 'rgba :r #x10 :g #x3d :b #x4c :a #x80) - (new 'static 'rgba :r #x14 :g #x44 :b #x50 :a #x80) - (new 'static 'rgba :r #x19 :g #x48 :b #x52 :a #x80) - (new 'static 'rgba :r #x19 :g #x48 :b #x50 :a #x80) - (new 'static 'rgba :r #x19 :g #x4b :b #x4c :a #x80) - (new 'static 'rgba :r #x16 :g #x45 :b #x46 :a #x80) - (new 'static 'rgba :r #x12 :g #x40 :b #x3e :a #x80) - (new 'static 'rgba :r #x10 :g #x3e :b #x3c :a #x80) - (new 'static 'rgba :r #xf :g #x3c :b #x37 :a #x80) - (new 'static 'rgba :r #xd :g #x3b :b #x30 :a #x80) - (new 'static 'rgba :r #xc :g #x3b :b #x2d :a #x80) - (new 'static 'rgba :r #xc :g #x3b :b #x25 :a #x80) - (new 'static 'rgba :r #xc :g #x3a :b #x23 :a #x80) - (new 'static 'rgba :r #xa :g #x38 :b #x1e :a #x80) - (new 'static 'rgba :r #x9 :g #x36 :b #x19 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x14 :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x12 :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #xa :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #xa :a #x80) - (new 'static 'rgba :r #x3 :g #x32 :b #xb :a #x80) - (new 'static 'rgba :r #x4 :g #x33 :b #xe :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x17 :a #x80) - (new 'static 'rgba :r #x8 :g #x37 :b #x1f :a #x80) - (new 'static 'rgba :r #x9 :g #x39 :b #x24 :a #x80) - (new 'static 'rgba :r #xb :g #x3b :b #x2e :a #x80) - (new 'static 'rgba :r #xc :g #x3c :b #x32 :a #x80) - (new 'static 'rgba :r #xd :g #x3d :b #x37 :a #x80) - (new 'static 'rgba :r #xd :g #x3d :b #x3b :a #x80) - (new 'static 'rgba :r #xd :g #x3d :b #x3c :a #x80) - (new 'static 'rgba :r #xd :g #x3d :b #x3d :a #x80) - (new 'static 'rgba :r #xd :g #x3c :b #x3f :a #x80) - (new 'static 'rgba :r #xd :g #x3e :b #x41 :a #x80) - (new 'static 'rgba :r #xe :g #x42 :b #x47 :a #x80) - (new 'static 'rgba :r #xf :g #x41 :b #x4a :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x4e :a #x80) - (new 'static 'rgba :r #xf :g #x3b :b #x50 :a #x80) - (new 'static 'rgba :r #xe :g #x3b :b #x4e :a #x80) - (new 'static 'rgba :r #xa :g #x36 :b #x49 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x4 :g #x2e :b #x3d :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x3a :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2f :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) - (new 'static 'rgba :r #x5 :g #x30 :b #x40 :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #xb :g #x3a :b #x48 :a #x80) - (new 'static 'rgba :r #xf :g #x40 :b #x4c :a #x80) - (new 'static 'rgba :r #x12 :g #x41 :b #x4c :a #x80) - (new 'static 'rgba :r #x13 :g #x44 :b #x4a :a #x80) - (new 'static 'rgba :r #x12 :g #x42 :b #x45 :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x40 :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x3a :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x3a :a #x80) - (new 'static 'rgba :r #xd :g #x3c :b #x36 :a #x80) - (new 'static 'rgba :r #xc :g #x3b :b #x30 :a #x80) - (new 'static 'rgba :r #xb :g #x3a :b #x2c :a #x80) - (new 'static 'rgba :r #xa :g #x3a :b #x26 :a #x80) - (new 'static 'rgba :r #x9 :g #x38 :b #x20 :a #x80) - (new 'static 'rgba :r #x8 :g #x37 :b #x1d :a #x80) - (new 'static 'rgba :r #x6 :g #x35 :b #x15 :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x11 :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #xf :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #xc :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #xa :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #xc :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #xb :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x10 :a #x80) - (new 'static 'rgba :r #x5 :g #x35 :b #x19 :a #x80) - (new 'static 'rgba :r #x7 :g #x36 :b #x1f :a #x80) - (new 'static 'rgba :r #x9 :g #x39 :b #x26 :a #x80) - (new 'static 'rgba :r #xa :g #x3a :b #x2b :a #x80) - (new 'static 'rgba :r #xc :g #x3b :b #x2f :a #x80) - (new 'static 'rgba :r #xc :g #x3c :b #x36 :a #x80) - (new 'static 'rgba :r #xc :g #x3c :b #x37 :a #x80) - (new 'static 'rgba :r #xc :g #x3c :b #x3b :a #x80) - (new 'static 'rgba :r #xd :g #x3c :b #x3b :a #x80) - (new 'static 'rgba :r #xe :g #x3c :b #x40 :a #x80) - (new 'static 'rgba :r #xe :g #x40 :b #x46 :a #x80) - (new 'static 'rgba :r #xf :g #x41 :b #x4a :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x4e :a #x80) - (new 'static 'rgba :r #xf :g #x3c :b #x4e :a #x80) - (new 'static 'rgba :r #xb :g #x3b :b #x4b :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3f :a #x80) - (new 'static 'rgba :r #x3 :g #x2e :b #x3b :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3f :a #x80) - (new 'static 'rgba :r #x6 :g #x36 :b #x42 :a #x80) - (new 'static 'rgba :r #x9 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #xc :g #x3a :b #x48 :a #x80) - (new 'static 'rgba :r #xd :g #x3d :b #x47 :a #x80) - (new 'static 'rgba :r #xe :g #x3f :b #x45 :a #x80) - (new 'static 'rgba :r #xd :g #x3f :b #x41 :a #x80) - (new 'static 'rgba :r #xd :g #x3c :b #x3d :a #x80) - (new 'static 'rgba :r #xd :g #x3c :b #x37 :a #x80) - (new 'static 'rgba :r #xd :g #x3c :b #x37 :a #x80) - (new 'static 'rgba :r #xc :g #x3c :b #x33 :a #x80) - (new 'static 'rgba :r #xb :g #x3c :b #x31 :a #x80) - (new 'static 'rgba :r #xa :g #x3a :b #x29 :a #x80) - (new 'static 'rgba :r #x9 :g #x39 :b #x26 :a #x80) - (new 'static 'rgba :r #x8 :g #x38 :b #x20 :a #x80) - (new 'static 'rgba :r #x7 :g #x37 :b #x1b :a #x80) - (new 'static 'rgba :r #x6 :g #x35 :b #x16 :a #x80) - (new 'static 'rgba :r #x4 :g #x34 :b #x11 :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #xf :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #xb :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #x8 :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #x9 :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #xa :a #x80) - (new 'static 'rgba :r #x3 :g #x32 :b #xc :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x10 :a #x80) - (new 'static 'rgba :r #x5 :g #x34 :b #x16 :a #x80) - (new 'static 'rgba :r #x7 :g #x36 :b #x1c :a #x80) - (new 'static 'rgba :r #x8 :g #x38 :b #x23 :a #x80) - (new 'static 'rgba :r #xa :g #x39 :b #x2a :a #x80) - (new 'static 'rgba :r #xa :g #x3a :b #x2e :a #x80) - (new 'static 'rgba :r #xb :g #x3a :b #x33 :a #x80) - (new 'static 'rgba :r #xb :g #x3a :b #x36 :a #x80) - (new 'static 'rgba :r #xc :g #x3b :b #x3b :a #x80) - (new 'static 'rgba :r #xd :g #x3f :b #x40 :a #x80) - (new 'static 'rgba :r #xe :g #x3f :b #x47 :a #x80) - (new 'static 'rgba :r #xf :g #x41 :b #x4b :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x4d :a #x80) - (new 'static 'rgba :r #xd :g #x39 :b #x4c :a #x80) - (new 'static 'rgba :r #xa :g #x36 :b #x48 :a #x80) - (new 'static 'rgba :r #x6 :g #x35 :b #x41 :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3c :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x3 :g #x2e :b #x3c :a #x80) - (new 'static 'rgba :r #x3 :g #x32 :b #x3d :a #x80) - (new 'static 'rgba :r #x5 :g #x35 :b #x40 :a #x80) - (new 'static 'rgba :r #x6 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x8 :g #x39 :b #x44 :a #x80) - (new 'static 'rgba :r #x9 :g #x38 :b #x43 :a #x80) - (new 'static 'rgba :r #x9 :g #x3c :b #x42 :a #x80) - (new 'static 'rgba :r #xa :g #x3c :b #x3d :a #x80) - (new 'static 'rgba :r #xb :g #x3a :b #x3a :a #x80) - (new 'static 'rgba :r #xc :g #x39 :b #x37 :a #x80) - (new 'static 'rgba :r #xc :g #x3a :b #x36 :a #x80) - (new 'static 'rgba :r #xc :g #x3a :b #x33 :a #x80) - (new 'static 'rgba :r #xb :g #x3b :b #x2f :a #x80) - (new 'static 'rgba :r #xa :g #x3a :b #x2b :a #x80) - (new 'static 'rgba :r #x9 :g #x38 :b #x27 :a #x80) - (new 'static 'rgba :r #x8 :g #x37 :b #x24 :a #x80) - (new 'static 'rgba :r #x7 :g #x36 :b #x20 :a #x80) - (new 'static 'rgba :r #x6 :g #x35 :b #x18 :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x16 :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x11 :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #xd :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #xa :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #x9 :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #xc :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #xd :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #xe :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x12 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x15 :a #x80) - (new 'static 'rgba :r #x7 :g #x35 :b #x1b :a #x80) - (new 'static 'rgba :r #x8 :g #x36 :b #x23 :a #x80) - (new 'static 'rgba :r #xa :g #x37 :b #x28 :a #x80) - (new 'static 'rgba :r #xa :g #x37 :b #x2f :a #x80) - (new 'static 'rgba :r #xb :g #x39 :b #x37 :a #x80) - (new 'static 'rgba :r #xc :g #x3c :b #x3a :a #x80) - (new 'static 'rgba :r #xd :g #x40 :b #x43 :a #x80) - (new 'static 'rgba :r #xe :g #x3f :b #x48 :a #x80) - (new 'static 'rgba :r #xf :g #x3e :b #x4b :a #x80) - (new 'static 'rgba :r #xe :g #x3b :b #x4c :a #x80) - (new 'static 'rgba :r #xb :g #x37 :b #x49 :a #x80) - (new 'static 'rgba :r #x7 :g #x37 :b #x44 :a #x80) - (new 'static 'rgba :r #x4 :g #x34 :b #x3f :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3b :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x3 :g #x2d :b #x3a :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) - (new 'static 'rgba :r #x4 :g #x31 :b #x3f :a #x80) - (new 'static 'rgba :r #x5 :g #x35 :b #x41 :a #x80) - (new 'static 'rgba :r #x6 :g #x36 :b #x41 :a #x80) - (new 'static 'rgba :r #x7 :g #x38 :b #x40 :a #x80) - (new 'static 'rgba :r #x8 :g #x38 :b #x3f :a #x80) - (new 'static 'rgba :r #x9 :g #x3a :b #x3d :a #x80) - (new 'static 'rgba :r #xa :g #x3a :b #x39 :a #x80) - (new 'static 'rgba :r #xa :g #x39 :b #x38 :a #x80) - (new 'static 'rgba :r #xb :g #x38 :b #x35 :a #x80) - (new 'static 'rgba :r #xa :g #x37 :b #x31 :a #x80) - (new 'static 'rgba :r #xa :g #x38 :b #x30 :a #x80) - (new 'static 'rgba :r #xa :g #x37 :b #x2d :a #x80) - (new 'static 'rgba :r #x9 :g #x37 :b #x2c :a #x80) - (new 'static 'rgba :r #x9 :g #x35 :b #x28 :a #x80) - (new 'static 'rgba :r #x8 :g #x34 :b #x24 :a #x80) - (new 'static 'rgba :r #x7 :g #x32 :b #x22 :a #x80) - (new 'static 'rgba :r #x6 :g #x31 :b #x1a :a #x80) - (new 'static 'rgba :r #x5 :g #x30 :b #x16 :a #x80) - (new 'static 'rgba :r #x4 :g #x2f :b #x15 :a #x80) - (new 'static 'rgba :r #x4 :g #x2f :b #x11 :a #x80) - (new 'static 'rgba :r #x4 :g #x2f :b #x10 :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x12 :a #x80) - (new 'static 'rgba :r #x4 :g #x2f :b #x11 :a #x80) - (new 'static 'rgba :r #x4 :g #x2f :b #x11 :a #x80) - (new 'static 'rgba :r #x5 :g #x30 :b #x15 :a #x80) - (new 'static 'rgba :r #x5 :g #x30 :b #x18 :a #x80) - (new 'static 'rgba :r #x6 :g #x30 :b #x1b :a #x80) - (new 'static 'rgba :r #x8 :g #x31 :b #x20 :a #x80) - (new 'static 'rgba :r #x9 :g #x33 :b #x26 :a #x80) - (new 'static 'rgba :r #x9 :g #x36 :b #x2e :a #x80) - (new 'static 'rgba :r #xa :g #x39 :b #x37 :a #x80) - (new 'static 'rgba :r #xc :g #x3d :b #x3d :a #x80) - (new 'static 'rgba :r #xc :g #x40 :b #x45 :a #x80) - (new 'static 'rgba :r #xd :g #x3c :b #x48 :a #x80) - (new 'static 'rgba :r #xd :g #x3a :b #x4a :a #x80) - (new 'static 'rgba :r #xb :g #x39 :b #x48 :a #x80) - (new 'static 'rgba :r #x8 :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x5 :g #x31 :b #x41 :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3d :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3c :a #x80) - (new 'static 'rgba :r #x4 :g #x30 :b #x3e :a #x80) - (new 'static 'rgba :r #x5 :g #x30 :b #x3e :a #x80) - (new 'static 'rgba :r #x5 :g #x36 :b #x3e :a #x80) - (new 'static 'rgba :r #x6 :g #x37 :b #x3d :a #x80) - (new 'static 'rgba :r #x7 :g #x38 :b #x3d :a #x80) - (new 'static 'rgba :r #x8 :g #x38 :b #x3d :a #x80) - (new 'static 'rgba :r #x9 :g #x3a :b #x38 :a #x80) - (new 'static 'rgba :r #xa :g #x39 :b #x39 :a #x80) - (new 'static 'rgba :r #xa :g #x38 :b #x34 :a #x80) - (new 'static 'rgba :r #xa :g #x37 :b #x34 :a #x80) - (new 'static 'rgba :r #x9 :g #x37 :b #x30 :a #x80) - (new 'static 'rgba :r #x9 :g #x36 :b #x32 :a #x80) - (new 'static 'rgba :r #x9 :g #x36 :b #x2f :a #x80) - (new 'static 'rgba :r #x8 :g #x35 :b #x2e :a #x80) - (new 'static 'rgba :r #x8 :g #x34 :b #x29 :a #x80) - (new 'static 'rgba :r #x7 :g #x32 :b #x27 :a #x80) - (new 'static 'rgba :r #x6 :g #x31 :b #x23 :a #x80) - (new 'static 'rgba :r #x6 :g #x30 :b #x23 :a #x80) - (new 'static 'rgba :r #x6 :g #x30 :b #x21 :a #x80) - (new 'static 'rgba :r #x7 :g #x2f :b #x20 :a #x80) - (new 'static 'rgba :r #x6 :g #x2f :b #x1e :a #x80) - (new 'static 'rgba :r #x5 :g #x2e :b #x1b :a #x80) - (new 'static 'rgba :r #x5 :g #x2e :b #x1c :a #x80) - (new 'static 'rgba :r #x6 :g #x2e :b #x1d :a #x80) - (new 'static 'rgba :r #x6 :g #x2f :b #x1f :a #x80) - (new 'static 'rgba :r #x6 :g #x31 :b #x23 :a #x80) - (new 'static 'rgba :r #x7 :g #x33 :b #x29 :a #x80) - (new 'static 'rgba :r #x7 :g #x34 :b #x2c :a #x80) - (new 'static 'rgba :r #x8 :g #x37 :b #x31 :a #x80) - (new 'static 'rgba :r #x8 :g #x3a :b #x39 :a #x80) - (new 'static 'rgba :r #xa :g #x3a :b #x41 :a #x80) - (new 'static 'rgba :r #xa :g #x3c :b #x44 :a #x80) - (new 'static 'rgba :r #xb :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #xa :g #x37 :b #x46 :a #x80) - (new 'static 'rgba :r #x8 :g #x34 :b #x44 :a #x80) - (new 'static 'rgba :r #x5 :g #x31 :b #x41 :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x3d :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x3a :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x3 :g #x2e :b #x3c :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x3c :a #x80) - (new 'static 'rgba :r #x5 :g #x35 :b #x3d :a #x80) - (new 'static 'rgba :r #x6 :g #x36 :b #x3d :a #x80) - (new 'static 'rgba :r #x7 :g #x36 :b #x3e :a #x80) - (new 'static 'rgba :r #x7 :g #x39 :b #x3e :a #x80) - (new 'static 'rgba :r #x8 :g #x3c :b #x3e :a #x80) - (new 'static 'rgba :r #x8 :g #x39 :b #x3c :a #x80) - (new 'static 'rgba :r #x8 :g #x39 :b #x3a :a #x80) - (new 'static 'rgba :r #x8 :g #x38 :b #x39 :a #x80) - (new 'static 'rgba :r #x8 :g #x38 :b #x39 :a #x80) - (new 'static 'rgba :r #x7 :g #x37 :b #x38 :a #x80) - (new 'static 'rgba :r #x7 :g #x37 :b #x37 :a #x80) - (new 'static 'rgba :r #x7 :g #x37 :b #x34 :a #x80) - (new 'static 'rgba :r #x7 :g #x36 :b #x35 :a #x80) - (new 'static 'rgba :r #x7 :g #x37 :b #x34 :a #x80) - (new 'static 'rgba :r #x7 :g #x37 :b #x33 :a #x80) - (new 'static 'rgba :r #x7 :g #x38 :b #x33 :a #x80) - (new 'static 'rgba :r #x7 :g #x37 :b #x33 :a #x80) - (new 'static 'rgba :r #x7 :g #x36 :b #x2f :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x2d :a #x80) - (new 'static 'rgba :r #x6 :g #x33 :b #x2a :a #x80) - (new 'static 'rgba :r #x6 :g #x32 :b #x28 :a #x80) - (new 'static 'rgba :r #x6 :g #x32 :b #x29 :a #x80) - (new 'static 'rgba :r #x6 :g #x33 :b #x2a :a #x80) - (new 'static 'rgba :r #x6 :g #x35 :b #x30 :a #x80) - (new 'static 'rgba :r #x6 :g #x36 :b #x34 :a #x80) - (new 'static 'rgba :r #x6 :g #x36 :b #x38 :a #x80) - (new 'static 'rgba :r #x5 :g #x36 :b #x3c :a #x80) - (new 'static 'rgba :r #x6 :g #x36 :b #x3f :a #x80) - (new 'static 'rgba :r #x7 :g #x35 :b #x41 :a #x80) - (new 'static 'rgba :r #x7 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x3f :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3d :a #x80) - (new 'static 'rgba :r #x2 :g #x30 :b #x3b :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2b :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3b :a #x80) - (new 'static 'rgba :r #x4 :g #x33 :b #x3c :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x3d :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x3e :a #x80) - (new 'static 'rgba :r #x6 :g #x35 :b #x3e :a #x80) - (new 'static 'rgba :r #x6 :g #x36 :b #x3d :a #x80) - (new 'static 'rgba :r #x6 :g #x36 :b #x3d :a #x80) - (new 'static 'rgba :r #x6 :g #x36 :b #x3d :a #x80) - (new 'static 'rgba :r #x5 :g #x33 :b #x3c :a #x80) - (new 'static 'rgba :r #x6 :g #x36 :b #x3b :a #x80) - (new 'static 'rgba :r #x5 :g #x35 :b #x3b :a #x80) - (new 'static 'rgba :r #x5 :g #x36 :b #x3b :a #x80) - (new 'static 'rgba :r #x4 :g #x36 :b #x3b :a #x80) - (new 'static 'rgba :r #x5 :g #x35 :b #x3b :a #x80) - (new 'static 'rgba :r #x6 :g #x35 :b #x3d :a #x80) - (new 'static 'rgba :r #x7 :g #x35 :b #x3e :a #x80) - (new 'static 'rgba :r #x6 :g #x36 :b #x3e :a #x80) - (new 'static 'rgba :r #x6 :g #x36 :b #x3d :a #x80) - (new 'static 'rgba :r #x5 :g #x36 :b #x3b :a #x80) - (new 'static 'rgba :r #x4 :g #x36 :b #x38 :a #x80) - (new 'static 'rgba :r #x4 :g #x35 :b #x36 :a #x80) - (new 'static 'rgba :r #x4 :g #x35 :b #x35 :a #x80) - (new 'static 'rgba :r #x4 :g #x35 :b #x36 :a #x80) - (new 'static 'rgba :r #x4 :g #x35 :b #x37 :a #x80) - (new 'static 'rgba :r #x4 :g #x33 :b #x39 :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x3a :a #x80) - (new 'static 'rgba :r #x4 :g #x33 :b #x3b :a #x80) - (new 'static 'rgba :r #x4 :g #x30 :b #x3c :a #x80) - (new 'static 'rgba :r #x3 :g #x32 :b #x3c :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) - (new 'static 'rgba :r #x3 :g #x2e :b #x3c :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x3 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3a :a #x80) - (new 'static 'rgba :r #x3 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #x3b :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #x3b :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3a :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3a :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3a :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3a :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3a :a #x80) - (new 'static 'rgba :r #x3 :g #x31 :b #x3a :a #x80) - (new 'static 'rgba :r #x3 :g #x2e :b #x3b :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x3b :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3a :a #x80) - (new 'static 'rgba :r #x3 :g #x2f :b #x3a :a #x80) - (new 'static 'rgba :r #x3 :g #x2e :b #x3a :a #x80) - (new 'static 'rgba :r #x3 :g #x30 :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2b :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2f :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2b :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) - (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) - (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - ) - ) - ) -(define *ocean-near-indices-village1* (new 'static 'ocean-near-indices :data #xa8d0)) -(define *ocean-trans-indices-village1* (new 'static 'ocean-trans-indices - :data (new 'static 'array uint32 2304 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #xffffffff - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x1011b - #xffffffff - #x2011c - #x3011d - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x40000 - #x5011e - #x6011f - #x70000 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x80000 - #x90000 - #xa0120 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xb0121 - #xc0021 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xd0000 - #xe0122 - #xffffffff - #xffffffff - #xffffffff - #xf0123 - #x100124 - #x110125 - #x120000 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x130126 - #xffffffff - #xffffffff - #x14011d - #x150127 - #x160047 - #x170128 - #x180000 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x190129 - #x1a012a - #x1b012b - #x1c0000 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x1d00c5 - #x1e0006 - #x1f0000 - #x200017 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x210000 - #x220000 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x230000 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x240000 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x250000 - #x260000 - #x270000 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x280000 - #x29012c - #x2a012d - #x2b0000 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x2c012e - #x2d002d - #x2e0006 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x2f008b - #x30012f - #x310130 - #x320131 - #x330000 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x340132 - #x350133 - #x36012a - #x370012 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x380003 - #x39007c - #x0 - #x3a0134 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x3b0000 - #x3c0069 - #x3d0000 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x3e0014 - #x3f0135 - #x400136 - #x410137 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x420000 - #x430000 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - ) - ) - ) -(define *ocean-mid-indices-village1* (new 'static 'ocean-mid-indices - :data (new 'static 'array uint16 36 - #x138 - #xffff - #x139 - #x13a - #x0 - #x0 - #x13b - #x13c - #x13d - #x13e - #x0 - #x0 - #x0 - #x0 - #x13f - #x140 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - ) - ) - ) -(define *ocean-mid-masks-village1* (new 'static 'ocean-mid-masks :data #x7a50)) - -(define *ocean-spheres-village2* (new 'static 'ocean-spheres - :spheres (new 'static 'inline-array sphere 36 - (new 'static 'sphere :x -6320128.0 :z -14385152.0 :w 2224365.5) - (new 'static 'sphere :x -3174400.0 :z -14385152.0 :w 2224365.5) - (new 'static 'sphere :x -28672.0 :z -14385152.0 :w 2224365.5) - (new 'static 'sphere :x 3117056.0 :z -14385152.0 :w 2224365.5) - (new 'static 'sphere :x 6262784.0 :z -14385152.0 :w 2224365.5) - (new 'static 'sphere :x 9408512.0 :z -14385152.0 :w 2224365.5) - (new 'static 'sphere :x -6320128.0 :z -11239424.0 :w 2224365.5) - (new 'static 'sphere :x -3174400.0 :z -11239424.0 :w 2224365.5) - (new 'static 'sphere :x -28672.0 :z -11239424.0 :w 2224365.5) - (new 'static 'sphere :x 3117056.0 :z -11239424.0 :w 2224365.5) - (new 'static 'sphere :x 6262784.0 :z -11239424.0 :w 2224365.5) - (new 'static 'sphere :x 9408512.0 :z -11239424.0 :w 2224365.5) - (new 'static 'sphere :x -6320128.0 :z -8093696.0 :w 2224365.5) - (new 'static 'sphere :x -3174400.0 :z -8093696.0 :w 2224365.5) - (new 'static 'sphere :x -28672.0 :z -8093696.0 :w 2224365.5) - (new 'static 'sphere :x 3117056.0 :z -8093696.0 :w 2224365.5) - (new 'static 'sphere :x 6262784.0 :z -8093696.0 :w 2224365.5) - (new 'static 'sphere :x 9408512.0 :z -8093696.0 :w 2224365.5) - (new 'static 'sphere :x -6320128.0 :z -4947968.0 :w 2224365.5) - (new 'static 'sphere :x -3174400.0 :z -4947968.0 :w 2224365.5) - (new 'static 'sphere :x -28672.0 :z -4947968.0 :w 2224365.5) - (new 'static 'sphere :x 3117056.0 :z -4947968.0 :w 2224365.5) - (new 'static 'sphere :x 6262784.0 :z -4947968.0 :w 2224365.5) - (new 'static 'sphere :x 9408512.0 :z -4947968.0 :w 2224365.5) - (new 'static 'sphere :x -6320128.0 :z -1802240.0 :w 2224365.5) - (new 'static 'sphere :x -3174400.0 :z -1802240.0 :w 2224365.5) - (new 'static 'sphere :x -28672.0 :z -1802240.0 :w 2224365.5) - (new 'static 'sphere :x 3117056.0 :z -1802240.0 :w 2224365.5) - (new 'static 'sphere :x 6262784.0 :z -1802240.0 :w 2224365.5) - (new 'static 'sphere :x 9408512.0 :z -1802240.0 :w 2224365.5) - (new 'static 'sphere :x -6320128.0 :z 1343488.0 :w 2224365.5) - (new 'static 'sphere :x -3174400.0 :z 1343488.0 :w 2224365.5) - (new 'static 'sphere :x -28672.0 :z 1343488.0 :w 2224365.5) - (new 'static 'sphere :x 3117056.0 :z 1343488.0 :w 2224365.5) - (new 'static 'sphere :x 6262784.0 :z 1343488.0 :w 2224365.5) - (new 'static 'sphere :x 9408512.0 :z 1343488.0 :w 2224365.5) - ) - ) - ) -(define *ocean-colors-village2* (new 'static 'ocean-colors - :colors (new 'static 'array rgba 2548 - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x38 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x37 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x33 :b #x41 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x39 :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x3c :b #x47 :a #x80) - (new 'static 'rgba :r #x21 :g #x3c :b #x47 :a #x80) - (new 'static 'rgba :r #x21 :g #x3d :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x3c :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x3c :b #x46 :a #x80) - (new 'static 'rgba :r #x1f :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x37 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x33 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x25 :g #x4d :b #x50 :a #x80) - (new 'static 'rgba :r #x23 :g #x47 :b #x4d :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x39 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x33 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x37 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x3c :b #x47 :a #x80) - (new 'static 'rgba :r #x21 :g #x3d :b #x48 :a #x80) - (new 'static 'rgba :r #x22 :g #x3e :b #x48 :a #x80) - (new 'static 'rgba :r #x23 :g #x3f :b #x49 :a #x80) - (new 'static 'rgba :r #x22 :g #x3f :b #x49 :a #x80) - (new 'static 'rgba :r #x22 :g #x3e :b #x49 :a #x80) - (new 'static 'rgba :r #x20 :g #x3d :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x3c :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x1f :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x38 :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x36 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x46 :a #x80) - (new 'static 'rgba :r #x1f :g #x39 :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x38 :b #x46 :a #x80) - (new 'static 'rgba :r #x1f :g #x39 :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x39 :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x21 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x33 :b #x41 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x3d :b #x48 :a #x80) - (new 'static 'rgba :r #x23 :g #x3f :b #x4a :a #x80) - (new 'static 'rgba :r #x23 :g #x40 :b #x4a :a #x80) - (new 'static 'rgba :r #x23 :g #x41 :b #x4b :a #x80) - (new 'static 'rgba :r #x22 :g #x41 :b #x4b :a #x80) - (new 'static 'rgba :r #x21 :g #x41 :b #x4a :a #x80) - (new 'static 'rgba :r #x20 :g #x40 :b #x49 :a #x80) - (new 'static 'rgba :r #x20 :g #x3f :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x3d :b #x48 :a #x80) - (new 'static 'rgba :r #x1f :g #x3d :b #x47 :a #x80) - (new 'static 'rgba :r #x1f :g #x3d :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x40 :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x42 :b #x49 :a #x80) - (new 'static 'rgba :r #x20 :g #x42 :b #x4a :a #x80) - (new 'static 'rgba :r #x20 :g #x45 :b #x4b :a #x80) - (new 'static 'rgba :r #x1f :g #x45 :b #x4a :a #x80) - (new 'static 'rgba :r #x1f :g #x45 :b #x4a :a #x80) - (new 'static 'rgba :r #x20 :g #x44 :b #x4c :a #x80) - (new 'static 'rgba :r #x20 :g #x44 :b #x4b :a #x80) - (new 'static 'rgba :r #x20 :g #x47 :b #x4b :a #x80) - (new 'static 'rgba :r #x20 :g #x47 :b #x4c :a #x80) - (new 'static 'rgba :r #x21 :g #x49 :b #x4d :a #x80) - (new 'static 'rgba :r #x20 :g #x48 :b #x4c :a #x80) - (new 'static 'rgba :r #x20 :g #x47 :b #x4b :a #x80) - (new 'static 'rgba :r #x1f :g #x43 :b #x4b :a #x80) - (new 'static 'rgba :r #x1f :g #x45 :b #x4a :a #x80) - (new 'static 'rgba :r #x20 :g #x42 :b #x49 :a #x80) - (new 'static 'rgba :r #x21 :g #x42 :b #x4b :a #x80) - (new 'static 'rgba :r #x21 :g #x41 :b #x4a :a #x80) - (new 'static 'rgba :r #x20 :g #x40 :b #x48 :a #x80) - (new 'static 'rgba :r #x21 :g #x3f :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x38 :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x39 :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x38 :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x22 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x21 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x21 :g #x35 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x38 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x3a :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x3c :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x3e :b #x48 :a #x80) - (new 'static 'rgba :r #x22 :g #x41 :b #x4a :a #x80) - (new 'static 'rgba :r #x22 :g #x42 :b #x4b :a #x80) - (new 'static 'rgba :r #x21 :g #x43 :b #x4c :a #x80) - (new 'static 'rgba :r #x20 :g #x43 :b #x4b :a #x80) - (new 'static 'rgba :r #x1e :g #x44 :b #x4a :a #x80) - (new 'static 'rgba :r #x1e :g #x42 :b #x4a :a #x80) - (new 'static 'rgba :r #x1d :g #x42 :b #x49 :a #x80) - (new 'static 'rgba :r #x1d :g #x44 :b #x4a :a #x80) - (new 'static 'rgba :r #x1d :g #x44 :b #x4a :a #x80) - (new 'static 'rgba :r #x1d :g #x44 :b #x4b :a #x80) - (new 'static 'rgba :r #x1d :g #x49 :b #x4b :a #x80) - (new 'static 'rgba :r #x1c :g #x49 :b #x4d :a #x80) - (new 'static 'rgba :r #x1d :g #x4e :b #x4f :a #x80) - (new 'static 'rgba :r #x1d :g #x50 :b #x4f :a #x80) - (new 'static 'rgba :r #x1e :g #x51 :b #x50 :a #x80) - (new 'static 'rgba :r #x1e :g #x51 :b #x4f :a #x80) - (new 'static 'rgba :r #x1e :g #x51 :b #x51 :a #x80) - (new 'static 'rgba :r #x1e :g #x51 :b #x4e :a #x80) - (new 'static 'rgba :r #x20 :g #x51 :b #x52 :a #x80) - (new 'static 'rgba :r #x20 :g #x53 :b #x51 :a #x80) - (new 'static 'rgba :r #x22 :g #x53 :b #x51 :a #x80) - (new 'static 'rgba :r #x21 :g #x53 :b #x52 :a #x80) - (new 'static 'rgba :r #x20 :g #x50 :b #x52 :a #x80) - (new 'static 'rgba :r #x1f :g #x51 :b #x50 :a #x80) - (new 'static 'rgba :r #x1f :g #x4f :b #x51 :a #x80) - (new 'static 'rgba :r #x1e :g #x51 :b #x50 :a #x80) - (new 'static 'rgba :r #x1f :g #x50 :b #x52 :a #x80) - (new 'static 'rgba :r #x1f :g #x4e :b #x50 :a #x80) - (new 'static 'rgba :r #x1e :g #x4d :b #x4e :a #x80) - (new 'static 'rgba :r #x20 :g #x4d :b #x4e :a #x80) - (new 'static 'rgba :r #x21 :g #x44 :b #x4c :a #x80) - (new 'static 'rgba :r #x22 :g #x40 :b #x4a :a #x80) - (new 'static 'rgba :r #x22 :g #x3f :b #x49 :a #x80) - (new 'static 'rgba :r #x22 :g #x3a :b #x49 :a #x80) - (new 'static 'rgba :r #x23 :g #x39 :b #x48 :a #x80) - (new 'static 'rgba :r #x23 :g #x39 :b #x47 :a #x80) - (new 'static 'rgba :r #x22 :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x21 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x21 :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x31 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1e :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x1e :g #x39 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x40 :b #x49 :a #x80) - (new 'static 'rgba :r #x21 :g #x41 :b #x4a :a #x80) - (new 'static 'rgba :r #x1f :g #x42 :b #x4a :a #x80) - (new 'static 'rgba :r #x1d :g #x45 :b #x4a :a #x80) - (new 'static 'rgba :r #x1b :g #x44 :b #x4a :a #x80) - (new 'static 'rgba :r #x1a :g #x44 :b #x49 :a #x80) - (new 'static 'rgba :r #x19 :g #x43 :b #x49 :a #x80) - (new 'static 'rgba :r #x19 :g #x44 :b #x48 :a #x80) - (new 'static 'rgba :r #x19 :g #x47 :b #x48 :a #x80) - (new 'static 'rgba :r #x19 :g #x47 :b #x4a :a #x80) - (new 'static 'rgba :r #x19 :g #x4b :b #x4a :a #x80) - (new 'static 'rgba :r #x19 :g #x4c :b #x4c :a #x80) - (new 'static 'rgba :r #x1b :g #x4f :b #x4c :a #x80) - (new 'static 'rgba :r #x1d :g #x51 :b #x4e :a #x80) - (new 'static 'rgba :r #x1e :g #x50 :b #x4b :a #x80) - (new 'static 'rgba :r #x1d :g #x50 :b #x4c :a #x80) - (new 'static 'rgba :r #x1f :g #x51 :b #x4f :a #x80) - (new 'static 'rgba :r #x20 :g #x53 :b #x4f :a #x80) - (new 'static 'rgba :r #x21 :g #x53 :b #x51 :a #x80) - (new 'static 'rgba :r #x23 :g #x54 :b #x50 :a #x80) - (new 'static 'rgba :r #x25 :g #x54 :b #x52 :a #x80) - (new 'static 'rgba :r #x26 :g #x54 :b #x54 :a #x80) - (new 'static 'rgba :r #x26 :g #x54 :b #x54 :a #x80) - (new 'static 'rgba :r #x26 :g #x55 :b #x53 :a #x80) - (new 'static 'rgba :r #x24 :g #x53 :b #x4f :a #x80) - (new 'static 'rgba :r #x23 :g #x52 :b #x51 :a #x80) - (new 'static 'rgba :r #x23 :g #x52 :b #x52 :a #x80) - (new 'static 'rgba :r #x23 :g #x53 :b #x51 :a #x80) - (new 'static 'rgba :r #x20 :g #x52 :b #x4e :a #x80) - (new 'static 'rgba :r #x1e :g #x51 :b #x4d :a #x80) - (new 'static 'rgba :r #x1d :g #x50 :b #x50 :a #x80) - (new 'static 'rgba :r #x1c :g #x4f :b #x4f :a #x80) - (new 'static 'rgba :r #x1d :g #x4a :b #x4e :a #x80) - (new 'static 'rgba :r #x20 :g #x47 :b #x4d :a #x80) - (new 'static 'rgba :r #x23 :g #x44 :b #x4c :a #x80) - (new 'static 'rgba :r #x23 :g #x40 :b #x4b :a #x80) - (new 'static 'rgba :r #x23 :g #x3b :b #x4a :a #x80) - (new 'static 'rgba :r #x22 :g #x37 :b #x47 :a #x80) - (new 'static 'rgba :r #x22 :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1e :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x1d :g #x3a :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x3d :b #x46 :a #x80) - (new 'static 'rgba :r #x1f :g #x3e :b #x48 :a #x80) - (new 'static 'rgba :r #x1e :g #x41 :b #x48 :a #x80) - (new 'static 'rgba :r #x1b :g #x43 :b #x48 :a #x80) - (new 'static 'rgba :r #x19 :g #x45 :b #x48 :a #x80) - (new 'static 'rgba :r #x18 :g #x45 :b #x48 :a #x80) - (new 'static 'rgba :r #x16 :g #x44 :b #x47 :a #x80) - (new 'static 'rgba :r #x16 :g #x45 :b #x47 :a #x80) - (new 'static 'rgba :r #x16 :g #x46 :b #x47 :a #x80) - (new 'static 'rgba :r #x15 :g #x47 :b #x46 :a #x80) - (new 'static 'rgba :r #x15 :g #x48 :b #x46 :a #x80) - (new 'static 'rgba :r #x17 :g #x4a :b #x47 :a #x80) - (new 'static 'rgba :r #x18 :g #x4d :b #x4b :a #x80) - (new 'static 'rgba :r #x1b :g #x4e :b #x4b :a #x80) - (new 'static 'rgba :r #x1d :g #x4f :b #x4d :a #x80) - (new 'static 'rgba :r #x1d :g #x50 :b #x4d :a #x80) - (new 'static 'rgba :r #x1f :g #x51 :b #x4f :a #x80) - (new 'static 'rgba :r #x21 :g #x51 :b #x4f :a #x80) - (new 'static 'rgba :r #x21 :g #x52 :b #x4c :a #x80) - (new 'static 'rgba :r #x24 :g #x52 :b #x4f :a #x80) - (new 'static 'rgba :r #x26 :g #x52 :b #x53 :a #x80) - (new 'static 'rgba :r #x28 :g #x54 :b #x51 :a #x80) - (new 'static 'rgba :r #x28 :g #x54 :b #x54 :a #x80) - (new 'static 'rgba :r #x29 :g #x55 :b #x52 :a #x80) - (new 'static 'rgba :r #x29 :g #x55 :b #x53 :a #x80) - (new 'static 'rgba :r #x28 :g #x55 :b #x50 :a #x80) - (new 'static 'rgba :r #x28 :g #x55 :b #x50 :a #x80) - (new 'static 'rgba :r #x28 :g #x54 :b #x51 :a #x80) - (new 'static 'rgba :r #x27 :g #x54 :b #x52 :a #x80) - (new 'static 'rgba :r #x25 :g #x52 :b #x52 :a #x80) - (new 'static 'rgba :r #x23 :g #x52 :b #x4f :a #x80) - (new 'static 'rgba :r #x22 :g #x53 :b #x4f :a #x80) - (new 'static 'rgba :r #x20 :g #x52 :b #x4e :a #x80) - (new 'static 'rgba :r #x1e :g #x51 :b #x4d :a #x80) - (new 'static 'rgba :r #x1d :g #x4f :b #x4f :a #x80) - (new 'static 'rgba :r #x1e :g #x49 :b #x4e :a #x80) - (new 'static 'rgba :r #x22 :g #x44 :b #x4d :a #x80) - (new 'static 'rgba :r #x23 :g #x3f :b #x4c :a #x80) - (new 'static 'rgba :r #x22 :g #x3a :b #x48 :a #x80) - (new 'static 'rgba :r #x25 :g #x51 :b #x53 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x33 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1e :g #x37 :b #x43 :a #x80) - (new 'static 'rgba :r #x1e :g #x3b :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x3f :b #x48 :a #x80) - (new 'static 'rgba :r #x1d :g #x41 :b #x47 :a #x80) - (new 'static 'rgba :r #x1a :g #x43 :b #x47 :a #x80) - (new 'static 'rgba :r #x18 :g #x44 :b #x47 :a #x80) - (new 'static 'rgba :r #x16 :g #x45 :b #x47 :a #x80) - (new 'static 'rgba :r #x14 :g #x47 :b #x44 :a #x80) - (new 'static 'rgba :r #x12 :g #x45 :b #x44 :a #x80) - (new 'static 'rgba :r #x12 :g #x43 :b #x45 :a #x80) - (new 'static 'rgba :r #x12 :g #x45 :b #x43 :a #x80) - (new 'static 'rgba :r #x12 :g #x46 :b #x44 :a #x80) - (new 'static 'rgba :r #x14 :g #x47 :b #x44 :a #x80) - (new 'static 'rgba :r #x15 :g #x4a :b #x46 :a #x80) - (new 'static 'rgba :r #x18 :g #x4c :b #x49 :a #x80) - (new 'static 'rgba :r #x1a :g #x4c :b #x47 :a #x80) - (new 'static 'rgba :r #x1c :g #x4d :b #x4a :a #x80) - (new 'static 'rgba :r #x1e :g #x4e :b #x4c :a #x80) - (new 'static 'rgba :r #x1e :g #x4e :b #x4b :a #x80) - (new 'static 'rgba :r #x20 :g #x4e :b #x4d :a #x80) - (new 'static 'rgba :r #x22 :g #x4d :b #x4e :a #x80) - (new 'static 'rgba :r #x23 :g #x4f :b #x4d :a #x80) - (new 'static 'rgba :r #x26 :g #x50 :b #x4e :a #x80) - (new 'static 'rgba :r #x28 :g #x52 :b #x51 :a #x80) - (new 'static 'rgba :r #x29 :g #x54 :b #x53 :a #x80) - (new 'static 'rgba :r #x2b :g #x56 :b #x51 :a #x80) - (new 'static 'rgba :r #x29 :g #x53 :b #x50 :a #x80) - (new 'static 'rgba :r #x27 :g #x53 :b #x4e :a #x80) - (new 'static 'rgba :r #x27 :g #x52 :b #x51 :a #x80) - (new 'static 'rgba :r #x27 :g #x52 :b #x51 :a #x80) - (new 'static 'rgba :r #x28 :g #x52 :b #x50 :a #x80) - (new 'static 'rgba :r #x28 :g #x52 :b #x4f :a #x80) - (new 'static 'rgba :r #x27 :g #x51 :b #x52 :a #x80) - (new 'static 'rgba :r #x26 :g #x51 :b #x4f :a #x80) - (new 'static 'rgba :r #x23 :g #x51 :b #x4e :a #x80) - (new 'static 'rgba :r #x20 :g #x53 :b #x4e :a #x80) - (new 'static 'rgba :r #x1e :g #x52 :b #x4d :a #x80) - (new 'static 'rgba :r #x1c :g #x4f :b #x4f :a #x80) - (new 'static 'rgba :r #x1e :g #x4d :b #x4e :a #x80) - (new 'static 'rgba :r #x23 :g #x46 :b #x4e :a #x80) - (new 'static 'rgba :r #x23 :g #x3e :b #x4a :a #x80) - (new 'static 'rgba :r #x22 :g #x37 :b #x47 :a #x80) - (new 'static 'rgba :r #x22 :g #x38 :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1e :g #x38 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x3e :b #x46 :a #x80) - (new 'static 'rgba :r #x1d :g #x44 :b #x49 :a #x80) - (new 'static 'rgba :r #x1a :g #x47 :b #x48 :a #x80) - (new 'static 'rgba :r #x18 :g #x47 :b #x47 :a #x80) - (new 'static 'rgba :r #x15 :g #x48 :b #x45 :a #x80) - (new 'static 'rgba :r #x13 :g #x47 :b #x45 :a #x80) - (new 'static 'rgba :r #x11 :g #x44 :b #x44 :a #x80) - (new 'static 'rgba :r #x10 :g #x43 :b #x43 :a #x80) - (new 'static 'rgba :r #xe :g #x42 :b #x41 :a #x80) - (new 'static 'rgba :r #x10 :g #x43 :b #x40 :a #x80) - (new 'static 'rgba :r #x1a :g #x4a :b #x47 :a #x80) - (new 'static 'rgba :r #x14 :g #x47 :b #x44 :a #x80) - (new 'static 'rgba :r #x16 :g #x47 :b #x44 :a #x80) - (new 'static 'rgba :r #x17 :g #x49 :b #x46 :a #x80) - (new 'static 'rgba :r #x18 :g #x4a :b #x48 :a #x80) - (new 'static 'rgba :r #x19 :g #x4a :b #x46 :a #x80) - (new 'static 'rgba :r #x1d :g #x4b :b #x4a :a #x80) - (new 'static 'rgba :r #x1e :g #x4b :b #x49 :a #x80) - (new 'static 'rgba :r #x1f :g #x4a :b #x4b :a #x80) - (new 'static 'rgba :r #x20 :g #x4b :b #x4a :a #x80) - (new 'static 'rgba :r #x20 :g #x4c :b #x49 :a #x80) - (new 'static 'rgba :r #x23 :g #x4e :b #x4b :a #x80) - (new 'static 'rgba :r #x24 :g #x4e :b #x4e :a #x80) - (new 'static 'rgba :r #x29 :g #x54 :b #x50 :a #x80) - (new 'static 'rgba :r #x31 :g #x59 :b #x54 :a #x80) - (new 'static 'rgba :r #x2f :g #x58 :b #x55 :a #x80) - (new 'static 'rgba :r #x29 :g #x54 :b #x51 :a #x80) - (new 'static 'rgba :r #x25 :g #x51 :b #x4c :a #x80) - (new 'static 'rgba :r #x24 :g #x51 :b #x4e :a #x80) - (new 'static 'rgba :r #x27 :g #x52 :b #x50 :a #x80) - (new 'static 'rgba :r #x2b :g #x55 :b #x51 :a #x80) - (new 'static 'rgba :r #x29 :g #x53 :b #x52 :a #x80) - (new 'static 'rgba :r #x27 :g #x50 :b #x51 :a #x80) - (new 'static 'rgba :r #x24 :g #x4f :b #x4e :a #x80) - (new 'static 'rgba :r #x21 :g #x4e :b #x4f :a #x80) - (new 'static 'rgba :r #x20 :g #x51 :b #x4b :a #x80) - (new 'static 'rgba :r #x1c :g #x50 :b #x4c :a #x80) - (new 'static 'rgba :r #x1b :g #x4d :b #x4f :a #x80) - (new 'static 'rgba :r #x1e :g #x4c :b #x4f :a #x80) - (new 'static 'rgba :r #x23 :g #x43 :b #x4c :a #x80) - (new 'static 'rgba :r #x21 :g #x3c :b #x48 :a #x80) - (new 'static 'rgba :r #x21 :g #x3a :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1e :g #x3a :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x46 :b #x4a :a #x80) - (new 'static 'rgba :r #x1b :g #x49 :b #x4d :a #x80) - (new 'static 'rgba :r #x18 :g #x4d :b #x4a :a #x80) - (new 'static 'rgba :r #x16 :g #x49 :b #x48 :a #x80) - (new 'static 'rgba :r #x15 :g #x49 :b #x45 :a #x80) - (new 'static 'rgba :r #x14 :g #x49 :b #x45 :a #x80) - (new 'static 'rgba :r #x12 :g #x45 :b #x44 :a #x80) - (new 'static 'rgba :r #x10 :g #x43 :b #x40 :a #x80) - (new 'static 'rgba :r #xf :g #x42 :b #x41 :a #x80) - (new 'static 'rgba :r #x10 :g #x45 :b #x41 :a #x80) - (new 'static 'rgba :r #x12 :g #x45 :b #x43 :a #x80) - (new 'static 'rgba :r #x14 :g #x45 :b #x42 :a #x80) - (new 'static 'rgba :r #x16 :g #x46 :b #x47 :a #x80) - (new 'static 'rgba :r #x17 :g #x48 :b #x46 :a #x80) - (new 'static 'rgba :r #x18 :g #x48 :b #x46 :a #x80) - (new 'static 'rgba :r #x19 :g #x48 :b #x44 :a #x80) - (new 'static 'rgba :r #x1a :g #x47 :b #x47 :a #x80) - (new 'static 'rgba :r #x1b :g #x48 :b #x46 :a #x80) - (new 'static 'rgba :r #x1b :g #x48 :b #x46 :a #x80) - (new 'static 'rgba :r #x1b :g #x49 :b #x47 :a #x80) - (new 'static 'rgba :r #x1b :g #x49 :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x4c :b #x4b :a #x80) - (new 'static 'rgba :r #x21 :g #x4b :b #x4c :a #x80) - (new 'static 'rgba :r #x25 :g #x50 :b #x4e :a #x80) - (new 'static 'rgba :r #x2e :g #x56 :b #x54 :a #x80) - (new 'static 'rgba :r #x2e :g #x55 :b #x52 :a #x80) - (new 'static 'rgba :r #x2b :g #x53 :b #x53 :a #x80) - (new 'static 'rgba :r #x23 :g #x4f :b #x49 :a #x80) - (new 'static 'rgba :r #x22 :g #x4f :b #x48 :a #x80) - (new 'static 'rgba :r #x24 :g #x51 :b #x4c :a #x80) - (new 'static 'rgba :r #x2b :g #x55 :b #x51 :a #x80) - (new 'static 'rgba :r #x2b :g #x55 :b #x52 :a #x80) - (new 'static 'rgba :r #x27 :g #x51 :b #x4f :a #x80) - (new 'static 'rgba :r #x23 :g #x4e :b #x4d :a #x80) - (new 'static 'rgba :r #x22 :g #x4d :b #x4b :a #x80) - (new 'static 'rgba :r #x21 :g #x4f :b #x4c :a #x80) - (new 'static 'rgba :r #x1c :g #x4f :b #x4a :a #x80) - (new 'static 'rgba :r #x1a :g #x4f :b #x4a :a #x80) - (new 'static 'rgba :r #x1b :g #x4c :b #x4e :a #x80) - (new 'static 'rgba :r #x20 :g #x47 :b #x4d :a #x80) - (new 'static 'rgba :r #x22 :g #x3f :b #x49 :a #x80) - (new 'static 'rgba :r #x21 :g #x3a :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1e :g #x3c :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x4a :b #x4c :a #x80) - (new 'static 'rgba :r #x1c :g #x4d :b #x4e :a #x80) - (new 'static 'rgba :r #x19 :g #x4e :b #x4d :a #x80) - (new 'static 'rgba :r #x18 :g #x4c :b #x4a :a #x80) - (new 'static 'rgba :r #x19 :g #x4c :b #x47 :a #x80) - (new 'static 'rgba :r #x17 :g #x48 :b #x48 :a #x80) - (new 'static 'rgba :r #x15 :g #x46 :b #x46 :a #x80) - (new 'static 'rgba :r #x12 :g #x45 :b #x41 :a #x80) - (new 'static 'rgba :r #x11 :g #x44 :b #x3f :a #x80) - (new 'static 'rgba :r #x12 :g #x44 :b #x41 :a #x80) - (new 'static 'rgba :r #x14 :g #x44 :b #x42 :a #x80) - (new 'static 'rgba :r #x15 :g #x45 :b #x41 :a #x80) - (new 'static 'rgba :r #x16 :g #x45 :b #x43 :a #x80) - (new 'static 'rgba :r #x18 :g #x45 :b #x45 :a #x80) - (new 'static 'rgba :r #x19 :g #x46 :b #x42 :a #x80) - (new 'static 'rgba :r #x1a :g #x46 :b #x43 :a #x80) - (new 'static 'rgba :r #x15 :g #x45 :b #x43 :a #x80) - (new 'static 'rgba :r #x17 :g #x45 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x4a :b #x49 :a #x80) - (new 'static 'rgba :r #x1c :g #x47 :b #x45 :a #x80) - (new 'static 'rgba :r #x1d :g #x49 :b #x47 :a #x80) - (new 'static 'rgba :r #x1f :g #x4b :b #x48 :a #x80) - (new 'static 'rgba :r #x22 :g #x4c :b #x4b :a #x80) - (new 'static 'rgba :r #x2b :g #x53 :b #x52 :a #x80) - (new 'static 'rgba :r #x25 :g #x4e :b #x4c :a #x80) - (new 'static 'rgba :r #x29 :g #x51 :b #x4e :a #x80) - (new 'static 'rgba :r #x28 :g #x51 :b #x4f :a #x80) - (new 'static 'rgba :r #x28 :g #x50 :b #x4f :a #x80) - (new 'static 'rgba :r #x20 :g #x4c :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x4c :b #x49 :a #x80) - (new 'static 'rgba :r #x22 :g #x4d :b #x4a :a #x80) - (new 'static 'rgba :r #x24 :g #x50 :b #x4c :a #x80) - (new 'static 'rgba :r #x25 :g #x50 :b #x4c :a #x80) - (new 'static 'rgba :r #x22 :g #x4d :b #x4b :a #x80) - (new 'static 'rgba :r #x21 :g #x4c :b #x49 :a #x80) - (new 'static 'rgba :r #x21 :g #x4d :b #x4b :a #x80) - (new 'static 'rgba :r #x1e :g #x4e :b #x49 :a #x80) - (new 'static 'rgba :r #x1a :g #x4e :b #x4d :a #x80) - (new 'static 'rgba :r #x1a :g #x4e :b #x4d :a #x80) - (new 'static 'rgba :r #x1d :g #x47 :b #x4d :a #x80) - (new 'static 'rgba :r #x21 :g #x40 :b #x4a :a #x80) - (new 'static 'rgba :r #x21 :g #x39 :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1c :g #x39 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x42 :b #x49 :a #x80) - (new 'static 'rgba :r #x1d :g #x49 :b #x4c :a #x80) - (new 'static 'rgba :r #x1b :g #x4e :b #x4c :a #x80) - (new 'static 'rgba :r #x19 :g #x4c :b #x4b :a #x80) - (new 'static 'rgba :r #x1a :g #x4a :b #x49 :a #x80) - (new 'static 'rgba :r #x1b :g #x49 :b #x48 :a #x80) - (new 'static 'rgba :r #x18 :g #x46 :b #x46 :a #x80) - (new 'static 'rgba :r #x16 :g #x43 :b #x44 :a #x80) - (new 'static 'rgba :r #x13 :g #x43 :b #x42 :a #x80) - (new 'static 'rgba :r #x15 :g #x43 :b #x42 :a #x80) - (new 'static 'rgba :r #x15 :g #x43 :b #x42 :a #x80) - (new 'static 'rgba :r #x17 :g #x43 :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x48 :b #x45 :a #x80) - (new 'static 'rgba :r #x18 :g #x44 :b #x42 :a #x80) - (new 'static 'rgba :r #x19 :g #x43 :b #x44 :a #x80) - (new 'static 'rgba :r #x1a :g #x45 :b #x42 :a #x80) - (new 'static 'rgba :r #x18 :g #x44 :b #x41 :a #x80) - (new 'static 'rgba :r #x1a :g #x46 :b #x43 :a #x80) - (new 'static 'rgba :r #x1b :g #x47 :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x49 :b #x47 :a #x80) - (new 'static 'rgba :r #x1c :g #x47 :b #x45 :a #x80) - (new 'static 'rgba :r #x1d :g #x48 :b #x47 :a #x80) - (new 'static 'rgba :r #x22 :g #x4b :b #x4b :a #x80) - (new 'static 'rgba :r #x25 :g #x4d :b #x49 :a #x80) - (new 'static 'rgba :r #x1d :g #x48 :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x49 :b #x49 :a #x80) - (new 'static 'rgba :r #x22 :g #x4c :b #x4a :a #x80) - (new 'static 'rgba :r #x25 :g #x4d :b #x4d :a #x80) - (new 'static 'rgba :r #x23 :g #x4d :b #x4c :a #x80) - (new 'static 'rgba :r #x24 :g #x4d :b #x49 :a #x80) - (new 'static 'rgba :r #x20 :g #x4b :b #x4a :a #x80) - (new 'static 'rgba :r #x1e :g #x4c :b #x46 :a #x80) - (new 'static 'rgba :r #x27 :g #x52 :b #x4c :a #x80) - (new 'static 'rgba :r #x24 :g #x4e :b #x4a :a #x80) - (new 'static 'rgba :r #x20 :g #x4c :b #x4a :a #x80) - (new 'static 'rgba :r #x20 :g #x4b :b #x4b :a #x80) - (new 'static 'rgba :r #x1e :g #x4d :b #x49 :a #x80) - (new 'static 'rgba :r #x1b :g #x4e :b #x49 :a #x80) - (new 'static 'rgba :r #x18 :g #x4e :b #x47 :a #x80) - (new 'static 'rgba :r #x1a :g #x4a :b #x4c :a #x80) - (new 'static 'rgba :r #x1f :g #x41 :b #x4a :a #x80) - (new 'static 'rgba :r #x20 :g #x3b :b #x47 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1c :g #x39 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x40 :b #x48 :a #x80) - (new 'static 'rgba :r #x1f :g #x48 :b #x4c :a #x80) - (new 'static 'rgba :r #x1d :g #x4d :b #x4d :a #x80) - (new 'static 'rgba :r #x1d :g #x4d :b #x4d :a #x80) - (new 'static 'rgba :r #x1d :g #x4a :b #x49 :a #x80) - (new 'static 'rgba :r #x1c :g #x47 :b #x48 :a #x80) - (new 'static 'rgba :r #x1b :g #x48 :b #x44 :a #x80) - (new 'static 'rgba :r #x1a :g #x47 :b #x43 :a #x80) - (new 'static 'rgba :r #x1b :g #x46 :b #x44 :a #x80) - (new 'static 'rgba :r #x19 :g #x46 :b #x43 :a #x80) - (new 'static 'rgba :r #x1a :g #x45 :b #x44 :a #x80) - (new 'static 'rgba :r #x1a :g #x44 :b #x43 :a #x80) - (new 'static 'rgba :r #x1a :g #x43 :b #x44 :a #x80) - (new 'static 'rgba :r #x19 :g #x44 :b #x42 :a #x80) - (new 'static 'rgba :r #x1a :g #x45 :b #x43 :a #x80) - (new 'static 'rgba :r #x19 :g #x43 :b #x44 :a #x80) - (new 'static 'rgba :r #x18 :g #x44 :b #x43 :a #x80) - (new 'static 'rgba :r #x1c :g #x47 :b #x45 :a #x80) - (new 'static 'rgba :r #x19 :g #x42 :b #x43 :a #x80) - (new 'static 'rgba :r #x18 :g #x43 :b #x42 :a #x80) - (new 'static 'rgba :r #x19 :g #x44 :b #x43 :a #x80) - (new 'static 'rgba :r #x1a :g #x45 :b #x45 :a #x80) - (new 'static 'rgba :r #x1e :g #x48 :b #x47 :a #x80) - (new 'static 'rgba :r #x1b :g #x43 :b #x46 :a #x80) - (new 'static 'rgba :r #x1a :g #x45 :b #x44 :a #x80) - (new 'static 'rgba :r #x1b :g #x47 :b #x46 :a #x80) - (new 'static 'rgba :r #x1b :g #x46 :b #x45 :a #x80) - (new 'static 'rgba :r #x1e :g #x48 :b #x48 :a #x80) - (new 'static 'rgba :r #x22 :g #x49 :b #x4a :a #x80) - (new 'static 'rgba :r #x26 :g #x4d :b #x4d :a #x80) - (new 'static 'rgba :r #x24 :g #x4c :b #x4c :a #x80) - (new 'static 'rgba :r #x21 :g #x4d :b #x48 :a #x80) - (new 'static 'rgba :r #x28 :g #x52 :b #x4c :a #x80) - (new 'static 'rgba :r #x26 :g #x50 :b #x4d :a #x80) - (new 'static 'rgba :r #x23 :g #x4d :b #x4d :a #x80) - (new 'static 'rgba :r #x1f :g #x49 :b #x4a :a #x80) - (new 'static 'rgba :r #x1d :g #x4a :b #x49 :a #x80) - (new 'static 'rgba :r #x1c :g #x4d :b #x49 :a #x80) - (new 'static 'rgba :r #x19 :g #x4e :b #x4a :a #x80) - (new 'static 'rgba :r #x19 :g #x4b :b #x4c :a #x80) - (new 'static 'rgba :r #x1d :g #x45 :b #x4a :a #x80) - (new 'static 'rgba :r #x20 :g #x3e :b #x48 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x36 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x31 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1d :g #x3a :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x3e :b #x47 :a #x80) - (new 'static 'rgba :r #x1f :g #x48 :b #x4b :a #x80) - (new 'static 'rgba :r #x20 :g #x50 :b #x4e :a #x80) - (new 'static 'rgba :r #x20 :g #x4f :b #x4d :a #x80) - (new 'static 'rgba :r #x20 :g #x4c :b #x49 :a #x80) - (new 'static 'rgba :r #x1f :g #x4a :b #x49 :a #x80) - (new 'static 'rgba :r #x1f :g #x49 :b #x48 :a #x80) - (new 'static 'rgba :r #x21 :g #x48 :b #x49 :a #x80) - (new 'static 'rgba :r #x21 :g #x49 :b #x49 :a #x80) - (new 'static 'rgba :r #x20 :g #x4a :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x4a :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x49 :b #x47 :a #x80) - (new 'static 'rgba :r #x1d :g #x48 :b #x46 :a #x80) - (new 'static 'rgba :r #x1b :g #x44 :b #x45 :a #x80) - (new 'static 'rgba :r #x1b :g #x46 :b #x45 :a #x80) - (new 'static 'rgba :r #x19 :g #x44 :b #x42 :a #x80) - (new 'static 'rgba :r #x19 :g #x44 :b #x43 :a #x80) - (new 'static 'rgba :r #x17 :g #x43 :b #x42 :a #x80) - (new 'static 'rgba :r #x16 :g #x42 :b #x41 :a #x80) - (new 'static 'rgba :r #x17 :g #x43 :b #x42 :a #x80) - (new 'static 'rgba :r #x18 :g #x42 :b #x42 :a #x80) - (new 'static 'rgba :r #x17 :g #x42 :b #x3f :a #x80) - (new 'static 'rgba :r #x16 :g #x41 :b #x42 :a #x80) - (new 'static 'rgba :r #x14 :g #x40 :b #x41 :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x42 :a #x80) - (new 'static 'rgba :r #x13 :g #x41 :b #x42 :a #x80) - (new 'static 'rgba :r #x14 :g #x43 :b #x41 :a #x80) - (new 'static 'rgba :r #x17 :g #x43 :b #x41 :a #x80) - (new 'static 'rgba :r #x19 :g #x45 :b #x44 :a #x80) - (new 'static 'rgba :r #x1d :g #x46 :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x49 :b #x48 :a #x80) - (new 'static 'rgba :r #x24 :g #x4c :b #x47 :a #x80) - (new 'static 'rgba :r #x22 :g #x4d :b #x4b :a #x80) - (new 'static 'rgba :r #x1f :g #x49 :b #x47 :a #x80) - (new 'static 'rgba :r #x22 :g #x4b :b #x4b :a #x80) - (new 'static 'rgba :r #x1e :g #x49 :b #x48 :a #x80) - (new 'static 'rgba :r #x1e :g #x49 :b #x4a :a #x80) - (new 'static 'rgba :r #x1c :g #x4b :b #x48 :a #x80) - (new 'static 'rgba :r #x1a :g #x4d :b #x4b :a #x80) - (new 'static 'rgba :r #x19 :g #x4c :b #x49 :a #x80) - (new 'static 'rgba :r #x1c :g #x48 :b #x4b :a #x80) - (new 'static 'rgba :r #x21 :g #x40 :b #x49 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1d :g #x39 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x41 :b #x49 :a #x80) - (new 'static 'rgba :r #x21 :g #x4b :b #x4c :a #x80) - (new 'static 'rgba :r #x22 :g #x50 :b #x51 :a #x80) - (new 'static 'rgba :r #x24 :g #x50 :b #x50 :a #x80) - (new 'static 'rgba :r #x25 :g #x4f :b #x4c :a #x80) - (new 'static 'rgba :r #x24 :g #x4d :b #x4b :a #x80) - (new 'static 'rgba :r #x25 :g #x4c :b #x4c :a #x80) - (new 'static 'rgba :r #x24 :g #x4b :b #x4b :a #x80) - (new 'static 'rgba :r #x24 :g #x4c :b #x4c :a #x80) - (new 'static 'rgba :r #x25 :g #x4b :b #x4c :a #x80) - (new 'static 'rgba :r #x24 :g #x4d :b #x49 :a #x80) - (new 'static 'rgba :r #x23 :g #x4b :b #x49 :a #x80) - (new 'static 'rgba :r #x21 :g #x4a :b #x47 :a #x80) - (new 'static 'rgba :r #x1e :g #x47 :b #x47 :a #x80) - (new 'static 'rgba :r #x1c :g #x47 :b #x45 :a #x80) - (new 'static 'rgba :r #x1c :g #x47 :b #x45 :a #x80) - (new 'static 'rgba :r #x1a :g #x44 :b #x44 :a #x80) - (new 'static 'rgba :r #x16 :g #x42 :b #x41 :a #x80) - (new 'static 'rgba :r #x15 :g #x42 :b #x42 :a #x80) - (new 'static 'rgba :r #x14 :g #x42 :b #x40 :a #x80) - (new 'static 'rgba :r #x16 :g #x43 :b #x41 :a #x80) - (new 'static 'rgba :r #x14 :g #x40 :b #x41 :a #x80) - (new 'static 'rgba :r #x11 :g #x40 :b #x3f :a #x80) - (new 'static 'rgba :r #x10 :g #x41 :b #x3c :a #x80) - (new 'static 'rgba :r #xd :g #x3f :b #x3a :a #x80) - (new 'static 'rgba :r #xb :g #x3e :b #x3d :a #x80) - (new 'static 'rgba :r #xb :g #x3f :b #x3c :a #x80) - (new 'static 'rgba :r #xe :g #x40 :b #x3d :a #x80) - (new 'static 'rgba :r #x12 :g #x42 :b #x40 :a #x80) - (new 'static 'rgba :r #x15 :g #x41 :b #x40 :a #x80) - (new 'static 'rgba :r #x18 :g #x43 :b #x43 :a #x80) - (new 'static 'rgba :r #x1a :g #x44 :b #x45 :a #x80) - (new 'static 'rgba :r #x1e :g #x47 :b #x46 :a #x80) - (new 'static 'rgba :r #x1e :g #x48 :b #x49 :a #x80) - (new 'static 'rgba :r #x1f :g #x49 :b #x46 :a #x80) - (new 'static 'rgba :r #x1f :g #x49 :b #x49 :a #x80) - (new 'static 'rgba :r #x1e :g #x4a :b #x48 :a #x80) - (new 'static 'rgba :r #x1d :g #x4b :b #x4a :a #x80) - (new 'static 'rgba :r #x1b :g #x4d :b #x48 :a #x80) - (new 'static 'rgba :r #x1a :g #x4e :b #x4b :a #x80) - (new 'static 'rgba :r #x1a :g #x49 :b #x4a :a #x80) - (new 'static 'rgba :r #x20 :g #x3e :b #x48 :a #x80) - (new 'static 'rgba :r #x1f :g #x36 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1d :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x43 :b #x4a :a #x80) - (new 'static 'rgba :r #x21 :g #x49 :b #x4e :a #x80) - (new 'static 'rgba :r #x25 :g #x51 :b #x51 :a #x80) - (new 'static 'rgba :r #x27 :g #x51 :b #x52 :a #x80) - (new 'static 'rgba :r #x26 :g #x50 :b #x4f :a #x80) - (new 'static 'rgba :r #x27 :g #x50 :b #x4e :a #x80) - (new 'static 'rgba :r #x28 :g #x4e :b #x4e :a #x80) - (new 'static 'rgba :r #x28 :g #x51 :b #x4d :a #x80) - (new 'static 'rgba :r #x28 :g #x51 :b #x4c :a #x80) - (new 'static 'rgba :r #x24 :g #x4c :b #x4c :a #x80) - (new 'static 'rgba :r #x26 :g #x4f :b #x4c :a #x80) - (new 'static 'rgba :r #x24 :g #x4b :b #x49 :a #x80) - (new 'static 'rgba :r #x24 :g #x4d :b #x4c :a #x80) - (new 'static 'rgba :r #x23 :g #x4a :b #x4b :a #x80) - (new 'static 'rgba :r #x1f :g #x49 :b #x49 :a #x80) - (new 'static 'rgba :r #x1f :g #x48 :b #x48 :a #x80) - (new 'static 'rgba :r #x1a :g #x45 :b #x45 :a #x80) - (new 'static 'rgba :r #x17 :g #x44 :b #x42 :a #x80) - (new 'static 'rgba :r #x14 :g #x42 :b #x3f :a #x80) - (new 'static 'rgba :r #x1c :g #x47 :b #x43 :a #x80) - (new 'static 'rgba :r #x12 :g #x40 :b #x40 :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x3d :a #x80) - (new 'static 'rgba :r #xb :g #x3e :b #x3c :a #x80) - (new 'static 'rgba :r #xa :g #x3e :b #x3a :a #x80) - (new 'static 'rgba :r #x8 :g #x3c :b #x3a :a #x80) - (new 'static 'rgba :r #x7 :g #x3c :b #x38 :a #x80) - (new 'static 'rgba :r #x8 :g #x3d :b #x3b :a #x80) - (new 'static 'rgba :r #x9 :g #x3c :b #x3b :a #x80) - (new 'static 'rgba :r #xb :g #x3e :b #x3d :a #x80) - (new 'static 'rgba :r #xf :g #x40 :b #x3c :a #x80) - (new 'static 'rgba :r #x13 :g #x40 :b #x3d :a #x80) - (new 'static 'rgba :r #x17 :g #x43 :b #x42 :a #x80) - (new 'static 'rgba :r #x1b :g #x45 :b #x45 :a #x80) - (new 'static 'rgba :r #x1c :g #x46 :b #x45 :a #x80) - (new 'static 'rgba :r #x1c :g #x47 :b #x46 :a #x80) - (new 'static 'rgba :r #x1e :g #x49 :b #x48 :a #x80) - (new 'static 'rgba :r #x1e :g #x4a :b #x47 :a #x80) - (new 'static 'rgba :r #x1e :g #x4b :b #x47 :a #x80) - (new 'static 'rgba :r #x1c :g #x4d :b #x4b :a #x80) - (new 'static 'rgba :r #x1a :g #x4d :b #x4b :a #x80) - (new 'static 'rgba :r #x19 :g #x49 :b #x4b :a #x80) - (new 'static 'rgba :r #x1f :g #x42 :b #x4a :a #x80) - (new 'static 'rgba :r #x20 :g #x39 :b #x47 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x3d :b #x47 :a #x80) - (new 'static 'rgba :r #x23 :g #x45 :b #x4c :a #x80) - (new 'static 'rgba :r #x24 :g #x4b :b #x50 :a #x80) - (new 'static 'rgba :r #x27 :g #x51 :b #x52 :a #x80) - (new 'static 'rgba :r #x2a :g #x54 :b #x52 :a #x80) - (new 'static 'rgba :r #x2a :g #x53 :b #x50 :a #x80) - (new 'static 'rgba :r #x2b :g #x52 :b #x4f :a #x80) - (new 'static 'rgba :r #x2b :g #x52 :b #x4f :a #x80) - (new 'static 'rgba :r #x29 :g #x51 :b #x4d :a #x80) - (new 'static 'rgba :r #x28 :g #x50 :b #x4c :a #x80) - (new 'static 'rgba :r #x25 :g #x4c :b #x47 :a #x80) - (new 'static 'rgba :r #x1f :g #x48 :b #x46 :a #x80) - (new 'static 'rgba :r #x28 :g #x51 :b #x4e :a #x80) - (new 'static 'rgba :r #x25 :g #x4d :b #x4c :a #x80) - (new 'static 'rgba :r #x23 :g #x4b :b #x47 :a #x80) - (new 'static 'rgba :r #x21 :g #x48 :b #x49 :a #x80) - (new 'static 'rgba :r #x1e :g #x46 :b #x47 :a #x80) - (new 'static 'rgba :r #x1a :g #x45 :b #x45 :a #x80) - (new 'static 'rgba :r #x17 :g #x44 :b #x43 :a #x80) - (new 'static 'rgba :r #x11 :g #x41 :b #x40 :a #x80) - (new 'static 'rgba :r #xf :g #x3f :b #x3f :a #x80) - (new 'static 'rgba :r #xd :g #x3e :b #x3b :a #x80) - (new 'static 'rgba :r #xb :g #x3e :b #x3a :a #x80) - (new 'static 'rgba :r #x7 :g #x3b :b #x3a :a #x80) - (new 'static 'rgba :r #x6 :g #x39 :b #x39 :a #x80) - (new 'static 'rgba :r #x5 :g #x38 :b #x37 :a #x80) - (new 'static 'rgba :r #x6 :g #x36 :b #x39 :a #x80) - (new 'static 'rgba :r #x6 :g #x37 :b #x38 :a #x80) - (new 'static 'rgba :r #x5 :g #x39 :b #x37 :a #x80) - (new 'static 'rgba :r #x6 :g #x3b :b #x36 :a #x80) - (new 'static 'rgba :r #x9 :g #x3e :b #x3c :a #x80) - (new 'static 'rgba :r #xf :g #x40 :b #x3e :a #x80) - (new 'static 'rgba :r #x13 :g #x40 :b #x40 :a #x80) - (new 'static 'rgba :r #x1a :g #x44 :b #x44 :a #x80) - (new 'static 'rgba :r #x1b :g #x46 :b #x45 :a #x80) - (new 'static 'rgba :r #x1e :g #x49 :b #x47 :a #x80) - (new 'static 'rgba :r #x18 :g #x45 :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x4b :b #x48 :a #x80) - (new 'static 'rgba :r #x1f :g #x4c :b #x49 :a #x80) - (new 'static 'rgba :r #x1d :g #x4d :b #x4a :a #x80) - (new 'static 'rgba :r #x1a :g #x4e :b #x48 :a #x80) - (new 'static 'rgba :r #x1a :g #x4c :b #x49 :a #x80) - (new 'static 'rgba :r #x1e :g #x48 :b #x4c :a #x80) - (new 'static 'rgba :r #x21 :g #x3b :b #x47 :a #x80) - (new 'static 'rgba :r #x1f :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x3d :b #x48 :a #x80) - (new 'static 'rgba :r #x24 :g #x4a :b #x4e :a #x80) - (new 'static 'rgba :r #x26 :g #x50 :b #x51 :a #x80) - (new 'static 'rgba :r #x2c :g #x56 :b #x54 :a #x80) - (new 'static 'rgba :r #x2f :g #x57 :b #x57 :a #x80) - (new 'static 'rgba :r #x2e :g #x56 :b #x52 :a #x80) - (new 'static 'rgba :r #x2c :g #x54 :b #x4f :a #x80) - (new 'static 'rgba :r #x2b :g #x52 :b #x4d :a #x80) - (new 'static 'rgba :r #x2c :g #x53 :b #x4e :a #x80) - (new 'static 'rgba :r #x2b :g #x53 :b #x4d :a #x80) - (new 'static 'rgba :r #x2c :g #x54 :b #x4f :a #x80) - (new 'static 'rgba :r #x27 :g #x4f :b #x4c :a #x80) - (new 'static 'rgba :r #x29 :g #x51 :b #x4d :a #x80) - (new 'static 'rgba :r #x21 :g #x49 :b #x41 :a #x80) - (new 'static 'rgba :r #x27 :g #x4f :b #x4d :a #x80) - (new 'static 'rgba :r #x22 :g #x4c :b #x49 :a #x80) - (new 'static 'rgba :r #x1e :g #x48 :b #x46 :a #x80) - (new 'static 'rgba :r #x1c :g #x47 :b #x44 :a #x80) - (new 'static 'rgba :r #x16 :g #x43 :b #x40 :a #x80) - (new 'static 'rgba :r #x11 :g #x41 :b #x3e :a #x80) - (new 'static 'rgba :r #xe :g #x40 :b #x3b :a #x80) - (new 'static 'rgba :r #xb :g #x3f :b #x3d :a #x80) - (new 'static 'rgba :r #x9 :g #x3d :b #x3a :a #x80) - (new 'static 'rgba :r #x7 :g #x3b :b #x3a :a #x80) - (new 'static 'rgba :r #x6 :g #x39 :b #x38 :a #x80) - (new 'static 'rgba :r #x6 :g #x34 :b #x36 :a #x80) - (new 'static 'rgba :r #x6 :g #x32 :b #x35 :a #x80) - (new 'static 'rgba :r #x6 :g #x33 :b #x36 :a #x80) - (new 'static 'rgba :r #x5 :g #x32 :b #x36 :a #x80) - (new 'static 'rgba :r #x5 :g #x37 :b #x38 :a #x80) - (new 'static 'rgba :r #x6 :g #x3a :b #x3a :a #x80) - (new 'static 'rgba :r #xb :g #x3e :b #x3c :a #x80) - (new 'static 'rgba :r #x11 :g #x41 :b #x40 :a #x80) - (new 'static 'rgba :r #x18 :g #x44 :b #x42 :a #x80) - (new 'static 'rgba :r #x23 :g #x4c :b #x4b :a #x80) - (new 'static 'rgba :r #x21 :g #x4b :b #x48 :a #x80) - (new 'static 'rgba :r #x22 :g #x4d :b #x48 :a #x80) - (new 'static 'rgba :r #x21 :g #x4d :b #x4c :a #x80) - (new 'static 'rgba :r #x22 :g #x4d :b #x4b :a #x80) - (new 'static 'rgba :r #x20 :g #x4f :b #x4e :a #x80) - (new 'static 'rgba :r #x1d :g #x4f :b #x4c :a #x80) - (new 'static 'rgba :r #x1b :g #x4e :b #x4c :a #x80) - (new 'static 'rgba :r #x1e :g #x47 :b #x4d :a #x80) - (new 'static 'rgba :r #x21 :g #x3f :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x21 :g #x41 :b #x49 :a #x80) - (new 'static 'rgba :r #x25 :g #x4c :b #x50 :a #x80) - (new 'static 'rgba :r #x2c :g #x55 :b #x55 :a #x80) - (new 'static 'rgba :r #x31 :g #x5a :b #x58 :a #x80) - (new 'static 'rgba :r #x31 :g #x5a :b #x57 :a #x80) - (new 'static 'rgba :r #x30 :g #x58 :b #x51 :a #x80) - (new 'static 'rgba :r #x2d :g #x54 :b #x4a :a #x80) - (new 'static 'rgba :r #x29 :g #x4f :b #x47 :a #x80) - (new 'static 'rgba :r #x29 :g #x50 :b #x47 :a #x80) - (new 'static 'rgba :r #x2a :g #x51 :b #x4c :a #x80) - (new 'static 'rgba :r #x2c :g #x52 :b #x4d :a #x80) - (new 'static 'rgba :r #x2a :g #x52 :b #x4a :a #x80) - (new 'static 'rgba :r #x28 :g #x50 :b #x4b :a #x80) - (new 'static 'rgba :r #x28 :g #x51 :b #x4b :a #x80) - (new 'static 'rgba :r #x27 :g #x4f :b #x4c :a #x80) - (new 'static 'rgba :r #x25 :g #x4d :b #x4b :a #x80) - (new 'static 'rgba :r #x21 :g #x49 :b #x47 :a #x80) - (new 'static 'rgba :r #x1d :g #x47 :b #x47 :a #x80) - (new 'static 'rgba :r #x16 :g #x44 :b #x41 :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x3d :a #x80) - (new 'static 'rgba :r #xd :g #x3f :b #x3b :a #x80) - (new 'static 'rgba :r #xf :g #x40 :b #x3b :a #x80) - (new 'static 'rgba :r #x7 :g #x3c :b #x39 :a #x80) - (new 'static 'rgba :r #x6 :g #x39 :b #x37 :a #x80) - (new 'static 'rgba :r #x6 :g #x35 :b #x37 :a #x80) - (new 'static 'rgba :r #x6 :g #x31 :b #x35 :a #x80) - (new 'static 'rgba :r #x6 :g #x2e :b #x34 :a #x80) - (new 'static 'rgba :r #x6 :g #x2e :b #x34 :a #x80) - (new 'static 'rgba :r #x6 :g #x30 :b #x35 :a #x80) - (new 'static 'rgba :r #x6 :g #x35 :b #x36 :a #x80) - (new 'static 'rgba :r #x6 :g #x39 :b #x36 :a #x80) - (new 'static 'rgba :r #x9 :g #x3d :b #x3b :a #x80) - (new 'static 'rgba :r #x11 :g #x40 :b #x3d :a #x80) - (new 'static 'rgba :r #x19 :g #x44 :b #x45 :a #x80) - (new 'static 'rgba :r #x27 :g #x4f :b #x4c :a #x80) - (new 'static 'rgba :r #x26 :g #x50 :b #x4a :a #x80) - (new 'static 'rgba :r #x26 :g #x50 :b #x4d :a #x80) - (new 'static 'rgba :r #x25 :g #x4f :b #x4c :a #x80) - (new 'static 'rgba :r #x25 :g #x4f :b #x4d :a #x80) - (new 'static 'rgba :r #x23 :g #x50 :b #x4d :a #x80) - (new 'static 'rgba :r #x1f :g #x51 :b #x4e :a #x80) - (new 'static 'rgba :r #x1d :g #x50 :b #x50 :a #x80) - (new 'static 'rgba :r #x1e :g #x4c :b #x4e :a #x80) - (new 'static 'rgba :r #x22 :g #x43 :b #x4a :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x33 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x41 :b #x49 :a #x80) - (new 'static 'rgba :r #x28 :g #x4b :b #x51 :a #x80) - (new 'static 'rgba :r #x2e :g #x56 :b #x58 :a #x80) - (new 'static 'rgba :r #x33 :g #x5a :b #x59 :a #x80) - (new 'static 'rgba :r #x33 :g #x59 :b #x53 :a #x80) - (new 'static 'rgba :r #x2f :g #x56 :b #x4a :a #x80) - (new 'static 'rgba :r #x29 :g #x4d :b #x3e :a #x80) - (new 'static 'rgba :r #x25 :g #x49 :b #x3a :a #x80) - (new 'static 'rgba :r #x24 :g #x49 :b #x3c :a #x80) - (new 'static 'rgba :r #x26 :g #x4b :b #x3f :a #x80) - (new 'static 'rgba :r #x24 :g #x4c :b #x3e :a #x80) - (new 'static 'rgba :r #x23 :g #x4a :b #x3e :a #x80) - (new 'static 'rgba :r #x24 :g #x4a :b #x42 :a #x80) - (new 'static 'rgba :r #x23 :g #x4b :b #x46 :a #x80) - (new 'static 'rgba :r #x23 :g #x4c :b #x4c :a #x80) - (new 'static 'rgba :r #x21 :g #x4b :b #x4a :a #x80) - (new 'static 'rgba :r #x22 :g #x4b :b #x49 :a #x80) - (new 'static 'rgba :r #x16 :g #x40 :b #x41 :a #x80) - (new 'static 'rgba :r #x17 :g #x44 :b #x44 :a #x80) - (new 'static 'rgba :r #x10 :g #x41 :b #x3d :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x3e :a #x80) - (new 'static 'rgba :r #xe :g #x40 :b #x3b :a #x80) - (new 'static 'rgba :r #x7 :g #x3a :b #x3a :a #x80) - (new 'static 'rgba :r #x6 :g #x36 :b #x39 :a #x80) - (new 'static 'rgba :r #x6 :g #x36 :b #x36 :a #x80) - (new 'static 'rgba :r #x6 :g #x33 :b #x35 :a #x80) - (new 'static 'rgba :r #x6 :g #x2f :b #x35 :a #x80) - (new 'static 'rgba :r #x6 :g #x2b :b #x32 :a #x80) - (new 'static 'rgba :r #x7 :g #x2c :b #x34 :a #x80) - (new 'static 'rgba :r #x6 :g #x2f :b #x34 :a #x80) - (new 'static 'rgba :r #x5 :g #x35 :b #x37 :a #x80) - (new 'static 'rgba :r #x8 :g #x3b :b #x3a :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x3f :a #x80) - (new 'static 'rgba :r #x1b :g #x46 :b #x44 :a #x80) - (new 'static 'rgba :r #x25 :g #x4e :b #x4a :a #x80) - (new 'static 'rgba :r #x29 :g #x51 :b #x51 :a #x80) - (new 'static 'rgba :r #x2a :g #x50 :b #x51 :a #x80) - (new 'static 'rgba :r #x29 :g #x51 :b #x52 :a #x80) - (new 'static 'rgba :r #x28 :g #x52 :b #x50 :a #x80) - (new 'static 'rgba :r #x27 :g #x52 :b #x51 :a #x80) - (new 'static 'rgba :r #x22 :g #x50 :b #x50 :a #x80) - (new 'static 'rgba :r #x1e :g #x50 :b #x50 :a #x80) - (new 'static 'rgba :r #x1f :g #x50 :b #x51 :a #x80) - (new 'static 'rgba :r #x21 :g #x42 :b #x4b :a #x80) - (new 'static 'rgba :r #x21 :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x22 :g #x3d :b #x49 :a #x80) - (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x40 :b #x48 :a #x80) - (new 'static 'rgba :r #x27 :g #x4b :b #x52 :a #x80) - (new 'static 'rgba :r #x2f :g #x57 :b #x57 :a #x80) - (new 'static 'rgba :r #x32 :g #x5a :b #x55 :a #x80) - (new 'static 'rgba :r #x30 :g #x53 :b #x4a :a #x80) - (new 'static 'rgba :r #x2a :g #x4f :b #x3d :a #x80) - (new 'static 'rgba :r #x24 :g #x49 :b #x38 :a #x80) - (new 'static 'rgba :r #x21 :g #x45 :b #x31 :a #x80) - (new 'static 'rgba :r #x21 :g #x44 :b #x31 :a #x80) - (new 'static 'rgba :r #x1e :g #x43 :b #x31 :a #x80) - (new 'static 'rgba :r #x1d :g #x41 :b #x30 :a #x80) - (new 'static 'rgba :r #x1c :g #x42 :b #x30 :a #x80) - (new 'static 'rgba :r #x20 :g #x44 :b #x36 :a #x80) - (new 'static 'rgba :r #x23 :g #x4a :b #x45 :a #x80) - (new 'static 'rgba :r #x1e :g #x45 :b #x47 :a #x80) - (new 'static 'rgba :r #x27 :g #x4d :b #x4e :a #x80) - (new 'static 'rgba :r #x23 :g #x4a :b #x4b :a #x80) - (new 'static 'rgba :r #x1c :g #x46 :b #x44 :a #x80) - (new 'static 'rgba :r #x17 :g #x45 :b #x42 :a #x80) - (new 'static 'rgba :r #x11 :g #x42 :b #x3f :a #x80) - (new 'static 'rgba :r #xd :g #x3f :b #x3d :a #x80) - (new 'static 'rgba :r #xa :g #x3e :b #x3c :a #x80) - (new 'static 'rgba :r #x7 :g #x3b :b #x3b :a #x80) - (new 'static 'rgba :r #x6 :g #x38 :b #x39 :a #x80) - (new 'static 'rgba :r #x6 :g #x36 :b #x36 :a #x80) - (new 'static 'rgba :r #x7 :g #x31 :b #x36 :a #x80) - (new 'static 'rgba :r #x6 :g #x2e :b #x33 :a #x80) - (new 'static 'rgba :r #x1 :g #x16 :b #x23 :a #x80) - (new 'static 'rgba :r #x7 :g #x2e :b #x33 :a #x80) - (new 'static 'rgba :r #x7 :g #x34 :b #x37 :a #x80) - (new 'static 'rgba :r #x4 :g #x32 :b #x36 :a #x80) - (new 'static 'rgba :r #x9 :g #x3b :b #x38 :a #x80) - (new 'static 'rgba :r #x11 :g #x41 :b #x3f :a #x80) - (new 'static 'rgba :r #x1b :g #x47 :b #x44 :a #x80) - (new 'static 'rgba :r #x21 :g #x4c :b #x4a :a #x80) - (new 'static 'rgba :r #x28 :g #x51 :b #x4f :a #x80) - (new 'static 'rgba :r #x2c :g #x55 :b #x52 :a #x80) - (new 'static 'rgba :r #x2a :g #x52 :b #x53 :a #x80) - (new 'static 'rgba :r #x2b :g #x55 :b #x52 :a #x80) - (new 'static 'rgba :r #x29 :g #x53 :b #x52 :a #x80) - (new 'static 'rgba :r #x25 :g #x53 :b #x4f :a #x80) - (new 'static 'rgba :r #x20 :g #x52 :b #x4e :a #x80) - (new 'static 'rgba :r #x1e :g #x4f :b #x50 :a #x80) - (new 'static 'rgba :r #x20 :g #x46 :b #x4c :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x47 :a #x80) - (new 'static 'rgba :r #x25 :g #x4b :b #x51 :a #x80) - (new 'static 'rgba :r #x21 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x3e :b #x48 :a #x80) - (new 'static 'rgba :r #x28 :g #x4f :b #x52 :a #x80) - (new 'static 'rgba :r #x30 :g #x57 :b #x57 :a #x80) - (new 'static 'rgba :r #x30 :g #x55 :b #x48 :a #x80) - (new 'static 'rgba :r #x2b :g #x4e :b #x3b :a #x80) - (new 'static 'rgba :r #x25 :g #x47 :b #x35 :a #x80) - (new 'static 'rgba :r #x21 :g #x44 :b #x2c :a #x80) - (new 'static 'rgba :r #x1e :g #x3f :b #x2b :a #x80) - (new 'static 'rgba :r #x1d :g #x40 :b #x29 :a #x80) - (new 'static 'rgba :r #x1b :g #x3f :b #x2b :a #x80) - (new 'static 'rgba :r #x1c :g #x3e :b #x29 :a #x80) - (new 'static 'rgba :r #x1b :g #x3e :b #x2b :a #x80) - (new 'static 'rgba :r #x1e :g #x41 :b #x30 :a #x80) - (new 'static 'rgba :r #x27 :g #x4c :b #x45 :a #x80) - (new 'static 'rgba :r #x2b :g #x54 :b #x4f :a #x80) - (new 'static 'rgba :r #x29 :g #x51 :b #x51 :a #x80) - (new 'static 'rgba :r #x23 :g #x4b :b #x4b :a #x80) - (new 'static 'rgba :r #x1d :g #x45 :b #x47 :a #x80) - (new 'static 'rgba :r #x17 :g #x45 :b #x44 :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x40 :a #x80) - (new 'static 'rgba :r #xe :g #x41 :b #x3e :a #x80) - (new 'static 'rgba :r #xa :g #x3d :b #x3a :a #x80) - (new 'static 'rgba :r #x8 :g #x3b :b #x3b :a #x80) - (new 'static 'rgba :r #x6 :g #x3a :b #x37 :a #x80) - (new 'static 'rgba :r #x6 :g #x35 :b #x38 :a #x80) - (new 'static 'rgba :r #x6 :g #x33 :b #x35 :a #x80) - (new 'static 'rgba :r #x6 :g #x32 :b #x35 :a #x80) - (new 'static 'rgba :r #x5 :g #x28 :b #x31 :a #x80) - (new 'static 'rgba :r #x6 :g #x2c :b #x33 :a #x80) - (new 'static 'rgba :r #x6 :g #x30 :b #x34 :a #x80) - (new 'static 'rgba :r #x5 :g #x35 :b #x38 :a #x80) - (new 'static 'rgba :r #x9 :g #x3d :b #x3b :a #x80) - (new 'static 'rgba :r #x14 :g #x44 :b #x41 :a #x80) - (new 'static 'rgba :r #x1e :g #x49 :b #x49 :a #x80) - (new 'static 'rgba :r #x24 :g #x4d :b #x4b :a #x80) - (new 'static 'rgba :r #x2b :g #x53 :b #x4f :a #x80) - (new 'static 'rgba :r #x31 :g #x57 :b #x57 :a #x80) - (new 'static 'rgba :r #x2b :g #x54 :b #x52 :a #x80) - (new 'static 'rgba :r #x2e :g #x57 :b #x55 :a #x80) - (new 'static 'rgba :r #x2b :g #x54 :b #x52 :a #x80) - (new 'static 'rgba :r #x27 :g #x54 :b #x54 :a #x80) - (new 'static 'rgba :r #x21 :g #x53 :b #x51 :a #x80) - (new 'static 'rgba :r #x1f :g #x52 :b #x52 :a #x80) - (new 'static 'rgba :r #x22 :g #x50 :b #x52 :a #x80) - (new 'static 'rgba :r #x21 :g #x3a :b #x49 :a #x80) - (new 'static 'rgba :r #x22 :g #x39 :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x21 :g #x42 :b #x4a :a #x80) - (new 'static 'rgba :r #x28 :g #x52 :b #x53 :a #x80) - (new 'static 'rgba :r #x30 :g #x57 :b #x53 :a #x80) - (new 'static 'rgba :r #x2e :g #x52 :b #x43 :a #x80) - (new 'static 'rgba :r #x27 :g #x49 :b #x37 :a #x80) - (new 'static 'rgba :r #x23 :g #x43 :b #x2d :a #x80) - (new 'static 'rgba :r #x1e :g #x40 :b #x2a :a #x80) - (new 'static 'rgba :r #x1d :g #x3e :b #x27 :a #x80) - (new 'static 'rgba :r #x1b :g #x3d :b #x24 :a #x80) - (new 'static 'rgba :r #x1a :g #x3d :b #x27 :a #x80) - (new 'static 'rgba :r #x18 :g #x3b :b #x23 :a #x80) - (new 'static 'rgba :r #x19 :g #x3d :b #x23 :a #x80) - (new 'static 'rgba :r #x1d :g #x40 :b #x2c :a #x80) - (new 'static 'rgba :r #x22 :g #x49 :b #x3f :a #x80) - (new 'static 'rgba :r #x28 :g #x52 :b #x4b :a #x80) - (new 'static 'rgba :r #x2b :g #x52 :b #x50 :a #x80) - (new 'static 'rgba :r #x25 :g #x4d :b #x4a :a #x80) - (new 'static 'rgba :r #x1f :g #x48 :b #x48 :a #x80) - (new 'static 'rgba :r #x18 :g #x44 :b #x42 :a #x80) - (new 'static 'rgba :r #x13 :g #x41 :b #x41 :a #x80) - (new 'static 'rgba :r #x11 :g #x41 :b #x41 :a #x80) - (new 'static 'rgba :r #xb :g #x3e :b #x3a :a #x80) - (new 'static 'rgba :r #x9 :g #x3d :b #x3b :a #x80) - (new 'static 'rgba :r #x6 :g #x3a :b #x38 :a #x80) - (new 'static 'rgba :r #x6 :g #x38 :b #x38 :a #x80) - (new 'static 'rgba :r #x7 :g #x33 :b #x37 :a #x80) - (new 'static 'rgba :r #x6 :g #x32 :b #x35 :a #x80) - (new 'static 'rgba :r #x6 :g #x2f :b #x34 :a #x80) - (new 'static 'rgba :r #x7 :g #x30 :b #x36 :a #x80) - (new 'static 'rgba :r #x7 :g #x33 :b #x37 :a #x80) - (new 'static 'rgba :r #x6 :g #x38 :b #x37 :a #x80) - (new 'static 'rgba :r #x9 :g #x3d :b #x39 :a #x80) - (new 'static 'rgba :r #x16 :g #x46 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x49 :b #x48 :a #x80) - (new 'static 'rgba :r #x25 :g #x4e :b #x4b :a #x80) - (new 'static 'rgba :r #x2c :g #x53 :b #x50 :a #x80) - (new 'static 'rgba :r #x35 :g #x5a :b #x59 :a #x80) - (new 'static 'rgba :r #x2f :g #x57 :b #x55 :a #x80) - (new 'static 'rgba :r #x31 :g #x59 :b #x57 :a #x80) - (new 'static 'rgba :r #x2d :g #x56 :b #x56 :a #x80) - (new 'static 'rgba :r #x27 :g #x54 :b #x54 :a #x80) - (new 'static 'rgba :r #x22 :g #x54 :b #x52 :a #x80) - (new 'static 'rgba :r #x20 :g #x52 :b #x51 :a #x80) - (new 'static 'rgba :r #x22 :g #x50 :b #x52 :a #x80) - (new 'static 'rgba :r #x21 :g #x3a :b #x49 :a #x80) - (new 'static 'rgba :r #x21 :g #x37 :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x21 :g #x3f :b #x4a :a #x80) - (new 'static 'rgba :r #x29 :g #x51 :b #x55 :a #x80) - (new 'static 'rgba :r #x2f :g #x55 :b #x4e :a #x80) - (new 'static 'rgba :r #x29 :g #x4c :b #x3c :a #x80) - (new 'static 'rgba :r #x24 :g #x45 :b #x30 :a #x80) - (new 'static 'rgba :r #x21 :g #x41 :b #x29 :a #x80) - (new 'static 'rgba :r #x1d :g #x3e :b #x26 :a #x80) - (new 'static 'rgba :r #x1b :g #x3d :b #x24 :a #x80) - (new 'static 'rgba :r #x19 :g #x3c :b #x21 :a #x80) - (new 'static 'rgba :r #x1a :g #x3c :b #x25 :a #x80) - (new 'static 'rgba :r #x1b :g #x3e :b #x26 :a #x80) - (new 'static 'rgba :r #x1c :g #x3f :b #x2a :a #x80) - (new 'static 'rgba :r #x1f :g #x42 :b #x30 :a #x80) - (new 'static 'rgba :r #x21 :g #x46 :b #x39 :a #x80) - (new 'static 'rgba :r #x27 :g #x4c :b #x45 :a #x80) - (new 'static 'rgba :r #x28 :g #x51 :b #x4b :a #x80) - (new 'static 'rgba :r #x26 :g #x4f :b #x4d :a #x80) - (new 'static 'rgba :r #x23 :g #x4b :b #x4b :a #x80) - (new 'static 'rgba :r #x1c :g #x45 :b #x46 :a #x80) - (new 'static 'rgba :r #x16 :g #x42 :b #x43 :a #x80) - (new 'static 'rgba :r #x12 :g #x42 :b #x3e :a #x80) - (new 'static 'rgba :r #xd :g #x3e :b #x3e :a #x80) - (new 'static 'rgba :r #x19 :g #x46 :b #x42 :a #x80) - (new 'static 'rgba :r #x8 :g #x3d :b #x38 :a #x80) - (new 'static 'rgba :r #x7 :g #x3a :b #x38 :a #x80) - (new 'static 'rgba :r #x6 :g #x38 :b #x36 :a #x80) - (new 'static 'rgba :r #x6 :g #x36 :b #x35 :a #x80) - (new 'static 'rgba :r #x6 :g #x33 :b #x35 :a #x80) - (new 'static 'rgba :r #x6 :g #x33 :b #x35 :a #x80) - (new 'static 'rgba :r #x7 :g #x37 :b #x37 :a #x80) - (new 'static 'rgba :r #x5 :g #x39 :b #x36 :a #x80) - (new 'static 'rgba :r #xa :g #x3d :b #x3c :a #x80) - (new 'static 'rgba :r #x14 :g #x44 :b #x41 :a #x80) - (new 'static 'rgba :r #x1a :g #x46 :b #x43 :a #x80) - (new 'static 'rgba :r #x23 :g #x4c :b #x4a :a #x80) - (new 'static 'rgba :r #x29 :g #x51 :b #x4f :a #x80) - (new 'static 'rgba :r #x34 :g #x58 :b #x57 :a #x80) - (new 'static 'rgba :r #x34 :g #x59 :b #x56 :a #x80) - (new 'static 'rgba :r #x2e :g #x56 :b #x54 :a #x80) - (new 'static 'rgba :r #x2c :g #x56 :b #x54 :a #x80) - (new 'static 'rgba :r #x28 :g #x55 :b #x55 :a #x80) - (new 'static 'rgba :r #x21 :g #x54 :b #x52 :a #x80) - (new 'static 'rgba :r #x1f :g #x52 :b #x51 :a #x80) - (new 'static 'rgba :r #x22 :g #x4b :b #x4e :a #x80) - (new 'static 'rgba :r #x21 :g #x3b :b #x49 :a #x80) - (new 'static 'rgba :r #x21 :g #x37 :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1e :g #x3c :b #x47 :a #x80) - (new 'static 'rgba :r #x29 :g #x4c :b #x52 :a #x80) - (new 'static 'rgba :r #x30 :g #x57 :b #x50 :a #x80) - (new 'static 'rgba :r #x27 :g #x4a :b #x39 :a #x80) - (new 'static 'rgba :r #x21 :g #x42 :b #x2f :a #x80) - (new 'static 'rgba :r #x1f :g #x41 :b #x28 :a #x80) - (new 'static 'rgba :r #x1c :g #x3f :b #x29 :a #x80) - (new 'static 'rgba :r #x1d :g #x3f :b #x26 :a #x80) - (new 'static 'rgba :r #x1d :g #x40 :b #x27 :a #x80) - (new 'static 'rgba :r #x1d :g #x40 :b #x29 :a #x80) - (new 'static 'rgba :r #x1f :g #x43 :b #x31 :a #x80) - (new 'static 'rgba :r #x23 :g #x48 :b #x36 :a #x80) - (new 'static 'rgba :r #x23 :g #x48 :b #x3c :a #x80) - (new 'static 'rgba :r #x23 :g #x49 :b #x3d :a #x80) - (new 'static 'rgba :r #x23 :g #x4a :b #x40 :a #x80) - (new 'static 'rgba :r #x28 :g #x4f :b #x48 :a #x80) - (new 'static 'rgba :r #x28 :g #x4f :b #x4c :a #x80) - (new 'static 'rgba :r #x25 :g #x4c :b #x4a :a #x80) - (new 'static 'rgba :r #x20 :g #x48 :b #x48 :a #x80) - (new 'static 'rgba :r #x19 :g #x42 :b #x44 :a #x80) - (new 'static 'rgba :r #x14 :g #x40 :b #x41 :a #x80) - (new 'static 'rgba :r #xf :g #x3f :b #x3e :a #x80) - (new 'static 'rgba :r #xb :g #x3e :b #x3c :a #x80) - (new 'static 'rgba :r #xa :g #x3e :b #x3a :a #x80) - (new 'static 'rgba :r #x8 :g #x3c :b #x3a :a #x80) - (new 'static 'rgba :r #x6 :g #x3a :b #x39 :a #x80) - (new 'static 'rgba :r #x6 :g #x38 :b #x38 :a #x80) - (new 'static 'rgba :r #x5 :g #x34 :b #x37 :a #x80) - (new 'static 'rgba :r #x5 :g #x37 :b #x37 :a #x80) - (new 'static 'rgba :r #x6 :g #x39 :b #x37 :a #x80) - (new 'static 'rgba :r #x7 :g #x3c :b #x3a :a #x80) - (new 'static 'rgba :r #xd :g #x3f :b #x3c :a #x80) - (new 'static 'rgba :r #x15 :g #x41 :b #x41 :a #x80) - (new 'static 'rgba :r #x1a :g #x45 :b #x44 :a #x80) - (new 'static 'rgba :r #x22 :g #x4c :b #x49 :a #x80) - (new 'static 'rgba :r #x2a :g #x51 :b #x4c :a #x80) - (new 'static 'rgba :r #x2e :g #x54 :b #x51 :a #x80) - (new 'static 'rgba :r #x2e :g #x55 :b #x54 :a #x80) - (new 'static 'rgba :r #x2c :g #x54 :b #x54 :a #x80) - (new 'static 'rgba :r #x2a :g #x55 :b #x55 :a #x80) - (new 'static 'rgba :r #x25 :g #x53 :b #x53 :a #x80) - (new 'static 'rgba :r #x21 :g #x53 :b #x50 :a #x80) - (new 'static 'rgba :r #x1f :g #x52 :b #x52 :a #x80) - (new 'static 'rgba :r #x21 :g #x47 :b #x4d :a #x80) - (new 'static 'rgba :r #x20 :g #x39 :b #x47 :a #x80) - (new 'static 'rgba :r #x21 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1c :g #x3a :b #x44 :a #x80) - (new 'static 'rgba :r #x27 :g #x49 :b #x4e :a #x80) - (new 'static 'rgba :r #x2e :g #x55 :b #x50 :a #x80) - (new 'static 'rgba :r #x26 :g #x4a :b #x3b :a #x80) - (new 'static 'rgba :r #x22 :g #x47 :b #x32 :a #x80) - (new 'static 'rgba :r #x20 :g #x43 :b #x2c :a #x80) - (new 'static 'rgba :r #x1f :g #x42 :b #x2c :a #x80) - (new 'static 'rgba :r #x20 :g #x44 :b #x2d :a #x80) - (new 'static 'rgba :r #x20 :g #x44 :b #x30 :a #x80) - (new 'static 'rgba :r #x22 :g #x46 :b #x34 :a #x80) - (new 'static 'rgba :r #x26 :g #x49 :b #x3d :a #x80) - (new 'static 'rgba :r #x29 :g #x4f :b #x45 :a #x80) - (new 'static 'rgba :r #x28 :g #x4f :b #x45 :a #x80) - (new 'static 'rgba :r #x26 :g #x4d :b #x46 :a #x80) - (new 'static 'rgba :r #x25 :g #x4e :b #x45 :a #x80) - (new 'static 'rgba :r #x27 :g #x4f :b #x49 :a #x80) - (new 'static 'rgba :r #x27 :g #x4f :b #x4c :a #x80) - (new 'static 'rgba :r #x17 :g #x40 :b #x41 :a #x80) - (new 'static 'rgba :r #x26 :g #x4e :b #x4c :a #x80) - (new 'static 'rgba :r #x20 :g #x48 :b #x49 :a #x80) - (new 'static 'rgba :r #x1a :g #x45 :b #x41 :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x41 :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x3c :a #x80) - (new 'static 'rgba :r #xf :g #x40 :b #x3f :a #x80) - (new 'static 'rgba :r #xb :g #x3e :b #x3a :a #x80) - (new 'static 'rgba :r #x8 :g #x3d :b #x38 :a #x80) - (new 'static 'rgba :r #x7 :g #x3b :b #x39 :a #x80) - (new 'static 'rgba :r #x13 :g #x41 :b #x3e :a #x80) - (new 'static 'rgba :r #x6 :g #x3a :b #x3a :a #x80) - (new 'static 'rgba :r #x8 :g #x3c :b #x39 :a #x80) - (new 'static 'rgba :r #xb :g #x3d :b #x3d :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x3c :a #x80) - (new 'static 'rgba :r #x18 :g #x44 :b #x43 :a #x80) - (new 'static 'rgba :r #x1c :g #x47 :b #x43 :a #x80) - (new 'static 'rgba :r #x23 :g #x4b :b #x49 :a #x80) - (new 'static 'rgba :r #x26 :g #x4e :b #x4c :a #x80) - (new 'static 'rgba :r #x28 :g #x50 :b #x4f :a #x80) - (new 'static 'rgba :r #x29 :g #x53 :b #x50 :a #x80) - (new 'static 'rgba :r #x29 :g #x53 :b #x51 :a #x80) - (new 'static 'rgba :r #x27 :g #x53 :b #x51 :a #x80) - (new 'static 'rgba :r #x24 :g #x53 :b #x53 :a #x80) - (new 'static 'rgba :r #x1f :g #x53 :b #x4e :a #x80) - (new 'static 'rgba :r #x1f :g #x4e :b #x51 :a #x80) - (new 'static 'rgba :r #x22 :g #x46 :b #x4d :a #x80) - (new 'static 'rgba :r #x22 :g #x39 :b #x48 :a #x80) - (new 'static 'rgba :r #x21 :g #x36 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1c :g #x37 :b #x43 :a #x80) - (new 'static 'rgba :r #x25 :g #x49 :b #x4d :a #x80) - (new 'static 'rgba :r #x2d :g #x53 :b #x4d :a #x80) - (new 'static 'rgba :r #x28 :g #x4d :b #x40 :a #x80) - (new 'static 'rgba :r #x26 :g #x4a :b #x39 :a #x80) - (new 'static 'rgba :r #x25 :g #x48 :b #x37 :a #x80) - (new 'static 'rgba :r #x24 :g #x47 :b #x35 :a #x80) - (new 'static 'rgba :r #x24 :g #x47 :b #x35 :a #x80) - (new 'static 'rgba :r #x26 :g #x49 :b #x3b :a #x80) - (new 'static 'rgba :r #x27 :g #x4c :b #x3d :a #x80) - (new 'static 'rgba :r #x29 :g #x4e :b #x46 :a #x80) - (new 'static 'rgba :r #x2c :g #x52 :b #x4b :a #x80) - (new 'static 'rgba :r #x2c :g #x54 :b #x4c :a #x80) - (new 'static 'rgba :r #x2b :g #x53 :b #x4b :a #x80) - (new 'static 'rgba :r #x28 :g #x50 :b #x4c :a #x80) - (new 'static 'rgba :r #x29 :g #x50 :b #x4b :a #x80) - (new 'static 'rgba :r #x24 :g #x4c :b #x49 :a #x80) - (new 'static 'rgba :r #x22 :g #x4a :b #x49 :a #x80) - (new 'static 'rgba :r #x2b :g #x51 :b #x4e :a #x80) - (new 'static 'rgba :r #x2a :g #x50 :b #x4e :a #x80) - (new 'static 'rgba :r #x24 :g #x4c :b #x48 :a #x80) - (new 'static 'rgba :r #x1b :g #x46 :b #x45 :a #x80) - (new 'static 'rgba :r #x15 :g #x41 :b #x3e :a #x80) - (new 'static 'rgba :r #x12 :g #x40 :b #x3e :a #x80) - (new 'static 'rgba :r #xf :g #x40 :b #x3f :a #x80) - (new 'static 'rgba :r #xd :g #x3f :b #x3a :a #x80) - (new 'static 'rgba :r #xc :g #x3f :b #x3a :a #x80) - (new 'static 'rgba :r #xb :g #x3e :b #x3c :a #x80) - (new 'static 'rgba :r #xc :g #x3e :b #x3c :a #x80) - (new 'static 'rgba :r #xd :g #x3f :b #x3c :a #x80) - (new 'static 'rgba :r #x12 :g #x41 :b #x3e :a #x80) - (new 'static 'rgba :r #x15 :g #x42 :b #x41 :a #x80) - (new 'static 'rgba :r #x19 :g #x45 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x49 :b #x47 :a #x80) - (new 'static 'rgba :r #x22 :g #x4a :b #x46 :a #x80) - (new 'static 'rgba :r #x23 :g #x4b :b #x49 :a #x80) - (new 'static 'rgba :r #x26 :g #x4e :b #x4c :a #x80) - (new 'static 'rgba :r #x26 :g #x51 :b #x4d :a #x80) - (new 'static 'rgba :r #x26 :g #x51 :b #x51 :a #x80) - (new 'static 'rgba :r #x23 :g #x51 :b #x51 :a #x80) - (new 'static 'rgba :r #x21 :g #x53 :b #x4f :a #x80) - (new 'static 'rgba :r #x1e :g #x52 :b #x51 :a #x80) - (new 'static 'rgba :r #x1f :g #x4f :b #x51 :a #x80) - (new 'static 'rgba :r #x23 :g #x44 :b #x4c :a #x80) - (new 'static 'rgba :r #x22 :g #x3b :b #x48 :a #x80) - (new 'static 'rgba :r #x22 :g #x39 :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1c :g #x37 :b #x42 :a #x80) - (new 'static 'rgba :r #x24 :g #x49 :b #x4d :a #x80) - (new 'static 'rgba :r #x2d :g #x56 :b #x50 :a #x80) - (new 'static 'rgba :r #x2d :g #x53 :b #x47 :a #x80) - (new 'static 'rgba :r #x2a :g #x50 :b #x42 :a #x80) - (new 'static 'rgba :r #x28 :g #x4d :b #x40 :a #x80) - (new 'static 'rgba :r #x27 :g #x4c :b #x3d :a #x80) - (new 'static 'rgba :r #x28 :g #x4e :b #x3e :a #x80) - (new 'static 'rgba :r #x29 :g #x4e :b #x42 :a #x80) - (new 'static 'rgba :r #x2b :g #x50 :b #x47 :a #x80) - (new 'static 'rgba :r #x2a :g #x4f :b #x49 :a #x80) - (new 'static 'rgba :r #x2c :g #x54 :b #x4c :a #x80) - (new 'static 'rgba :r #x29 :g #x4f :b #x47 :a #x80) - (new 'static 'rgba :r #x2a :g #x52 :b #x50 :a #x80) - (new 'static 'rgba :r #x29 :g #x50 :b #x4b :a #x80) - (new 'static 'rgba :r #x2c :g #x53 :b #x4f :a #x80) - (new 'static 'rgba :r #x2a :g #x51 :b #x4d :a #x80) - (new 'static 'rgba :r #x28 :g #x50 :b #x4e :a #x80) - (new 'static 'rgba :r #x28 :g #x4f :b #x4c :a #x80) - (new 'static 'rgba :r #x29 :g #x50 :b #x4b :a #x80) - (new 'static 'rgba :r #x27 :g #x4e :b #x4d :a #x80) - (new 'static 'rgba :r #x22 :g #x4a :b #x49 :a #x80) - (new 'static 'rgba :r #x19 :g #x43 :b #x43 :a #x80) - (new 'static 'rgba :r #x17 :g #x42 :b #x42 :a #x80) - (new 'static 'rgba :r #x15 :g #x42 :b #x41 :a #x80) - (new 'static 'rgba :r #x13 :g #x41 :b #x41 :a #x80) - (new 'static 'rgba :r #x13 :g #x40 :b #x41 :a #x80) - (new 'static 'rgba :r #x13 :g #x41 :b #x41 :a #x80) - (new 'static 'rgba :r #x13 :g #x42 :b #x41 :a #x80) - (new 'static 'rgba :r #x14 :g #x40 :b #x41 :a #x80) - (new 'static 'rgba :r #x17 :g #x42 :b #x42 :a #x80) - (new 'static 'rgba :r #x18 :g #x44 :b #x44 :a #x80) - (new 'static 'rgba :r #x1d :g #x49 :b #x47 :a #x80) - (new 'static 'rgba :r #x25 :g #x4c :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x4a :b #x49 :a #x80) - (new 'static 'rgba :r #x23 :g #x4c :b #x49 :a #x80) - (new 'static 'rgba :r #x23 :g #x4d :b #x4a :a #x80) - (new 'static 'rgba :r #x23 :g #x4d :b #x4d :a #x80) - (new 'static 'rgba :r #x22 :g #x4f :b #x4d :a #x80) - (new 'static 'rgba :r #x1f :g #x4f :b #x4d :a #x80) - (new 'static 'rgba :r #x1c :g #x51 :b #x4f :a #x80) - (new 'static 'rgba :r #x1c :g #x51 :b #x4f :a #x80) - (new 'static 'rgba :r #x20 :g #x4a :b #x4f :a #x80) - (new 'static 'rgba :r #x23 :g #x40 :b #x4a :a #x80) - (new 'static 'rgba :r #x22 :g #x3a :b #x47 :a #x80) - (new 'static 'rgba :r #x22 :g #x39 :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1c :g #x39 :b #x43 :a #x80) - (new 'static 'rgba :r #x23 :g #x49 :b #x4d :a #x80) - (new 'static 'rgba :r #x2f :g #x59 :b #x53 :a #x80) - (new 'static 'rgba :r #x32 :g #x5a :b #x52 :a #x80) - (new 'static 'rgba :r #x2f :g #x56 :b #x4e :a #x80) - (new 'static 'rgba :r #x2d :g #x52 :b #x4c :a #x80) - (new 'static 'rgba :r #x2b :g #x51 :b #x46 :a #x80) - (new 'static 'rgba :r #x2b :g #x51 :b #x48 :a #x80) - (new 'static 'rgba :r #x2b :g #x52 :b #x4c :a #x80) - (new 'static 'rgba :r #x27 :g #x50 :b #x4c :a #x80) - (new 'static 'rgba :r #x28 :g #x4d :b #x44 :a #x80) - (new 'static 'rgba :r #x26 :g #x4d :b #x49 :a #x80) - (new 'static 'rgba :r #x29 :g #x52 :b #x4e :a #x80) - (new 'static 'rgba :r #x28 :g #x50 :b #x4e :a #x80) - (new 'static 'rgba :r #x26 :g #x4d :b #x4a :a #x80) - (new 'static 'rgba :r #x28 :g #x50 :b #x4d :a #x80) - (new 'static 'rgba :r #x2c :g #x53 :b #x50 :a #x80) - (new 'static 'rgba :r #x2b :g #x53 :b #x4d :a #x80) - (new 'static 'rgba :r #x26 :g #x50 :b #x4e :a #x80) - (new 'static 'rgba :r #x29 :g #x50 :b #x4e :a #x80) - (new 'static 'rgba :r #x2b :g #x50 :b #x4c :a #x80) - (new 'static 'rgba :r #x25 :g #x4d :b #x4a :a #x80) - (new 'static 'rgba :r #x20 :g #x46 :b #x47 :a #x80) - (new 'static 'rgba :r #x1d :g #x47 :b #x46 :a #x80) - (new 'static 'rgba :r #x1b :g #x45 :b #x44 :a #x80) - (new 'static 'rgba :r #x1a :g #x45 :b #x42 :a #x80) - (new 'static 'rgba :r #x1b :g #x44 :b #x45 :a #x80) - (new 'static 'rgba :r #x1b :g #x46 :b #x43 :a #x80) - (new 'static 'rgba :r #x1b :g #x45 :b #x45 :a #x80) - (new 'static 'rgba :r #x1b :g #x46 :b #x45 :a #x80) - (new 'static 'rgba :r #x1c :g #x46 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x4a :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x49 :b #x47 :a #x80) - (new 'static 'rgba :r #x1f :g #x49 :b #x45 :a #x80) - (new 'static 'rgba :r #x21 :g #x4a :b #x48 :a #x80) - (new 'static 'rgba :r #x21 :g #x4a :b #x4a :a #x80) - (new 'static 'rgba :r #x1f :g #x4a :b #x48 :a #x80) - (new 'static 'rgba :r #x1f :g #x4b :b #x4b :a #x80) - (new 'static 'rgba :r #x24 :g #x4f :b #x4e :a #x80) - (new 'static 'rgba :r #x1c :g #x4e :b #x4a :a #x80) - (new 'static 'rgba :r #x1a :g #x4e :b #x49 :a #x80) - (new 'static 'rgba :r #x1b :g #x4c :b #x4c :a #x80) - (new 'static 'rgba :r #x20 :g #x48 :b #x4c :a #x80) - (new 'static 'rgba :r #x23 :g #x3d :b #x4a :a #x80) - (new 'static 'rgba :r #x21 :g #x38 :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1c :g #x3a :b #x45 :a #x80) - (new 'static 'rgba :r #x24 :g #x45 :b #x4c :a #x80) - (new 'static 'rgba :r #x2e :g #x59 :b #x58 :a #x80) - (new 'static 'rgba :r #x33 :g #x5c :b #x59 :a #x80) - (new 'static 'rgba :r #x31 :g #x5a :b #x56 :a #x80) - (new 'static 'rgba :r #x30 :g #x58 :b #x53 :a #x80) - (new 'static 'rgba :r #x2c :g #x54 :b #x4e :a #x80) - (new 'static 'rgba :r #x24 :g #x4d :b #x4a :a #x80) - (new 'static 'rgba :r #x28 :g #x51 :b #x4e :a #x80) - (new 'static 'rgba :r #x22 :g #x4b :b #x49 :a #x80) - (new 'static 'rgba :r #x20 :g #x49 :b #x49 :a #x80) - (new 'static 'rgba :r #x27 :g #x4f :b #x4c :a #x80) - (new 'static 'rgba :r #x25 :g #x4d :b #x4c :a #x80) - (new 'static 'rgba :r #x23 :g #x4b :b #x48 :a #x80) - (new 'static 'rgba :r #x22 :g #x49 :b #x4a :a #x80) - (new 'static 'rgba :r #x1e :g #x48 :b #x47 :a #x80) - (new 'static 'rgba :r #x28 :g #x4f :b #x4d :a #x80) - (new 'static 'rgba :r #x29 :g #x50 :b #x4d :a #x80) - (new 'static 'rgba :r #x23 :g #x4d :b #x48 :a #x80) - (new 'static 'rgba :r #x27 :g #x4e :b #x4c :a #x80) - (new 'static 'rgba :r #x26 :g #x4e :b #x4a :a #x80) - (new 'static 'rgba :r #x28 :g #x4e :b #x4d :a #x80) - (new 'static 'rgba :r #x27 :g #x4e :b #x4b :a #x80) - (new 'static 'rgba :r #x23 :g #x4b :b #x47 :a #x80) - (new 'static 'rgba :r #x21 :g #x49 :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x47 :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x48 :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x4a :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x4a :b #x48 :a #x80) - (new 'static 'rgba :r #x22 :g #x4c :b #x4a :a #x80) - (new 'static 'rgba :r #x25 :g #x4c :b #x46 :a #x80) - (new 'static 'rgba :r #x1c :g #x47 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x49 :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x4a :b #x48 :a #x80) - (new 'static 'rgba :r #x1f :g #x49 :b #x45 :a #x80) - (new 'static 'rgba :r #x1d :g #x48 :b #x45 :a #x80) - (new 'static 'rgba :r #x1e :g #x4a :b #x47 :a #x80) - (new 'static 'rgba :r #x1b :g #x48 :b #x49 :a #x80) - (new 'static 'rgba :r #x1a :g #x4b :b #x47 :a #x80) - (new 'static 'rgba :r #x18 :g #x4d :b #x49 :a #x80) - (new 'static 'rgba :r #x18 :g #x4b :b #x4b :a #x80) - (new 'static 'rgba :r #x1b :g #x46 :b #x4a :a #x80) - (new 'static 'rgba :r #x20 :g #x41 :b #x4b :a #x80) - (new 'static 'rgba :r #x22 :g #x3c :b #x49 :a #x80) - (new 'static 'rgba :r #x21 :g #x37 :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x37 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1b :g #x39 :b #x43 :a #x80) - (new 'static 'rgba :r #x23 :g #x44 :b #x4a :a #x80) - (new 'static 'rgba :r #x2d :g #x55 :b #x57 :a #x80) - (new 'static 'rgba :r #x32 :g #x5b :b #x5a :a #x80) - (new 'static 'rgba :r #x32 :g #x5b :b #x55 :a #x80) - (new 'static 'rgba :r #x30 :g #x57 :b #x55 :a #x80) - (new 'static 'rgba :r #x2d :g #x54 :b #x50 :a #x80) - (new 'static 'rgba :r #x2b :g #x53 :b #x50 :a #x80) - (new 'static 'rgba :r #x29 :g #x52 :b #x4f :a #x80) - (new 'static 'rgba :r #x28 :g #x51 :b #x4c :a #x80) - (new 'static 'rgba :r #x26 :g #x4e :b #x4d :a #x80) - (new 'static 'rgba :r #x21 :g #x4c :b #x47 :a #x80) - (new 'static 'rgba :r #x1e :g #x47 :b #x48 :a #x80) - (new 'static 'rgba :r #x18 :g #x46 :b #x44 :a #x80) - (new 'static 'rgba :r #x23 :g #x4b :b #x49 :a #x80) - (new 'static 'rgba :r #x21 :g #x4a :b #x48 :a #x80) - (new 'static 'rgba :r #x22 :g #x4a :b #x47 :a #x80) - (new 'static 'rgba :r #x25 :g #x4c :b #x4c :a #x80) - (new 'static 'rgba :r #x27 :g #x4e :b #x4d :a #x80) - (new 'static 'rgba :r #x25 :g #x4c :b #x4c :a #x80) - (new 'static 'rgba :r #x20 :g #x47 :b #x48 :a #x80) - (new 'static 'rgba :r #x1e :g #x49 :b #x46 :a #x80) - (new 'static 'rgba :r #x26 :g #x4d :b #x4b :a #x80) - (new 'static 'rgba :r #x24 :g #x4c :b #x4a :a #x80) - (new 'static 'rgba :r #x23 :g #x4b :b #x48 :a #x80) - (new 'static 'rgba :r #x1c :g #x45 :b #x43 :a #x80) - (new 'static 'rgba :r #x24 :g #x4d :b #x49 :a #x80) - (new 'static 'rgba :r #x26 :g #x4d :b #x49 :a #x80) - (new 'static 'rgba :r #x26 :g #x4f :b #x4b :a #x80) - (new 'static 'rgba :r #x25 :g #x4e :b #x4c :a #x80) - (new 'static 'rgba :r #x1d :g #x47 :b #x48 :a #x80) - (new 'static 'rgba :r #x23 :g #x4b :b #x4a :a #x80) - (new 'static 'rgba :r #x22 :g #x4a :b #x48 :a #x80) - (new 'static 'rgba :r #x1a :g #x46 :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x48 :b #x47 :a #x80) - (new 'static 'rgba :r #x1d :g #x47 :b #x47 :a #x80) - (new 'static 'rgba :r #x1c :g #x47 :b #x47 :a #x80) - (new 'static 'rgba :r #x19 :g #x47 :b #x47 :a #x80) - (new 'static 'rgba :r #x17 :g #x4a :b #x46 :a #x80) - (new 'static 'rgba :r #x16 :g #x4b :b #x48 :a #x80) - (new 'static 'rgba :r #x17 :g #x4a :b #x4a :a #x80) - (new 'static 'rgba :r #x1c :g #x45 :b #x49 :a #x80) - (new 'static 'rgba :r #x20 :g #x40 :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x39 :b #x46 :a #x80) - (new 'static 'rgba :r #x26 :g #x52 :b #x54 :a #x80) - (new 'static 'rgba :r #x21 :g #x38 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1c :g #x3a :b #x44 :a #x80) - (new 'static 'rgba :r #x22 :g #x45 :b #x4b :a #x80) - (new 'static 'rgba :r #x2e :g #x56 :b #x54 :a #x80) - (new 'static 'rgba :r #x34 :g #x5d :b #x5a :a #x80) - (new 'static 'rgba :r #x32 :g #x5a :b #x55 :a #x80) - (new 'static 'rgba :r #x2f :g #x56 :b #x52 :a #x80) - (new 'static 'rgba :r #x2b :g #x53 :b #x4f :a #x80) - (new 'static 'rgba :r #x29 :g #x50 :b #x4f :a #x80) - (new 'static 'rgba :r #x24 :g #x4d :b #x49 :a #x80) - (new 'static 'rgba :r #x1b :g #x48 :b #x44 :a #x80) - (new 'static 'rgba :r #x23 :g #x4c :b #x49 :a #x80) - (new 'static 'rgba :r #x21 :g #x49 :b #x49 :a #x80) - (new 'static 'rgba :r #x1e :g #x45 :b #x46 :a #x80) - (new 'static 'rgba :r #x1e :g #x47 :b #x44 :a #x80) - (new 'static 'rgba :r #x1a :g #x46 :b #x44 :a #x80) - (new 'static 'rgba :r #x15 :g #x42 :b #x42 :a #x80) - (new 'static 'rgba :r #x1b :g #x44 :b #x45 :a #x80) - (new 'static 'rgba :r #x1c :g #x46 :b #x46 :a #x80) - (new 'static 'rgba :r #x1e :g #x47 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x48 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x47 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x47 :b #x45 :a #x80) - (new 'static 'rgba :r #x21 :g #x4a :b #x49 :a #x80) - (new 'static 'rgba :r #x1e :g #x46 :b #x47 :a #x80) - (new 'static 'rgba :r #x1e :g #x47 :b #x44 :a #x80) - (new 'static 'rgba :r #x24 :g #x4b :b #x4b :a #x80) - (new 'static 'rgba :r #x27 :g #x4f :b #x4e :a #x80) - (new 'static 'rgba :r #x2b :g #x51 :b #x50 :a #x80) - (new 'static 'rgba :r #x2b :g #x51 :b #x50 :a #x80) - (new 'static 'rgba :r #x2b :g #x52 :b #x51 :a #x80) - (new 'static 'rgba :r #x29 :g #x50 :b #x4e :a #x80) - (new 'static 'rgba :r #x23 :g #x4b :b #x4a :a #x80) - (new 'static 'rgba :r #x1d :g #x47 :b #x47 :a #x80) - (new 'static 'rgba :r #x18 :g #x43 :b #x44 :a #x80) - (new 'static 'rgba :r #x19 :g #x45 :b #x43 :a #x80) - (new 'static 'rgba :r #x1b :g #x46 :b #x43 :a #x80) - (new 'static 'rgba :r #x1c :g #x47 :b #x44 :a #x80) - (new 'static 'rgba :r #x18 :g #x46 :b #x46 :a #x80) - (new 'static 'rgba :r #x15 :g #x48 :b #x44 :a #x80) - (new 'static 'rgba :r #x14 :g #x4a :b #x47 :a #x80) - (new 'static 'rgba :r #x17 :g #x49 :b #x4b :a #x80) - (new 'static 'rgba :r #x1a :g #x45 :b #x48 :a #x80) - (new 'static 'rgba :r #x1f :g #x3f :b #x48 :a #x80) - (new 'static 'rgba :r #x1f :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x22 :g #x35 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1e :g #x3c :b #x46 :a #x80) - (new 'static 'rgba :r #x26 :g #x4a :b #x4f :a #x80) - (new 'static 'rgba :r #x30 :g #x59 :b #x58 :a #x80) - (new 'static 'rgba :r #x35 :g #x5c :b #x58 :a #x80) - (new 'static 'rgba :r #x31 :g #x59 :b #x56 :a #x80) - (new 'static 'rgba :r #x2f :g #x55 :b #x51 :a #x80) - (new 'static 'rgba :r #x32 :g #x56 :b #x52 :a #x80) - (new 'static 'rgba :r #x2b :g #x51 :b #x4d :a #x80) - (new 'static 'rgba :r #x28 :g #x4f :b #x4b :a #x80) - (new 'static 'rgba :r #x23 :g #x4c :b #x4b :a #x80) - (new 'static 'rgba :r #x22 :g #x48 :b #x49 :a #x80) - (new 'static 'rgba :r #x20 :g #x49 :b #x47 :a #x80) - (new 'static 'rgba :r #x1a :g #x45 :b #x42 :a #x80) - (new 'static 'rgba :r #x15 :g #x42 :b #x40 :a #x80) - (new 'static 'rgba :r #x15 :g #x42 :b #x41 :a #x80) - (new 'static 'rgba :r #x15 :g #x41 :b #x41 :a #x80) - (new 'static 'rgba :r #x1d :g #x47 :b #x45 :a #x80) - (new 'static 'rgba :r #x16 :g #x42 :b #x42 :a #x80) - (new 'static 'rgba :r #x18 :g #x44 :b #x42 :a #x80) - (new 'static 'rgba :r #x19 :g #x44 :b #x44 :a #x80) - (new 'static 'rgba :r #x1a :g #x45 :b #x42 :a #x80) - (new 'static 'rgba :r #x1c :g #x45 :b #x43 :a #x80) - (new 'static 'rgba :r #x1d :g #x46 :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x47 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x49 :b #x48 :a #x80) - (new 'static 'rgba :r #x22 :g #x4b :b #x48 :a #x80) - (new 'static 'rgba :r #x24 :g #x4c :b #x49 :a #x80) - (new 'static 'rgba :r #x26 :g #x4e :b #x4e :a #x80) - (new 'static 'rgba :r #x29 :g #x51 :b #x4e :a #x80) - (new 'static 'rgba :r #x27 :g #x50 :b #x4d :a #x80) - (new 'static 'rgba :r #x26 :g #x4d :b #x4e :a #x80) - (new 'static 'rgba :r #x25 :g #x4c :b #x4a :a #x80) - (new 'static 'rgba :r #x1f :g #x47 :b #x48 :a #x80) - (new 'static 'rgba :r #x18 :g #x44 :b #x42 :a #x80) - (new 'static 'rgba :r #x19 :g #x45 :b #x42 :a #x80) - (new 'static 'rgba :r #x1b :g #x46 :b #x44 :a #x80) - (new 'static 'rgba :r #x1b :g #x46 :b #x46 :a #x80) - (new 'static 'rgba :r #x19 :g #x46 :b #x47 :a #x80) - (new 'static 'rgba :r #x15 :g #x48 :b #x44 :a #x80) - (new 'static 'rgba :r #x14 :g #x48 :b #x47 :a #x80) - (new 'static 'rgba :r #x15 :g #x48 :b #x48 :a #x80) - (new 'static 'rgba :r #x1a :g #x46 :b #x48 :a #x80) - (new 'static 'rgba :r #x1f :g #x43 :b #x4a :a #x80) - (new 'static 'rgba :r #x21 :g #x3b :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x37 :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x23 :g #x46 :b #x4a :a #x80) - (new 'static 'rgba :r #x2f :g #x56 :b #x58 :a #x80) - (new 'static 'rgba :r #x34 :g #x5d :b #x5b :a #x80) - (new 'static 'rgba :r #x33 :g #x5b :b #x56 :a #x80) - (new 'static 'rgba :r #x31 :g #x58 :b #x57 :a #x80) - (new 'static 'rgba :r #x31 :g #x57 :b #x53 :a #x80) - (new 'static 'rgba :r #x33 :g #x58 :b #x55 :a #x80) - (new 'static 'rgba :r #x28 :g #x4f :b #x4d :a #x80) - (new 'static 'rgba :r #x24 :g #x4c :b #x4a :a #x80) - (new 'static 'rgba :r #x21 :g #x49 :b #x49 :a #x80) - (new 'static 'rgba :r #x1e :g #x47 :b #x46 :a #x80) - (new 'static 'rgba :r #x1c :g #x46 :b #x46 :a #x80) - (new 'static 'rgba :r #x18 :g #x45 :b #x44 :a #x80) - (new 'static 'rgba :r #x13 :g #x42 :b #x42 :a #x80) - (new 'static 'rgba :r #x12 :g #x43 :b #x41 :a #x80) - (new 'static 'rgba :r #x12 :g #x43 :b #x41 :a #x80) - (new 'static 'rgba :r #x10 :g #x40 :b #x40 :a #x80) - (new 'static 'rgba :r #x12 :g #x42 :b #x3f :a #x80) - (new 'static 'rgba :r #x15 :g #x44 :b #x43 :a #x80) - (new 'static 'rgba :r #x19 :g #x45 :b #x42 :a #x80) - (new 'static 'rgba :r #x13 :g #x42 :b #x3e :a #x80) - (new 'static 'rgba :r #x15 :g #x43 :b #x42 :a #x80) - (new 'static 'rgba :r #x19 :g #x43 :b #x44 :a #x80) - (new 'static 'rgba :r #x1b :g #x45 :b #x43 :a #x80) - (new 'static 'rgba :r #x1c :g #x46 :b #x44 :a #x80) - (new 'static 'rgba :r #x21 :g #x4a :b #x48 :a #x80) - (new 'static 'rgba :r #x1d :g #x47 :b #x45 :a #x80) - (new 'static 'rgba :r #x26 :g #x4e :b #x4b :a #x80) - (new 'static 'rgba :r #x28 :g #x50 :b #x4d :a #x80) - (new 'static 'rgba :r #x24 :g #x4d :b #x4a :a #x80) - (new 'static 'rgba :r #x25 :g #x4c :b #x4b :a #x80) - (new 'static 'rgba :r #x28 :g #x4e :b #x4f :a #x80) - (new 'static 'rgba :r #x23 :g #x4b :b #x4a :a #x80) - (new 'static 'rgba :r #x1f :g #x48 :b #x48 :a #x80) - (new 'static 'rgba :r #x1e :g #x48 :b #x45 :a #x80) - (new 'static 'rgba :r #x1b :g #x46 :b #x43 :a #x80) - (new 'static 'rgba :r #x1b :g #x45 :b #x46 :a #x80) - (new 'static 'rgba :r #x18 :g #x47 :b #x46 :a #x80) - (new 'static 'rgba :r #x18 :g #x48 :b #x46 :a #x80) - (new 'static 'rgba :r #x15 :g #x48 :b #x43 :a #x80) - (new 'static 'rgba :r #x15 :g #x4a :b #x48 :a #x80) - (new 'static 'rgba :r #x18 :g #x49 :b #x4a :a #x80) - (new 'static 'rgba :r #x1d :g #x43 :b #x4b :a #x80) - (new 'static 'rgba :r #x20 :g #x3c :b #x47 :a #x80) - (new 'static 'rgba :r #x1f :g #x38 :b #x44 :a #x80) - (new 'static 'rgba :r #x21 :g #x38 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x27 :g #x48 :b #x4e :a #x80) - (new 'static 'rgba :r #x38 :g #x60 :b #x5e :a #x80) - (new 'static 'rgba :r #x38 :g #x60 :b #x5c :a #x80) - (new 'static 'rgba :r #x36 :g #x5d :b #x5a :a #x80) - (new 'static 'rgba :r #x30 :g #x57 :b #x55 :a #x80) - (new 'static 'rgba :r #x32 :g #x58 :b #x54 :a #x80) - (new 'static 'rgba :r #x24 :g #x4e :b #x4b :a #x80) - (new 'static 'rgba :r #x26 :g #x4e :b #x4e :a #x80) - (new 'static 'rgba :r #x22 :g #x4a :b #x4b :a #x80) - (new 'static 'rgba :r #x1d :g #x48 :b #x47 :a #x80) - (new 'static 'rgba :r #x18 :g #x44 :b #x44 :a #x80) - (new 'static 'rgba :r #x15 :g #x43 :b #x43 :a #x80) - (new 'static 'rgba :r #x17 :g #x46 :b #x45 :a #x80) - (new 'static 'rgba :r #xe :g #x41 :b #x40 :a #x80) - (new 'static 'rgba :r #xe :g #x41 :b #x3d :a #x80) - (new 'static 'rgba :r #xd :g #x40 :b #x3f :a #x80) - (new 'static 'rgba :r #xc :g #x41 :b #x3f :a #x80) - (new 'static 'rgba :r #xe :g #x40 :b #x40 :a #x80) - (new 'static 'rgba :r #xf :g #x41 :b #x40 :a #x80) - (new 'static 'rgba :r #xf :g #x41 :b #x3f :a #x80) - (new 'static 'rgba :r #xf :g #x41 :b #x3d :a #x80) - (new 'static 'rgba :r #x10 :g #x41 :b #x40 :a #x80) - (new 'static 'rgba :r #x13 :g #x43 :b #x3f :a #x80) - (new 'static 'rgba :r #x17 :g #x43 :b #x43 :a #x80) - (new 'static 'rgba :r #x1a :g #x43 :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x47 :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x49 :b #x49 :a #x80) - (new 'static 'rgba :r #x1f :g #x48 :b #x45 :a #x80) - (new 'static 'rgba :r #x22 :g #x4b :b #x4a :a #x80) - (new 'static 'rgba :r #x20 :g #x4a :b #x47 :a #x80) - (new 'static 'rgba :r #x25 :g #x4c :b #x4b :a #x80) - (new 'static 'rgba :r #x23 :g #x4a :b #x4a :a #x80) - (new 'static 'rgba :r #x21 :g #x4a :b #x48 :a #x80) - (new 'static 'rgba :r #x1b :g #x46 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x49 :b #x48 :a #x80) - (new 'static 'rgba :r #x1d :g #x48 :b #x44 :a #x80) - (new 'static 'rgba :r #x1d :g #x48 :b #x46 :a #x80) - (new 'static 'rgba :r #x1b :g #x47 :b #x45 :a #x80) - (new 'static 'rgba :r #x1b :g #x49 :b #x47 :a #x80) - (new 'static 'rgba :r #x1a :g #x4a :b #x46 :a #x80) - (new 'static 'rgba :r #x18 :g #x4c :b #x49 :a #x80) - (new 'static 'rgba :r #x19 :g #x4b :b #x4b :a #x80) - (new 'static 'rgba :r #x1c :g #x49 :b #x4b :a #x80) - (new 'static 'rgba :r #x21 :g #x42 :b #x49 :a #x80) - (new 'static 'rgba :r #x20 :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x29 :g #x4a :b #x4f :a #x80) - (new 'static 'rgba :r #x38 :g #x61 :b #x5c :a #x80) - (new 'static 'rgba :r #x38 :g #x5f :b #x5a :a #x80) - (new 'static 'rgba :r #x35 :g #x5d :b #x5a :a #x80) - (new 'static 'rgba :r #x26 :g #x52 :b #x4e :a #x80) - (new 'static 'rgba :r #x2d :g #x55 :b #x51 :a #x80) - (new 'static 'rgba :r #x28 :g #x51 :b #x50 :a #x80) - (new 'static 'rgba :r #x23 :g #x4c :b #x4a :a #x80) - (new 'static 'rgba :r #x1e :g #x49 :b #x48 :a #x80) - (new 'static 'rgba :r #x18 :g #x46 :b #x43 :a #x80) - (new 'static 'rgba :r #x12 :g #x44 :b #x42 :a #x80) - (new 'static 'rgba :r #xf :g #x42 :b #x42 :a #x80) - (new 'static 'rgba :r #xc :g #x41 :b #x3f :a #x80) - (new 'static 'rgba :r #xd :g #x40 :b #x3e :a #x80) - (new 'static 'rgba :r #xe :g #x3f :b #x3f :a #x80) - (new 'static 'rgba :r #xd :g #x3c :b #x3e :a #x80) - (new 'static 'rgba :r #xc :g #x3e :b #x3d :a #x80) - (new 'static 'rgba :r #x1e :g #x4a :b #x45 :a #x80) - (new 'static 'rgba :r #xc :g #x3f :b #x40 :a #x80) - (new 'static 'rgba :r #xd :g #x41 :b #x3e :a #x80) - (new 'static 'rgba :r #xf :g #x41 :b #x40 :a #x80) - (new 'static 'rgba :r #xe :g #x41 :b #x40 :a #x80) - (new 'static 'rgba :r #x11 :g #x41 :b #x42 :a #x80) - (new 'static 'rgba :r #x15 :g #x43 :b #x43 :a #x80) - (new 'static 'rgba :r #x17 :g #x43 :b #x42 :a #x80) - (new 'static 'rgba :r #x1c :g #x46 :b #x45 :a #x80) - (new 'static 'rgba :r #x1d :g #x47 :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x48 :b #x49 :a #x80) - (new 'static 'rgba :r #x22 :g #x4b :b #x4a :a #x80) - (new 'static 'rgba :r #x24 :g #x4c :b #x4b :a #x80) - (new 'static 'rgba :r #x24 :g #x4c :b #x4b :a #x80) - (new 'static 'rgba :r #x22 :g #x49 :b #x4a :a #x80) - (new 'static 'rgba :r #x25 :g #x4c :b #x4c :a #x80) - (new 'static 'rgba :r #x22 :g #x4a :b #x4a :a #x80) - (new 'static 'rgba :r #x20 :g #x49 :b #x49 :a #x80) - (new 'static 'rgba :r #x20 :g #x4b :b #x46 :a #x80) - (new 'static 'rgba :r #x1f :g #x4b :b #x48 :a #x80) - (new 'static 'rgba :r #x1f :g #x4a :b #x48 :a #x80) - (new 'static 'rgba :r #x1f :g #x4a :b #x49 :a #x80) - (new 'static 'rgba :r #x1f :g #x4d :b #x4c :a #x80) - (new 'static 'rgba :r #x1e :g #x4f :b #x4b :a #x80) - (new 'static 'rgba :r #x1d :g #x50 :b #x4c :a #x80) - (new 'static 'rgba :r #x1c :g #x4c :b #x4e :a #x80) - (new 'static 'rgba :r #x1e :g #x46 :b #x4b :a #x80) - (new 'static 'rgba :r #x20 :g #x3c :b #x47 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x36 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x25 :g #x49 :b #x4e :a #x80) - (new 'static 'rgba :r #x2f :g #x5c :b #x5a :a #x80) - (new 'static 'rgba :r #x32 :g #x5b :b #x5a :a #x80) - (new 'static 'rgba :r #x33 :g #x5b :b #x5a :a #x80) - (new 'static 'rgba :r #x30 :g #x58 :b #x56 :a #x80) - (new 'static 'rgba :r #x29 :g #x52 :b #x4f :a #x80) - (new 'static 'rgba :r #x22 :g #x4b :b #x4c :a #x80) - (new 'static 'rgba :r #x1d :g #x49 :b #x49 :a #x80) - (new 'static 'rgba :r #x19 :g #x49 :b #x46 :a #x80) - (new 'static 'rgba :r #x15 :g #x46 :b #x45 :a #x80) - (new 'static 'rgba :r #x11 :g #x46 :b #x41 :a #x80) - (new 'static 'rgba :r #xe :g #x42 :b #x41 :a #x80) - (new 'static 'rgba :r #xe :g #x40 :b #x40 :a #x80) - (new 'static 'rgba :r #x10 :g #x3d :b #x41 :a #x80) - (new 'static 'rgba :r #x11 :g #x38 :b #x3f :a #x80) - (new 'static 'rgba :r #x11 :g #x39 :b #x3e :a #x80) - (new 'static 'rgba :r #x10 :g #x3c :b #x3e :a #x80) - (new 'static 'rgba :r #x10 :g #x3c :b #x40 :a #x80) - (new 'static 'rgba :r #xf :g #x41 :b #x3f :a #x80) - (new 'static 'rgba :r #xe :g #x40 :b #x41 :a #x80) - (new 'static 'rgba :r #xe :g #x42 :b #x3f :a #x80) - (new 'static 'rgba :r #xf :g #x43 :b #x3f :a #x80) - (new 'static 'rgba :r #x11 :g #x44 :b #x3f :a #x80) - (new 'static 'rgba :r #x14 :g #x45 :b #x42 :a #x80) - (new 'static 'rgba :r #x16 :g #x45 :b #x43 :a #x80) - (new 'static 'rgba :r #x1b :g #x46 :b #x46 :a #x80) - (new 'static 'rgba :r #x1e :g #x46 :b #x47 :a #x80) - (new 'static 'rgba :r #x21 :g #x4b :b #x4a :a #x80) - (new 'static 'rgba :r #x22 :g #x4b :b #x4a :a #x80) - (new 'static 'rgba :r #x20 :g #x4a :b #x47 :a #x80) - (new 'static 'rgba :r #x1e :g #x49 :b #x48 :a #x80) - (new 'static 'rgba :r #x24 :g #x4c :b #x4a :a #x80) - (new 'static 'rgba :r #x24 :g #x4d :b #x4b :a #x80) - (new 'static 'rgba :r #x1f :g #x48 :b #x47 :a #x80) - (new 'static 'rgba :r #x23 :g #x4c :b #x49 :a #x80) - (new 'static 'rgba :r #x21 :g #x4b :b #x48 :a #x80) - (new 'static 'rgba :r #x22 :g #x4b :b #x49 :a #x80) - (new 'static 'rgba :r #x23 :g #x4d :b #x4b :a #x80) - (new 'static 'rgba :r #x23 :g #x4e :b #x4e :a #x80) - (new 'static 'rgba :r #x24 :g #x50 :b #x4c :a #x80) - (new 'static 'rgba :r #x25 :g #x50 :b #x51 :a #x80) - (new 'static 'rgba :r #x24 :g #x52 :b #x4f :a #x80) - (new 'static 'rgba :r #x1e :g #x51 :b #x4f :a #x80) - (new 'static 'rgba :r #x1e :g #x49 :b #x4d :a #x80) - (new 'static 'rgba :r #x1f :g #x39 :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x22 :g #x46 :b #x4c :a #x80) - (new 'static 'rgba :r #x28 :g #x59 :b #x57 :a #x80) - (new 'static 'rgba :r #x29 :g #x58 :b #x54 :a #x80) - (new 'static 'rgba :r #x29 :g #x56 :b #x53 :a #x80) - (new 'static 'rgba :r #x27 :g #x53 :b #x4f :a #x80) - (new 'static 'rgba :r #x21 :g #x4e :b #x4e :a #x80) - (new 'static 'rgba :r #x1a :g #x4a :b #x48 :a #x80) - (new 'static 'rgba :r #x18 :g #x49 :b #x46 :a #x80) - (new 'static 'rgba :r #x15 :g #x48 :b #x47 :a #x80) - (new 'static 'rgba :r #x12 :g #x46 :b #x42 :a #x80) - (new 'static 'rgba :r #x11 :g #x44 :b #x44 :a #x80) - (new 'static 'rgba :r #x12 :g #x41 :b #x41 :a #x80) - (new 'static 'rgba :r #x13 :g #x38 :b #x40 :a #x80) - (new 'static 'rgba :r #x16 :g #x37 :b #x40 :a #x80) - (new 'static 'rgba :r #x16 :g #x36 :b #x3f :a #x80) - (new 'static 'rgba :r #x16 :g #x34 :b #x3e :a #x80) - (new 'static 'rgba :r #x16 :g #x39 :b #x3f :a #x80) - (new 'static 'rgba :r #x14 :g #x3a :b #x40 :a #x80) - (new 'static 'rgba :r #x13 :g #x3d :b #x41 :a #x80) - (new 'static 'rgba :r #x11 :g #x3f :b #x42 :a #x80) - (new 'static 'rgba :r #xf :g #x41 :b #x41 :a #x80) - (new 'static 'rgba :r #x10 :g #x42 :b #x43 :a #x80) - (new 'static 'rgba :r #x10 :g #x45 :b #x40 :a #x80) - (new 'static 'rgba :r #x24 :g #x4f :b #x48 :a #x80) - (new 'static 'rgba :r #x15 :g #x47 :b #x43 :a #x80) - (new 'static 'rgba :r #x19 :g #x48 :b #x45 :a #x80) - (new 'static 'rgba :r #x1c :g #x47 :b #x47 :a #x80) - (new 'static 'rgba :r #x1f :g #x4a :b #x4a :a #x80) - (new 'static 'rgba :r #x21 :g #x4b :b #x49 :a #x80) - (new 'static 'rgba :r #x22 :g #x4b :b #x4b :a #x80) - (new 'static 'rgba :r #x25 :g #x4d :b #x4b :a #x80) - (new 'static 'rgba :r #x25 :g #x4d :b #x4c :a #x80) - (new 'static 'rgba :r #x24 :g #x4c :b #x4d :a #x80) - (new 'static 'rgba :r #x25 :g #x4e :b #x4c :a #x80) - (new 'static 'rgba :r #x22 :g #x4b :b #x4b :a #x80) - (new 'static 'rgba :r #x25 :g #x4e :b #x4e :a #x80) - (new 'static 'rgba :r #x27 :g #x4f :b #x4d :a #x80) - (new 'static 'rgba :r #x27 :g #x51 :b #x4d :a #x80) - (new 'static 'rgba :r #x28 :g #x52 :b #x4f :a #x80) - (new 'static 'rgba :r #x2a :g #x54 :b #x50 :a #x80) - (new 'static 'rgba :r #x2a :g #x54 :b #x54 :a #x80) - (new 'static 'rgba :r #x29 :g #x54 :b #x54 :a #x80) - (new 'static 'rgba :r #x22 :g #x54 :b #x53 :a #x80) - (new 'static 'rgba :r #x1f :g #x4c :b #x4f :a #x80) - (new 'static 'rgba :r #x21 :g #x3c :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x39 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x21 :g #x47 :b #x4b :a #x80) - (new 'static 'rgba :r #x25 :g #x55 :b #x54 :a #x80) - (new 'static 'rgba :r #x22 :g #x54 :b #x51 :a #x80) - (new 'static 'rgba :r #x21 :g #x51 :b #x51 :a #x80) - (new 'static 'rgba :r #x1e :g #x4d :b #x4b :a #x80) - (new 'static 'rgba :r #x19 :g #x4b :b #x49 :a #x80) - (new 'static 'rgba :r #x17 :g #x4a :b #x48 :a #x80) - (new 'static 'rgba :r #x14 :g #x46 :b #x46 :a #x80) - (new 'static 'rgba :r #x14 :g #x46 :b #x43 :a #x80) - (new 'static 'rgba :r #x13 :g #x45 :b #x46 :a #x80) - (new 'static 'rgba :r #x15 :g #x3f :b #x43 :a #x80) - (new 'static 'rgba :r #x17 :g #x3c :b #x41 :a #x80) - (new 'static 'rgba :r #x19 :g #x36 :b #x41 :a #x80) - (new 'static 'rgba :r #x19 :g #x33 :b #x40 :a #x80) - (new 'static 'rgba :r #x18 :g #x32 :b #x40 :a #x80) - (new 'static 'rgba :r #x19 :g #x33 :b #x40 :a #x80) - (new 'static 'rgba :r #x19 :g #x36 :b #x42 :a #x80) - (new 'static 'rgba :r #x1a :g #x3a :b #x43 :a #x80) - (new 'static 'rgba :r #x19 :g #x3a :b #x42 :a #x80) - (new 'static 'rgba :r #x16 :g #x3f :b #x43 :a #x80) - (new 'static 'rgba :r #x14 :g #x41 :b #x44 :a #x80) - (new 'static 'rgba :r #x12 :g #x41 :b #x45 :a #x80) - (new 'static 'rgba :r #x12 :g #x46 :b #x45 :a #x80) - (new 'static 'rgba :r #x14 :g #x48 :b #x46 :a #x80) - (new 'static 'rgba :r #x15 :g #x47 :b #x47 :a #x80) - (new 'static 'rgba :r #x19 :g #x4a :b #x47 :a #x80) - (new 'static 'rgba :r #x1d :g #x4a :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x4a :b #x4a :a #x80) - (new 'static 'rgba :r #x23 :g #x4c :b #x4d :a #x80) - (new 'static 'rgba :r #x24 :g #x4c :b #x4e :a #x80) - (new 'static 'rgba :r #x25 :g #x4f :b #x4d :a #x80) - (new 'static 'rgba :r #x23 :g #x4e :b #x4c :a #x80) - (new 'static 'rgba :r #x1e :g #x49 :b #x4a :a #x80) - (new 'static 'rgba :r #x26 :g #x50 :b #x4d :a #x80) - (new 'static 'rgba :r #x28 :g #x4f :b #x50 :a #x80) - (new 'static 'rgba :r #x28 :g #x50 :b #x4e :a #x80) - (new 'static 'rgba :r #x26 :g #x4e :b #x4f :a #x80) - (new 'static 'rgba :r #x2c :g #x54 :b #x52 :a #x80) - (new 'static 'rgba :r #x2b :g #x55 :b #x51 :a #x80) - (new 'static 'rgba :r #x2d :g #x57 :b #x55 :a #x80) - (new 'static 'rgba :r #x2d :g #x59 :b #x57 :a #x80) - (new 'static 'rgba :r #x2b :g #x57 :b #x54 :a #x80) - (new 'static 'rgba :r #x24 :g #x55 :b #x52 :a #x80) - (new 'static 'rgba :r #x20 :g #x4d :b #x50 :a #x80) - (new 'static 'rgba :r #x21 :g #x3e :b #x49 :a #x80) - (new 'static 'rgba :r #x21 :g #x37 :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1e :g #x3f :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x4b :b #x50 :a #x80) - (new 'static 'rgba :r #x20 :g #x53 :b #x51 :a #x80) - (new 'static 'rgba :r #x1e :g #x52 :b #x51 :a #x80) - (new 'static 'rgba :r #x1b :g #x4f :b #x4a :a #x80) - (new 'static 'rgba :r #x18 :g #x4b :b #x48 :a #x80) - (new 'static 'rgba :r #x16 :g #x47 :b #x48 :a #x80) - (new 'static 'rgba :r #x14 :g #x44 :b #x45 :a #x80) - (new 'static 'rgba :r #x15 :g #x44 :b #x47 :a #x80) - (new 'static 'rgba :r #x17 :g #x41 :b #x45 :a #x80) - (new 'static 'rgba :r #x1a :g #x3b :b #x44 :a #x80) - (new 'static 'rgba :r #x1c :g #x44 :b #x48 :a #x80) - (new 'static 'rgba :r #x1d :g #x46 :b #x4a :a #x80) - (new 'static 'rgba :r #x1b :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x1b :g #x31 :b #x40 :a #x80) - (new 'static 'rgba :r #x1b :g #x36 :b #x41 :a #x80) - (new 'static 'rgba :r #x1c :g #x37 :b #x43 :a #x80) - (new 'static 'rgba :r #x1c :g #x39 :b #x44 :a #x80) - (new 'static 'rgba :r #x1c :g #x3a :b #x45 :a #x80) - (new 'static 'rgba :r #x1b :g #x3e :b #x45 :a #x80) - (new 'static 'rgba :r #x19 :g #x3f :b #x45 :a #x80) - (new 'static 'rgba :r #x17 :g #x40 :b #x46 :a #x80) - (new 'static 'rgba :r #x15 :g #x46 :b #x48 :a #x80) - (new 'static 'rgba :r #x14 :g #x48 :b #x46 :a #x80) - (new 'static 'rgba :r #x17 :g #x4a :b #x48 :a #x80) - (new 'static 'rgba :r #x1a :g #x4c :b #x4a :a #x80) - (new 'static 'rgba :r #x1e :g #x4d :b #x4a :a #x80) - (new 'static 'rgba :r #x21 :g #x4d :b #x4a :a #x80) - (new 'static 'rgba :r #x23 :g #x4d :b #x4c :a #x80) - (new 'static 'rgba :r #x24 :g #x4f :b #x4d :a #x80) - (new 'static 'rgba :r #x26 :g #x50 :b #x4f :a #x80) - (new 'static 'rgba :r #x24 :g #x4e :b #x4f :a #x80) - (new 'static 'rgba :r #x27 :g #x51 :b #x50 :a #x80) - (new 'static 'rgba :r #x28 :g #x50 :b #x51 :a #x80) - (new 'static 'rgba :r #x29 :g #x52 :b #x51 :a #x80) - (new 'static 'rgba :r #x29 :g #x52 :b #x52 :a #x80) - (new 'static 'rgba :r #x2d :g #x56 :b #x53 :a #x80) - (new 'static 'rgba :r #x2b :g #x55 :b #x55 :a #x80) - (new 'static 'rgba :r #x2c :g #x55 :b #x52 :a #x80) - (new 'static 'rgba :r #x30 :g #x59 :b #x58 :a #x80) - (new 'static 'rgba :r #x2f :g #x58 :b #x59 :a #x80) - (new 'static 'rgba :r #x2a :g #x57 :b #x57 :a #x80) - (new 'static 'rgba :r #x23 :g #x56 :b #x51 :a #x80) - (new 'static 'rgba :r #x21 :g #x4e :b #x51 :a #x80) - (new 'static 'rgba :r #x23 :g #x3f :b #x4a :a #x80) - (new 'static 'rgba :r #x21 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1c :g #x39 :b #x41 :a #x80) - (new 'static 'rgba :r #x1e :g #x3e :b #x47 :a #x80) - (new 'static 'rgba :r #x1f :g #x46 :b #x4c :a #x80) - (new 'static 'rgba :r #x1c :g #x4e :b #x4d :a #x80) - (new 'static 'rgba :r #x1b :g #x4e :b #x4a :a #x80) - (new 'static 'rgba :r #x19 :g #x49 :b #x4b :a #x80) - (new 'static 'rgba :r #x17 :g #x46 :b #x47 :a #x80) - (new 'static 'rgba :r #x18 :g #x43 :b #x47 :a #x80) - (new 'static 'rgba :r #x1a :g #x42 :b #x48 :a #x80) - (new 'static 'rgba :r #x1c :g #x3f :b #x46 :a #x80) - (new 'static 'rgba :r #x1c :g #x3a :b #x44 :a #x80) - (new 'static 'rgba :r #x1d :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x1d :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1e :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1e :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1e :g #x37 :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x38 :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x1e :g #x3c :b #x46 :a #x80) - (new 'static 'rgba :r #x1e :g #x3e :b #x47 :a #x80) - (new 'static 'rgba :r #x1b :g #x42 :b #x49 :a #x80) - (new 'static 'rgba :r #x18 :g #x46 :b #x4a :a #x80) - (new 'static 'rgba :r #x18 :g #x4b :b #x4b :a #x80) - (new 'static 'rgba :r #x18 :g #x4d :b #x4a :a #x80) - (new 'static 'rgba :r #x1b :g #x4f :b #x4d :a #x80) - (new 'static 'rgba :r #x1e :g #x50 :b #x4d :a #x80) - (new 'static 'rgba :r #x20 :g #x50 :b #x4d :a #x80) - (new 'static 'rgba :r #x21 :g #x50 :b #x4e :a #x80) - (new 'static 'rgba :r #x22 :g #x50 :b #x4c :a #x80) - (new 'static 'rgba :r #x24 :g #x51 :b #x4f :a #x80) - (new 'static 'rgba :r #x27 :g #x52 :b #x52 :a #x80) - (new 'static 'rgba :r #x26 :g #x52 :b #x50 :a #x80) - (new 'static 'rgba :r #x26 :g #x52 :b #x52 :a #x80) - (new 'static 'rgba :r #x28 :g #x53 :b #x53 :a #x80) - (new 'static 'rgba :r #x29 :g #x55 :b #x50 :a #x80) - (new 'static 'rgba :r #x2b :g #x56 :b #x52 :a #x80) - (new 'static 'rgba :r #x2c :g #x58 :b #x56 :a #x80) - (new 'static 'rgba :r #x2c :g #x58 :b #x55 :a #x80) - (new 'static 'rgba :r #x2e :g #x58 :b #x58 :a #x80) - (new 'static 'rgba :r #x2c :g #x59 :b #x59 :a #x80) - (new 'static 'rgba :r #x26 :g #x58 :b #x52 :a #x80) - (new 'static 'rgba :r #x22 :g #x56 :b #x52 :a #x80) - (new 'static 'rgba :r #x22 :g #x4c :b #x4f :a #x80) - (new 'static 'rgba :r #x22 :g #x3c :b #x49 :a #x80) - (new 'static 'rgba :r #x21 :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1a :g #x36 :b #x40 :a #x80) - (new 'static 'rgba :r #x1a :g #x36 :b #x40 :a #x80) - (new 'static 'rgba :r #x1c :g #x3a :b #x44 :a #x80) - (new 'static 'rgba :r #x1d :g #x44 :b #x49 :a #x80) - (new 'static 'rgba :r #x1c :g #x47 :b #x4b :a #x80) - (new 'static 'rgba :r #x1c :g #x45 :b #x48 :a #x80) - (new 'static 'rgba :r #x1c :g #x42 :b #x47 :a #x80) - (new 'static 'rgba :r #x1d :g #x40 :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x3e :b #x48 :a #x80) - (new 'static 'rgba :r #x1f :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x1e :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x1e :g #x37 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x21 :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x39 :b #x46 :a #x80) - (new 'static 'rgba :r #x1f :g #x3a :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x3f :b #x49 :a #x80) - (new 'static 'rgba :r #x1e :g #x43 :b #x4a :a #x80) - (new 'static 'rgba :r #x1d :g #x48 :b #x4d :a #x80) - (new 'static 'rgba :r #x1c :g #x4c :b #x4c :a #x80) - (new 'static 'rgba :r #x1b :g #x4f :b #x4d :a #x80) - (new 'static 'rgba :r #x1c :g #x50 :b #x4f :a #x80) - (new 'static 'rgba :r #x1e :g #x51 :b #x4f :a #x80) - (new 'static 'rgba :r #x1f :g #x52 :b #x4f :a #x80) - (new 'static 'rgba :r #x20 :g #x52 :b #x51 :a #x80) - (new 'static 'rgba :r #x21 :g #x52 :b #x51 :a #x80) - (new 'static 'rgba :r #x23 :g #x53 :b #x4f :a #x80) - (new 'static 'rgba :r #x23 :g #x53 :b #x4f :a #x80) - (new 'static 'rgba :r #x23 :g #x53 :b #x4f :a #x80) - (new 'static 'rgba :r #x24 :g #x53 :b #x51 :a #x80) - (new 'static 'rgba :r #x24 :g #x53 :b #x51 :a #x80) - (new 'static 'rgba :r #x26 :g #x55 :b #x50 :a #x80) - (new 'static 'rgba :r #x26 :g #x55 :b #x51 :a #x80) - (new 'static 'rgba :r #x26 :g #x55 :b #x53 :a #x80) - (new 'static 'rgba :r #x26 :g #x55 :b #x55 :a #x80) - (new 'static 'rgba :r #x28 :g #x56 :b #x56 :a #x80) - (new 'static 'rgba :r #x26 :g #x57 :b #x54 :a #x80) - (new 'static 'rgba :r #x22 :g #x54 :b #x55 :a #x80) - (new 'static 'rgba :r #x23 :g #x4f :b #x53 :a #x80) - (new 'static 'rgba :r #x24 :g #x41 :b #x4c :a #x80) - (new 'static 'rgba :r #x21 :g #x39 :b #x47 :a #x80) - (new 'static 'rgba :r #x22 :g #x37 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1c :g #x37 :b #x41 :a #x80) - (new 'static 'rgba :r #x1b :g #x35 :b #x41 :a #x80) - (new 'static 'rgba :r #x1b :g #x36 :b #x41 :a #x80) - (new 'static 'rgba :r #x1d :g #x3b :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x3d :b #x46 :a #x80) - (new 'static 'rgba :r #x1e :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x1e :g #x3c :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3e :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x3e :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x21 :g #x38 :b #x46 :a #x80) - (new 'static 'rgba :r #x22 :g #x39 :b #x46 :a #x80) - (new 'static 'rgba :r #x22 :g #x38 :b #x46 :a #x80) - (new 'static 'rgba :r #x22 :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x21 :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x21 :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3b :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x3e :b #x49 :a #x80) - (new 'static 'rgba :r #x21 :g #x42 :b #x4a :a #x80) - (new 'static 'rgba :r #x21 :g #x45 :b #x4c :a #x80) - (new 'static 'rgba :r #x20 :g #x48 :b #x4c :a #x80) - (new 'static 'rgba :r #x1f :g #x4a :b #x4f :a #x80) - (new 'static 'rgba :r #x1e :g #x4e :b #x51 :a #x80) - (new 'static 'rgba :r #x1f :g #x50 :b #x4f :a #x80) - (new 'static 'rgba :r #x1f :g #x51 :b #x51 :a #x80) - (new 'static 'rgba :r #x1f :g #x53 :b #x52 :a #x80) - (new 'static 'rgba :r #x20 :g #x52 :b #x52 :a #x80) - (new 'static 'rgba :r #x21 :g #x54 :b #x52 :a #x80) - (new 'static 'rgba :r #x21 :g #x52 :b #x52 :a #x80) - (new 'static 'rgba :r #x20 :g #x54 :b #x52 :a #x80) - (new 'static 'rgba :r #x21 :g #x54 :b #x50 :a #x80) - (new 'static 'rgba :r #x21 :g #x54 :b #x4f :a #x80) - (new 'static 'rgba :r #x21 :g #x54 :b #x53 :a #x80) - (new 'static 'rgba :r #x21 :g #x54 :b #x50 :a #x80) - (new 'static 'rgba :r #x20 :g #x54 :b #x51 :a #x80) - (new 'static 'rgba :r #x21 :g #x52 :b #x53 :a #x80) - (new 'static 'rgba :r #x22 :g #x51 :b #x54 :a #x80) - (new 'static 'rgba :r #x22 :g #x4f :b #x53 :a #x80) - (new 'static 'rgba :r #x23 :g #x4d :b #x51 :a #x80) - (new 'static 'rgba :r #x26 :g #x43 :b #x4d :a #x80) - (new 'static 'rgba :r #x23 :g #x3d :b #x49 :a #x80) - (new 'static 'rgba :r #x21 :g #x36 :b #x45 :a #x80) - (new 'static 'rgba :r #x21 :g #x38 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x33 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1d :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x1c :g #x36 :b #x42 :a #x80) - (new 'static 'rgba :r #x1c :g #x37 :b #x42 :a #x80) - (new 'static 'rgba :r #x1c :g #x37 :b #x42 :a #x80) - (new 'static 'rgba :r #x1d :g #x39 :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x39 :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x21 :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x21 :g #x39 :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x3c :b #x47 :a #x80) - (new 'static 'rgba :r #x21 :g #x3e :b #x48 :a #x80) - (new 'static 'rgba :r #x21 :g #x40 :b #x49 :a #x80) - (new 'static 'rgba :r #x21 :g #x42 :b #x4a :a #x80) - (new 'static 'rgba :r #x22 :g #x43 :b #x4b :a #x80) - (new 'static 'rgba :r #x22 :g #x45 :b #x4c :a #x80) - (new 'static 'rgba :r #x21 :g #x46 :b #x4d :a #x80) - (new 'static 'rgba :r #x21 :g #x4a :b #x4f :a #x80) - (new 'static 'rgba :r #x21 :g #x4b :b #x4f :a #x80) - (new 'static 'rgba :r #x21 :g #x4a :b #x4e :a #x80) - (new 'static 'rgba :r #x21 :g #x4b :b #x4e :a #x80) - (new 'static 'rgba :r #x21 :g #x47 :b #x4e :a #x80) - (new 'static 'rgba :r #x21 :g #x48 :b #x4e :a #x80) - (new 'static 'rgba :r #x21 :g #x48 :b #x4e :a #x80) - (new 'static 'rgba :r #x21 :g #x49 :b #x4f :a #x80) - (new 'static 'rgba :r #x21 :g #x4b :b #x4e :a #x80) - (new 'static 'rgba :r #x20 :g #x47 :b #x4e :a #x80) - (new 'static 'rgba :r #x20 :g #x46 :b #x4d :a #x80) - (new 'static 'rgba :r #x20 :g #x46 :b #x4c :a #x80) - (new 'static 'rgba :r #x21 :g #x45 :b #x4c :a #x80) - (new 'static 'rgba :r #x23 :g #x41 :b #x4b :a #x80) - (new 'static 'rgba :r #x22 :g #x40 :b #x4a :a #x80) - (new 'static 'rgba :r #x21 :g #x39 :b #x47 :a #x80) - (new 'static 'rgba :r #x21 :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x21 :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1d :g #x36 :b #x42 :a #x80) - (new 'static 'rgba :r #x1d :g #x38 :b #x43 :a #x80) - (new 'static 'rgba :r #x1d :g #x37 :b #x42 :a #x80) - (new 'static 'rgba :r #x1d :g #x38 :b #x42 :a #x80) - (new 'static 'rgba :r #x1d :g #x39 :b #x43 :a #x80) - (new 'static 'rgba :r #x1e :g #x3b :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x39 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x39 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x21 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x21 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3c :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x3c :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x3c :b #x47 :a #x80) - (new 'static 'rgba :r #x21 :g #x3e :b #x47 :a #x80) - (new 'static 'rgba :r #x21 :g #x3e :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x3d :b #x48 :a #x80) - (new 'static 'rgba :r #x21 :g #x3d :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x3c :b #x49 :a #x80) - (new 'static 'rgba :r #x20 :g #x3b :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x3b :b #x47 :a #x80) - (new 'static 'rgba :r #x21 :g #x3c :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x39 :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x3d :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x48 :a #x80) - (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x44 :a #x80) - (new 'static 'rgba :r #x21 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1e :g #x38 :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x39 :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x39 :b #x44 :a #x80) - (new 'static 'rgba :r #x1d :g #x39 :b #x43 :a #x80) - (new 'static 'rgba :r #x1e :g #x38 :b #x43 :a #x80) - (new 'static 'rgba :r #x1e :g #x38 :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x38 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x38 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x37 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x37 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x39 :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x47 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x39 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) - (new 'static 'rgba :r #x20 :g #x3a :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x38 :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x37 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x37 :b #x44 :a #x80) - (new 'static 'rgba :r #x1e :g #x37 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) - (new 'static 'rgba :r #x20 :g #x36 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x36 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x46 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x46 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) - (new 'static 'rgba :r #x1f :g #x37 :b #x44 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x43 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x31 :b #x41 :a #x80) - (new 'static 'rgba :r #x1e :g #x32 :b #x40 :a #x80) - (new 'static 'rgba :r #x1e :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) - (new 'static 'rgba) - (new 'static 'rgba) - (new 'static 'rgba) - ) - ) - ) -(define *ocean-near-indices-village2* (new 'static 'ocean-near-indices :data #x4d50)) -(define *ocean-trans-indices-village2* (new 'static 'ocean-trans-indices - :data (new 'static 'array uint32 2304 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x10001 - #x10001 - #x10001 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x10001 - #x10001 - #x10001 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x10001 - #x10001 - #x10001 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x10001 - #x10001 - #x20055 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x10001 - #x30056 - #x40057 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x10001 - #x30056 - #x50007 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x10001 - #x30056 - #x60000 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x70058 - #x80000 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x90059 - #xa001d - #xb0000 - #xc0006 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xd0051 - #xe005a - #xf005b - #x100000 - #x110000 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x12005c - #x130000 - #x14005d - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x15005e - #x16005f - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #xffffffff - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #xffffffff - #xffffffff - #xffffffff - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - ) - ) +(define *ocean-colors-village1* + (new 'static 'ocean-colors + :colors + (new 'static 'array rgba 2548 + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2b :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2b :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x4 :g #x30 :b #x3b :a #x80) + (new 'static 'rgba :r #x6 :g #x32 :b #x3e :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x3f :a #x80) + (new 'static 'rgba :r #x5 :g #x31 :b #x3f :a #x80) + (new 'static 'rgba :r #x5 :g #x31 :b #x40 :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x40 :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x41 :a #x80) + (new 'static 'rgba :r #x6 :g #x33 :b #x41 :a #x80) + (new 'static 'rgba :r #x6 :g #x33 :b #x41 :a #x80) + (new 'static 'rgba :r #x6 :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x6 :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x5 :g #x31 :b #x40 :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x3f :a #x80) + (new 'static 'rgba :r #x4 :g #x30 :b #x3f :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) + (new 'static 'rgba :r #x4 :g #x30 :b #x3d :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3b :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x3 :g #x2d :b #x3a :a #x80) + (new 'static 'rgba :r #x6 :g #x32 :b #x3f :a #x80) + (new 'static 'rgba :r #x7 :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x7 :g #x34 :b #x43 :a #x80) + (new 'static 'rgba :r #x7 :g #x35 :b #x44 :a #x80) + (new 'static 'rgba :r #x7 :g #x33 :b #x43 :a #x80) + (new 'static 'rgba :r #x7 :g #x35 :b #x44 :a #x80) + (new 'static 'rgba :r #x7 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x7 :g #x34 :b #x44 :a #x80) + (new 'static 'rgba :r #x7 :g #x34 :b #x44 :a #x80) + (new 'static 'rgba :r #x7 :g #x35 :b #x44 :a #x80) + (new 'static 'rgba :r #x7 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x7 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x7 :g #x34 :b #x44 :a #x80) + (new 'static 'rgba :r #x7 :g #x34 :b #x44 :a #x80) + (new 'static 'rgba :r #x7 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x7 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x7 :g #x34 :b #x43 :a #x80) + (new 'static 'rgba :r #x7 :g #x34 :b #x44 :a #x80) + (new 'static 'rgba :r #x8 :g #x34 :b #x45 :a #x80) + (new 'static 'rgba :r #x8 :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x8 :g #x35 :b #x44 :a #x80) + (new 'static 'rgba :r #x7 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x7 :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x6 :g #x32 :b #x3f :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x3e :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x3e :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x3e :a #x80) + (new 'static 'rgba :r #x5 :g #x31 :b #x3d :a #x80) + (new 'static 'rgba :r #x4 :g #x2f :b #x3c :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3b :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x40 :a #x80) + (new 'static 'rgba :r #x7 :g #x35 :b #x44 :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x45 :a #x80) + (new 'static 'rgba :r #x9 :g #x38 :b #x46 :a #x80) + (new 'static 'rgba :r #x9 :g #x38 :b #x46 :a #x80) + (new 'static 'rgba :r #x9 :g #x38 :b #x46 :a #x80) + (new 'static 'rgba :r #x9 :g #x36 :b #x47 :a #x80) + (new 'static 'rgba :r #x9 :g #x36 :b #x46 :a #x80) + (new 'static 'rgba :r #x9 :g #x37 :b #x47 :a #x80) + (new 'static 'rgba :r #x9 :g #x36 :b #x47 :a #x80) + (new 'static 'rgba :r #x9 :g #x35 :b #x46 :a #x80) + (new 'static 'rgba :r #x9 :g #x39 :b #x47 :a #x80) + (new 'static 'rgba :r #x9 :g #x38 :b #x47 :a #x80) + (new 'static 'rgba :r #x9 :g #x38 :b #x47 :a #x80) + (new 'static 'rgba :r #x9 :g #x35 :b #x46 :a #x80) + (new 'static 'rgba :r #x9 :g #x38 :b #x46 :a #x80) + (new 'static 'rgba :r #x9 :g #x37 :b #x46 :a #x80) + (new 'static 'rgba :r #x9 :g #x36 :b #x47 :a #x80) + (new 'static 'rgba :r #xb :g #x39 :b #x49 :a #x80) + (new 'static 'rgba :r #xc :g #x3a :b #x4b :a #x80) + (new 'static 'rgba :r #xc :g #x3a :b #x4b :a #x80) + (new 'static 'rgba :r #xc :g #x39 :b #x4b :a #x80) + (new 'static 'rgba :r #xc :g #x39 :b #x4a :a #x80) + (new 'static 'rgba :r #xb :g #x37 :b #x48 :a #x80) + (new 'static 'rgba :r #x9 :g #x38 :b #x46 :a #x80) + (new 'static 'rgba :r #xb :g #x38 :b #x47 :a #x80) + (new 'static 'rgba :r #xc :g #x37 :b #x48 :a #x80) + (new 'static 'rgba :r #xc :g #x38 :b #x49 :a #x80) + (new 'static 'rgba :r #xc :g #x39 :b #x4a :a #x80) + (new 'static 'rgba :r #xc :g #x3c :b #x49 :a #x80) + (new 'static 'rgba :r #xc :g #x39 :b #x48 :a #x80) + (new 'static 'rgba :r #xa :g #x38 :b #x46 :a #x80) + (new 'static 'rgba :r #x8 :g #x35 :b #x44 :a #x80) + (new 'static 'rgba :r #x7 :g #x33 :b #x43 :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x40 :a #x80) + (new 'static 'rgba :r #x5 :g #x30 :b #x3e :a #x80) + (new 'static 'rgba :r #x3 :g #x2e :b #x3d :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x3 :g #x2d :b #x3b :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2b :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x6 :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x9 :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #xc :g #x3b :b #x48 :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x4c :a #x80) + (new 'static 'rgba :r #x11 :g #x3e :b #x4d :a #x80) + (new 'static 'rgba :r #x12 :g #x3f :b #x4e :a #x80) + (new 'static 'rgba :r #x10 :g #x3f :b #x4d :a #x80) + (new 'static 'rgba :r #xd :g #x3b :b #x4a :a #x80) + (new 'static 'rgba :r #xc :g #x3c :b #x4a :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x4b :a #x80) + (new 'static 'rgba :r #x11 :g #x3f :b #x4d :a #x80) + (new 'static 'rgba :r #x13 :g #x40 :b #x4f :a #x80) + (new 'static 'rgba :r #x14 :g #x43 :b #x50 :a #x80) + (new 'static 'rgba :r #x14 :g #x42 :b #x50 :a #x80) + (new 'static 'rgba :r #x13 :g #x40 :b #x4f :a #x80) + (new 'static 'rgba :r #x12 :g #x42 :b #x4e :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x4d :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x4c :a #x80) + (new 'static 'rgba :r #xd :g #x3a :b #x4b :a #x80) + (new 'static 'rgba :r #xd :g #x39 :b #x4d :a #x80) + (new 'static 'rgba :r #xd :g #x3d :b #x4e :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x4e :a #x80) + (new 'static 'rgba :r #xd :g #x3d :b #x4e :a #x80) + (new 'static 'rgba :r #xc :g #x3c :b #x4c :a #x80) + (new 'static 'rgba :r #xa :g #x3a :b #x49 :a #x80) + (new 'static 'rgba :r #xb :g #x37 :b #x4a :a #x80) + (new 'static 'rgba :r #xd :g #x3d :b #x4d :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x4f :a #x80) + (new 'static 'rgba :r #xe :g #x3b :b #x4f :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x4f :a #x80) + (new 'static 'rgba :r #xe :g #x3e :b #x4f :a #x80) + (new 'static 'rgba :r #xe :g #x3f :b #x4e :a #x80) + (new 'static 'rgba :r #xe :g #x3a :b #x4e :a #x80) + (new 'static 'rgba :r #xd :g #x3d :b #x4e :a #x80) + (new 'static 'rgba :r #xc :g #x3a :b #x4c :a #x80) + (new 'static 'rgba :r #xa :g #x39 :b #x49 :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x46 :a #x80) + (new 'static 'rgba :r #x7 :g #x34 :b #x43 :a #x80) + (new 'static 'rgba :r #x5 :g #x31 :b #x40 :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) + (new 'static 'rgba :r #x3 :g #x2e :b #x3c :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x4 :g #x30 :b #x3d :a #x80) + (new 'static 'rgba :r #x7 :g #x33 :b #x43 :a #x80) + (new 'static 'rgba :r #xb :g #x38 :b #x48 :a #x80) + (new 'static 'rgba :r #x13 :g #x40 :b #x4e :a #x80) + (new 'static 'rgba :r #x1b :g #x47 :b #x54 :a #x80) + (new 'static 'rgba :r #x1e :g #x4c :b #x57 :a #x80) + (new 'static 'rgba :r #x1e :g #x4a :b #x58 :a #x80) + (new 'static 'rgba :r #x1d :g #x4b :b #x56 :a #x80) + (new 'static 'rgba :r #x1a :g #x47 :b #x55 :a #x80) + (new 'static 'rgba :r #x1a :g #x47 :b #x55 :a #x80) + (new 'static 'rgba :r #x1b :g #x48 :b #x56 :a #x80) + (new 'static 'rgba :r #x1e :g #x4c :b #x58 :a #x80) + (new 'static 'rgba :r #x20 :g #x4d :b #x59 :a #x80) + (new 'static 'rgba :r #x21 :g #x50 :b #x5a :a #x80) + (new 'static 'rgba :r #x21 :g #x4c :b #x5a :a #x80) + (new 'static 'rgba :r #x20 :g #x4d :b #x59 :a #x80) + (new 'static 'rgba :r #x1f :g #x4c :b #x58 :a #x80) + (new 'static 'rgba :r #x1e :g #x4b :b #x57 :a #x80) + (new 'static 'rgba :r #x1b :g #x4b :b #x56 :a #x80) + (new 'static 'rgba :r #x18 :g #x46 :b #x54 :a #x80) + (new 'static 'rgba :r #x15 :g #x44 :b #x52 :a #x80) + (new 'static 'rgba :r #x12 :g #x3f :b #x51 :a #x80) + (new 'static 'rgba :r #xf :g #x3d :b #x4f :a #x80) + (new 'static 'rgba :r #xd :g #x3e :b #x4e :a #x80) + (new 'static 'rgba :r #xc :g #x3b :b #x4c :a #x80) + (new 'static 'rgba :r #xc :g #x38 :b #x4b :a #x80) + (new 'static 'rgba :r #xc :g #x3a :b #x4c :a #x80) + (new 'static 'rgba :r #xf :g #x3c :b #x50 :a #x80) + (new 'static 'rgba :r #x10 :g #x3f :b #x52 :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x52 :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x52 :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x52 :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x52 :a #x80) + (new 'static 'rgba :r #x10 :g #x3c :b #x51 :a #x80) + (new 'static 'rgba :r #x10 :g #x3c :b #x51 :a #x80) + (new 'static 'rgba :r #xf :g #x3f :b #x52 :a #x80) + (new 'static 'rgba :r #xe :g #x3a :b #x50 :a #x80) + (new 'static 'rgba :r #xd :g #x3a :b #x4e :a #x80) + (new 'static 'rgba :r #xb :g #x39 :b #x4b :a #x80) + (new 'static 'rgba :r #x9 :g #x37 :b #x46 :a #x80) + (new 'static 'rgba :r #x6 :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x4 :g #x33 :b #x3e :a #x80) + (new 'static 'rgba :r #x3 :g #x2e :b #x3c :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x5 :g #x30 :b #x3e :a #x80) + (new 'static 'rgba :r #x8 :g #x33 :b #x44 :a #x80) + (new 'static 'rgba :r #xc :g #x3c :b #x49 :a #x80) + (new 'static 'rgba :r #x17 :g #x45 :b #x52 :a #x80) + (new 'static 'rgba :r #x1f :g #x4c :b #x58 :a #x80) + (new 'static 'rgba :r #x23 :g #x51 :b #x5a :a #x80) + (new 'static 'rgba :r #x23 :g #x4f :b #x5b :a #x80) + (new 'static 'rgba :r #x23 :g #x50 :b #x5c :a #x80) + (new 'static 'rgba :r #x23 :g #x4f :b #x5b :a #x80) + (new 'static 'rgba :r #x22 :g #x4f :b #x5b :a #x80) + (new 'static 'rgba :r #x23 :g #x52 :b #x5c :a #x80) + (new 'static 'rgba :r #x24 :g #x52 :b #x5c :a #x80) + (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) + (new 'static 'rgba :r #x25 :g #x51 :b #x5c :a #x80) + (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) + (new 'static 'rgba :r #x25 :g #x52 :b #x5c :a #x80) + (new 'static 'rgba :r #x24 :g #x53 :b #x5c :a #x80) + (new 'static 'rgba :r #x24 :g #x53 :b #x5d :a #x80) + (new 'static 'rgba :r #x23 :g #x51 :b #x5b :a #x80) + (new 'static 'rgba :r #x22 :g #x50 :b #x5b :a #x80) + (new 'static 'rgba :r #x21 :g #x4d :b #x5a :a #x80) + (new 'static 'rgba :r #x1e :g #x4c :b #x58 :a #x80) + (new 'static 'rgba :r #x19 :g #x47 :b #x55 :a #x80) + (new 'static 'rgba :r #x15 :g #x41 :b #x52 :a #x80) + (new 'static 'rgba :r #x12 :g #x3e :b #x50 :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x4e :a #x80) + (new 'static 'rgba :r #x10 :g #x3f :b #x4e :a #x80) + (new 'static 'rgba :r #x10 :g #x3c :b #x50 :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x52 :a #x80) + (new 'static 'rgba :r #x10 :g #x3f :b #x53 :a #x80) + (new 'static 'rgba :r #x11 :g #x41 :b #x53 :a #x80) + (new 'static 'rgba :r #x11 :g #x41 :b #x53 :a #x80) + (new 'static 'rgba :r #x11 :g #x3c :b #x53 :a #x80) + (new 'static 'rgba :r #x11 :g #x3f :b #x53 :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x52 :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x53 :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x53 :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x52 :a #x80) + (new 'static 'rgba :r #xf :g #x3d :b #x50 :a #x80) + (new 'static 'rgba :r #xd :g #x39 :b #x4c :a #x80) + (new 'static 'rgba :r #x9 :g #x36 :b #x46 :a #x80) + (new 'static 'rgba :r #x5 :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x4 :g #x2f :b #x3d :a #x80) + (new 'static 'rgba :r #x3 :g #x2d :b #x3b :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x3f :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x4a :a #x80) + (new 'static 'rgba :r #x19 :g #x49 :b #x53 :a #x80) + (new 'static 'rgba :r #x22 :g #x4e :b #x5a :a #x80) + (new 'static 'rgba :r #x24 :g #x51 :b #x5b :a #x80) + (new 'static 'rgba :r #x24 :g #x51 :b #x5c :a #x80) + (new 'static 'rgba :r #x25 :g #x52 :b #x5d :a #x80) + (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) + (new 'static 'rgba :r #x25 :g #x54 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x55 :b #x5e :a #x80) + (new 'static 'rgba :r #x25 :g #x54 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x54 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x53 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x54 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x52 :b #x5e :a #x80) + (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) + (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) + (new 'static 'rgba :r #x25 :g #x52 :b #x5d :a #x80) + (new 'static 'rgba :r #x25 :g #x55 :b #x5d :a #x80) + (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) + (new 'static 'rgba :r #x24 :g #x50 :b #x5d :a #x80) + (new 'static 'rgba :r #x22 :g #x52 :b #x5c :a #x80) + (new 'static 'rgba :r #x21 :g #x4e :b #x5b :a #x80) + (new 'static 'rgba :r #x1e :g #x4e :b #x59 :a #x80) + (new 'static 'rgba :r #x1c :g #x4a :b #x57 :a #x80) + (new 'static 'rgba :r #x1b :g #x4c :b #x57 :a #x80) + (new 'static 'rgba :r #x19 :g #x4a :b #x56 :a #x80) + (new 'static 'rgba :r #x15 :g #x45 :b #x54 :a #x80) + (new 'static 'rgba :r #x12 :g #x41 :b #x54 :a #x80) + (new 'static 'rgba :r #x11 :g #x3e :b #x53 :a #x80) + (new 'static 'rgba :r #x11 :g #x41 :b #x53 :a #x80) + (new 'static 'rgba :r #x11 :g #x40 :b #x54 :a #x80) + (new 'static 'rgba :r #x11 :g #x41 :b #x54 :a #x80) + (new 'static 'rgba :r #x11 :g #x42 :b #x54 :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x54 :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x54 :a #x80) + (new 'static 'rgba :r #x12 :g #x3f :b #x55 :a #x80) + (new 'static 'rgba :r #x13 :g #x41 :b #x55 :a #x80) + (new 'static 'rgba :r #x12 :g #x40 :b #x51 :a #x80) + (new 'static 'rgba :r #xe :g #x3d :b #x4b :a #x80) + (new 'static 'rgba :r #x9 :g #x34 :b #x44 :a #x80) + (new 'static 'rgba :r #x5 :g #x31 :b #x3f :a #x80) + (new 'static 'rgba :r #x3 :g #x2e :b #x3b :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x40 :a #x80) + (new 'static 'rgba :r #x9 :g #x35 :b #x45 :a #x80) + (new 'static 'rgba :r #x10 :g #x3d :b #x4b :a #x80) + (new 'static 'rgba :r #x1b :g #x4a :b #x54 :a #x80) + (new 'static 'rgba :r #x22 :g #x51 :b #x5a :a #x80) + (new 'static 'rgba :r #x24 :g #x50 :b #x5c :a #x80) + (new 'static 'rgba :r #x25 :g #x55 :b #x5d :a #x80) + (new 'static 'rgba :r #x26 :g #x54 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x51 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x56 :b #x5f :a #x80) + (new 'static 'rgba :r #x26 :g #x55 :b #x5f :a #x80) + (new 'static 'rgba :r #x27 :g #x55 :b #x5f :a #x80) + (new 'static 'rgba :r #x26 :g #x55 :b #x5f :a #x80) + (new 'static 'rgba :r #x27 :g #x54 :b #x5f :a #x80) + (new 'static 'rgba :r #x26 :g #x56 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x55 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x54 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x55 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x53 :b #x5e :a #x80) + (new 'static 'rgba :r #x25 :g #x52 :b #x5d :a #x80) + (new 'static 'rgba :r #x25 :g #x54 :b #x5d :a #x80) + (new 'static 'rgba :r #x25 :g #x55 :b #x5d :a #x80) + (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) + (new 'static 'rgba :r #x25 :g #x51 :b #x5d :a #x80) + (new 'static 'rgba :r #x24 :g #x55 :b #x5d :a #x80) + (new 'static 'rgba :r #x24 :g #x51 :b #x5c :a #x80) + (new 'static 'rgba :r #x24 :g #x53 :b #x5d :a #x80) + (new 'static 'rgba :r #x23 :g #x50 :b #x5d :a #x80) + (new 'static 'rgba :r #x20 :g #x4d :b #x5b :a #x80) + (new 'static 'rgba :r #x1c :g #x4c :b #x58 :a #x80) + (new 'static 'rgba :r #x18 :g #x49 :b #x55 :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x54 :a #x80) + (new 'static 'rgba :r #x13 :g #x41 :b #x54 :a #x80) + (new 'static 'rgba :r #x12 :g #x42 :b #x54 :a #x80) + (new 'static 'rgba :r #x11 :g #x41 :b #x54 :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x54 :a #x80) + (new 'static 'rgba :r #x11 :g #x3f :b #x54 :a #x80) + (new 'static 'rgba :r #x13 :g #x44 :b #x55 :a #x80) + (new 'static 'rgba :r #x16 :g #x44 :b #x56 :a #x80) + (new 'static 'rgba :r #x15 :g #x44 :b #x53 :a #x80) + (new 'static 'rgba :r #x11 :g #x3d :b #x4e :a #x80) + (new 'static 'rgba :r #xb :g #x38 :b #x47 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3e :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x3a :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x7 :g #x33 :b #x40 :a #x80) + (new 'static 'rgba :r #xc :g #x3a :b #x47 :a #x80) + (new 'static 'rgba :r #x13 :g #x42 :b #x4e :a #x80) + (new 'static 'rgba :r #x1b :g #x49 :b #x54 :a #x80) + (new 'static 'rgba :r #x20 :g #x50 :b #x59 :a #x80) + (new 'static 'rgba :r #x24 :g #x52 :b #x5c :a #x80) + (new 'static 'rgba :r #x25 :g #x51 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x53 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x52 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x55 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x55 :b #x5f :a #x80) + (new 'static 'rgba :r #x27 :g #x55 :b #x5f :a #x80) + (new 'static 'rgba :r #x27 :g #x56 :b #x5f :a #x80) + (new 'static 'rgba :r #x27 :g #x55 :b #x5f :a #x80) + (new 'static 'rgba :r #x26 :g #x55 :b #x5f :a #x80) + (new 'static 'rgba :r #x26 :g #x56 :b #x5f :a #x80) + (new 'static 'rgba :r #x26 :g #x54 :b #x5f :a #x80) + (new 'static 'rgba :r #x25 :g #x54 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x52 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x55 :b #x5e :a #x80) + (new 'static 'rgba :r #x25 :g #x54 :b #x5e :a #x80) + (new 'static 'rgba :r #x25 :g #x55 :b #x5e :a #x80) + (new 'static 'rgba :r #x25 :g #x50 :b #x5d :a #x80) + (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) + (new 'static 'rgba :r #x25 :g #x54 :b #x5d :a #x80) + (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) + (new 'static 'rgba :r #x25 :g #x52 :b #x5d :a #x80) + (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) + (new 'static 'rgba :r #x24 :g #x51 :b #x5d :a #x80) + (new 'static 'rgba :r #x23 :g #x50 :b #x5c :a #x80) + (new 'static 'rgba :r #x21 :g #x50 :b #x5b :a #x80) + (new 'static 'rgba :r #x1d :g #x4a :b #x59 :a #x80) + (new 'static 'rgba :r #x17 :g #x44 :b #x55 :a #x80) + (new 'static 'rgba :r #x13 :g #x42 :b #x54 :a #x80) + (new 'static 'rgba :r #x11 :g #x3e :b #x54 :a #x80) + (new 'static 'rgba :r #x11 :g #x42 :b #x55 :a #x80) + (new 'static 'rgba :r #x13 :g #x41 :b #x55 :a #x80) + (new 'static 'rgba :r #x16 :g #x43 :b #x56 :a #x80) + (new 'static 'rgba :r #x18 :g #x46 :b #x56 :a #x80) + (new 'static 'rgba :r #x17 :g #x44 :b #x54 :a #x80) + (new 'static 'rgba :r #x12 :g #x41 :b #x4f :a #x80) + (new 'static 'rgba :r #xb :g #x3a :b #x47 :a #x80) + (new 'static 'rgba :r #x7 :g #x36 :b #x42 :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x3f :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3b :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x8 :g #x34 :b #x40 :a #x80) + (new 'static 'rgba :r #x10 :g #x3b :b #x4a :a #x80) + (new 'static 'rgba :r #x15 :g #x43 :b #x4f :a #x80) + (new 'static 'rgba :r #x19 :g #x46 :b #x54 :a #x80) + (new 'static 'rgba :r #x1d :g #x4b :b #x57 :a #x80) + (new 'static 'rgba :r #x20 :g #x4f :b #x5a :a #x80) + (new 'static 'rgba :r #x25 :g #x52 :b #x5d :a #x80) + (new 'static 'rgba :r #x25 :g #x53 :b #x5d :a #x80) + (new 'static 'rgba :r #x24 :g #x51 :b #x5d :a #x80) + (new 'static 'rgba :r #x26 :g #x54 :b #x5e :a #x80) + (new 'static 'rgba :r #x27 :g #x53 :b #x5f :a #x80) + (new 'static 'rgba :r #x28 :g #x57 :b #x60 :a #x80) + (new 'static 'rgba :r #x27 :g #x54 :b #x5f :a #x80) + (new 'static 'rgba :r #x27 :g #x55 :b #x5f :a #x80) + (new 'static 'rgba :r #x27 :g #x54 :b #x5f :a #x80) + (new 'static 'rgba :r #x26 :g #x55 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x53 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x54 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x54 :b #x5e :a #x80) + (new 'static 'rgba :r #x25 :g #x54 :b #x5e :a #x80) + (new 'static 'rgba :r #x25 :g #x54 :b #x5d :a #x80) + (new 'static 'rgba :r #x24 :g #x51 :b #x5c :a #x80) + (new 'static 'rgba :r #x24 :g #x50 :b #x5c :a #x80) + (new 'static 'rgba :r #x24 :g #x50 :b #x5c :a #x80) + (new 'static 'rgba :r #x24 :g #x50 :b #x5c :a #x80) + (new 'static 'rgba :r #x23 :g #x53 :b #x5b :a #x80) + (new 'static 'rgba :r #x24 :g #x50 :b #x5c :a #x80) + (new 'static 'rgba :r #x24 :g #x54 :b #x5c :a #x80) + (new 'static 'rgba :r #x23 :g #x52 :b #x5b :a #x80) + (new 'static 'rgba :r #x23 :g #x50 :b #x5b :a #x80) + (new 'static 'rgba :r #x23 :g #x51 :b #x5c :a #x80) + (new 'static 'rgba :r #x20 :g #x4f :b #x5b :a #x80) + (new 'static 'rgba :r #x18 :g #x48 :b #x57 :a #x80) + (new 'static 'rgba :r #x13 :g #x41 :b #x54 :a #x80) + (new 'static 'rgba :r #x11 :g #x40 :b #x54 :a #x80) + (new 'static 'rgba :r #x11 :g #x41 :b #x54 :a #x80) + (new 'static 'rgba :r #x13 :g #x43 :b #x55 :a #x80) + (new 'static 'rgba :r #x16 :g #x47 :b #x56 :a #x80) + (new 'static 'rgba :r #x18 :g #x45 :b #x57 :a #x80) + (new 'static 'rgba :r #x16 :g #x45 :b #x54 :a #x80) + (new 'static 'rgba :r #x11 :g #x40 :b #x4f :a #x80) + (new 'static 'rgba :r #xb :g #x3a :b #x48 :a #x80) + (new 'static 'rgba :r #x7 :g #x34 :b #x43 :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x40 :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3b :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x8 :g #x35 :b #x40 :a #x80) + (new 'static 'rgba :r #x12 :g #x3d :b #x4b :a #x80) + (new 'static 'rgba :r #x16 :g #x42 :b #x50 :a #x80) + (new 'static 'rgba :r #x19 :g #x45 :b #x54 :a #x80) + (new 'static 'rgba :r #x1c :g #x4b :b #x57 :a #x80) + (new 'static 'rgba :r #x1d :g #x49 :b #x59 :a #x80) + (new 'static 'rgba :r #x20 :g #x4d :b #x5a :a #x80) + (new 'static 'rgba :r #x20 :g #x4f :b #x5b :a #x80) + (new 'static 'rgba :r #x20 :g #x4e :b #x5a :a #x80) + (new 'static 'rgba :r #x20 :g #x4d :b #x5b :a #x80) + (new 'static 'rgba :r #x24 :g #x52 :b #x5d :a #x80) + (new 'static 'rgba :r #x26 :g #x56 :b #x5e :a #x80) + (new 'static 'rgba :r #x25 :g #x54 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x52 :b #x5f :a #x80) + (new 'static 'rgba :r #x27 :g #x56 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x55 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x54 :b #x5e :a #x80) + (new 'static 'rgba :r #x25 :g #x54 :b #x5d :a #x80) + (new 'static 'rgba :r #x25 :g #x52 :b #x5d :a #x80) + (new 'static 'rgba :r #x24 :g #x53 :b #x5c :a #x80) + (new 'static 'rgba :r #x24 :g #x52 :b #x5c :a #x80) + (new 'static 'rgba :r #x24 :g #x52 :b #x5c :a #x80) + (new 'static 'rgba :r #x23 :g #x51 :b #x5b :a #x80) + (new 'static 'rgba :r #x23 :g #x50 :b #x5b :a #x80) + (new 'static 'rgba :r #x23 :g #x4f :b #x5b :a #x80) + (new 'static 'rgba :r #x22 :g #x50 :b #x5b :a #x80) + (new 'static 'rgba :r #x22 :g #x50 :b #x5b :a #x80) + (new 'static 'rgba :r #x22 :g #x4f :b #x5a :a #x80) + (new 'static 'rgba :r #x22 :g #x50 :b #x5a :a #x80) + (new 'static 'rgba :r #x22 :g #x4e :b #x5a :a #x80) + (new 'static 'rgba :r #x21 :g #x4e :b #x5a :a #x80) + (new 'static 'rgba :r #x1f :g #x4d :b #x5a :a #x80) + (new 'static 'rgba :r #x17 :g #x47 :b #x55 :a #x80) + (new 'static 'rgba :r #x11 :g #x40 :b #x53 :a #x80) + (new 'static 'rgba :r #xf :g #x40 :b #x52 :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x53 :a #x80) + (new 'static 'rgba :r #x13 :g #x43 :b #x54 :a #x80) + (new 'static 'rgba :r #x15 :g #x42 :b #x55 :a #x80) + (new 'static 'rgba :r #x17 :g #x45 :b #x55 :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x53 :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x4e :a #x80) + (new 'static 'rgba :r #xa :g #x39 :b #x48 :a #x80) + (new 'static 'rgba :r #x6 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x3f :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x7 :g #x33 :b #x3f :a #x80) + (new 'static 'rgba :r #x12 :g #x3e :b #x4b :a #x80) + (new 'static 'rgba :r #x16 :g #x44 :b #x51 :a #x80) + (new 'static 'rgba :r #x19 :g #x45 :b #x54 :a #x80) + (new 'static 'rgba :r #x1c :g #x49 :b #x57 :a #x80) + (new 'static 'rgba :r #x1d :g #x4b :b #x59 :a #x80) + (new 'static 'rgba :r #x1e :g #x4b :b #x5a :a #x80) + (new 'static 'rgba :r #x1e :g #x4b :b #x5a :a #x80) + (new 'static 'rgba :r #x1f :g #x4b :b #x5a :a #x80) + (new 'static 'rgba :r #x20 :g #x4c :b #x5b :a #x80) + (new 'static 'rgba :r #x20 :g #x4e :b #x5d :a #x80) + (new 'static 'rgba :r #x1e :g #x4c :b #x5c :a #x80) + (new 'static 'rgba :r #x1e :g #x4b :b #x5c :a #x80) + (new 'static 'rgba :r #x20 :g #x50 :b #x5c :a #x80) + (new 'static 'rgba :r #x24 :g #x50 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x55 :b #x5e :a #x80) + (new 'static 'rgba :r #x26 :g #x55 :b #x5d :a #x80) + (new 'static 'rgba :r #x24 :g #x54 :b #x5c :a #x80) + (new 'static 'rgba :r #x24 :g #x52 :b #x5c :a #x80) + (new 'static 'rgba :r #x24 :g #x52 :b #x5c :a #x80) + (new 'static 'rgba :r #x23 :g #x51 :b #x5b :a #x80) + (new 'static 'rgba :r #x23 :g #x50 :b #x5b :a #x80) + (new 'static 'rgba :r #x22 :g #x4f :b #x5a :a #x80) + (new 'static 'rgba :r #x21 :g #x50 :b #x59 :a #x80) + (new 'static 'rgba :r #x21 :g #x4e :b #x59 :a #x80) + (new 'static 'rgba :r #x20 :g #x4e :b #x59 :a #x80) + (new 'static 'rgba :r #x20 :g #x4e :b #x59 :a #x80) + (new 'static 'rgba :r #x20 :g #x4e :b #x59 :a #x80) + (new 'static 'rgba :r #x21 :g #x4e :b #x59 :a #x80) + (new 'static 'rgba :r #x21 :g #x4f :b #x59 :a #x80) + (new 'static 'rgba :r #x20 :g #x4c :b #x58 :a #x80) + (new 'static 'rgba :r #x1d :g #x4d :b #x57 :a #x80) + (new 'static 'rgba :r #x15 :g #x45 :b #x54 :a #x80) + (new 'static 'rgba :r #x10 :g #x3f :b #x51 :a #x80) + (new 'static 'rgba :r #xe :g #x3e :b #x50 :a #x80) + (new 'static 'rgba :r #xf :g #x3d :b #x51 :a #x80) + (new 'static 'rgba :r #x11 :g #x42 :b #x52 :a #x80) + (new 'static 'rgba :r #x13 :g #x43 :b #x53 :a #x80) + (new 'static 'rgba :r #x13 :g #x44 :b #x53 :a #x80) + (new 'static 'rgba :r #x12 :g #x40 :b #x52 :a #x80) + (new 'static 'rgba :r #xf :g #x3c :b #x4f :a #x80) + (new 'static 'rgba :r #xb :g #x3a :b #x4a :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x40 :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3c :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x3d :a #x80) + (new 'static 'rgba :r #x11 :g #x3d :b #x4a :a #x80) + (new 'static 'rgba :r #x16 :g #x42 :b #x50 :a #x80) + (new 'static 'rgba :r #x18 :g #x44 :b #x53 :a #x80) + (new 'static 'rgba :r #x1b :g #x49 :b #x57 :a #x80) + (new 'static 'rgba :r #x1d :g #x49 :b #x58 :a #x80) + (new 'static 'rgba :r #x1f :g #x4f :b #x5a :a #x80) + (new 'static 'rgba :r #x1f :g #x50 :b #x5b :a #x80) + (new 'static 'rgba :r #x1e :g #x4d :b #x5b :a #x80) + (new 'static 'rgba :r #x1c :g #x4d :b #x5a :a #x80) + (new 'static 'rgba :r #x19 :g #x45 :b #x58 :a #x80) + (new 'static 'rgba :r #x15 :g #x45 :b #x57 :a #x80) + (new 'static 'rgba :r #x13 :g #x3f :b #x56 :a #x80) + (new 'static 'rgba :r #x16 :g #x45 :b #x57 :a #x80) + (new 'static 'rgba :r #x1e :g #x4d :b #x5a :a #x80) + (new 'static 'rgba :r #x23 :g #x4f :b #x5d :a #x80) + (new 'static 'rgba :r #x24 :g #x52 :b #x5c :a #x80) + (new 'static 'rgba :r #x24 :g #x52 :b #x5d :a #x80) + (new 'static 'rgba :r #x24 :g #x4f :b #x5b :a #x80) + (new 'static 'rgba :r #x22 :g #x50 :b #x5b :a #x80) + (new 'static 'rgba :r #x21 :g #x4f :b #x5a :a #x80) + (new 'static 'rgba :r #x21 :g #x4e :b #x59 :a #x80) + (new 'static 'rgba :r #x20 :g #x4e :b #x58 :a #x80) + (new 'static 'rgba :r #x20 :g #x4d :b #x58 :a #x80) + (new 'static 'rgba :r #x1f :g #x4d :b #x57 :a #x80) + (new 'static 'rgba :r #x1e :g #x4b :b #x56 :a #x80) + (new 'static 'rgba :r #x1d :g #x4c :b #x56 :a #x80) + (new 'static 'rgba :r #x1e :g #x4b :b #x56 :a #x80) + (new 'static 'rgba :r #x1e :g #x4a :b #x56 :a #x80) + (new 'static 'rgba :r #x1d :g #x49 :b #x55 :a #x80) + (new 'static 'rgba :r #x1d :g #x4a :b #x56 :a #x80) + (new 'static 'rgba :r #x1a :g #x49 :b #x54 :a #x80) + (new 'static 'rgba :r #x14 :g #x42 :b #x51 :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x4f :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x4f :a #x80) + (new 'static 'rgba :r #xf :g #x3d :b #x50 :a #x80) + (new 'static 'rgba :r #x10 :g #x3f :b #x50 :a #x80) + (new 'static 'rgba :r #x11 :g #x40 :b #x51 :a #x80) + (new 'static 'rgba :r #x11 :g #x40 :b #x52 :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x50 :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x4f :a #x80) + (new 'static 'rgba :r #xc :g #x3b :b #x4b :a #x80) + (new 'static 'rgba :r #x9 :g #x36 :b #x46 :a #x80) + (new 'static 'rgba :r #x7 :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x3 :g #x2e :b #x3d :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2f :b #x38 :a #x80) + (new 'static 'rgba :r #x4 :g #x2f :b #x3c :a #x80) + (new 'static 'rgba :r #xd :g #x3a :b #x47 :a #x80) + (new 'static 'rgba :r #x12 :g #x41 :b #x4e :a #x80) + (new 'static 'rgba :r #x15 :g #x44 :b #x51 :a #x80) + (new 'static 'rgba :r #x19 :g #x48 :b #x55 :a #x80) + (new 'static 'rgba :r #x19 :g #x49 :b #x57 :a #x80) + (new 'static 'rgba :r #x1a :g #x48 :b #x59 :a #x80) + (new 'static 'rgba :r #x19 :g #x47 :b #x58 :a #x80) + (new 'static 'rgba :r #x17 :g #x45 :b #x56 :a #x80) + (new 'static 'rgba :r #x14 :g #x44 :b #x54 :a #x80) + (new 'static 'rgba :r #x12 :g #x3f :b #x54 :a #x80) + (new 'static 'rgba :r #x12 :g #x42 :b #x54 :a #x80) + (new 'static 'rgba :r #x12 :g #x41 :b #x55 :a #x80) + (new 'static 'rgba :r #x13 :g #x3e :b #x54 :a #x80) + (new 'static 'rgba :r #x19 :g #x47 :b #x58 :a #x80) + (new 'static 'rgba :r #x20 :g #x4f :b #x5a :a #x80) + (new 'static 'rgba :r #x1f :g #x4d :b #x59 :a #x80) + (new 'static 'rgba :r #x23 :g #x4f :b #x5a :a #x80) + (new 'static 'rgba :r #x23 :g #x50 :b #x5b :a #x80) + (new 'static 'rgba :r #x20 :g #x4f :b #x59 :a #x80) + (new 'static 'rgba :r #x20 :g #x4d :b #x58 :a #x80) + (new 'static 'rgba :r #x1f :g #x4e :b #x57 :a #x80) + (new 'static 'rgba :r #x1e :g #x4b :b #x56 :a #x80) + (new 'static 'rgba :r #x1e :g #x4a :b #x56 :a #x80) + (new 'static 'rgba :r #x1d :g #x49 :b #x54 :a #x80) + (new 'static 'rgba :r #x1c :g #x48 :b #x54 :a #x80) + (new 'static 'rgba :r #x1c :g #x4a :b #x54 :a #x80) + (new 'static 'rgba :r #x1b :g #x49 :b #x53 :a #x80) + (new 'static 'rgba :r #x1b :g #x49 :b #x53 :a #x80) + (new 'static 'rgba :r #x1b :g #x47 :b #x53 :a #x80) + (new 'static 'rgba :r #x1a :g #x47 :b #x52 :a #x80) + (new 'static 'rgba :r #x18 :g #x46 :b #x51 :a #x80) + (new 'static 'rgba :r #x12 :g #x3f :b #x4f :a #x80) + (new 'static 'rgba :r #xe :g #x3d :b #x4d :a #x80) + (new 'static 'rgba :r #xe :g #x3d :b #x4e :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x4f :a #x80) + (new 'static 'rgba :r #x11 :g #x3e :b #x4f :a #x80) + (new 'static 'rgba :r #x10 :g #x3f :b #x4f :a #x80) + (new 'static 'rgba :r #x10 :g #x3d :b #x4f :a #x80) + (new 'static 'rgba :r #xf :g #x3f :b #x50 :a #x80) + (new 'static 'rgba :r #xf :g #x3f :b #x4f :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x4c :a #x80) + (new 'static 'rgba :r #xb :g #x38 :b #x49 :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x45 :a #x80) + (new 'static 'rgba :r #x4 :g #x30 :b #x3e :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3c :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #xa :g #x38 :b #x48 :a #x80) + (new 'static 'rgba :r #xd :g #x3a :b #x4b :a #x80) + (new 'static 'rgba :r #xe :g #x3f :b #x4e :a #x80) + (new 'static 'rgba :r #x10 :g #x41 :b #x4f :a #x80) + (new 'static 'rgba :r #x10 :g #x3f :b #x51 :a #x80) + (new 'static 'rgba :r #x10 :g #x3c :b #x50 :a #x80) + (new 'static 'rgba :r #xf :g #x3a :b #x50 :a #x80) + (new 'static 'rgba :r #xf :g #x3a :b #x4f :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x53 :a #x80) + (new 'static 'rgba :r #x11 :g #x40 :b #x55 :a #x80) + (new 'static 'rgba :r #x12 :g #x42 :b #x54 :a #x80) + (new 'static 'rgba :r #x13 :g #x40 :b #x55 :a #x80) + (new 'static 'rgba :r #x19 :g #x48 :b #x57 :a #x80) + (new 'static 'rgba :r #x1d :g #x4c :b #x59 :a #x80) + (new 'static 'rgba :r #x1a :g #x47 :b #x56 :a #x80) + (new 'static 'rgba :r #x1a :g #x48 :b #x56 :a #x80) + (new 'static 'rgba :r #x1e :g #x4b :b #x57 :a #x80) + (new 'static 'rgba :r #x1e :g #x4d :b #x58 :a #x80) + (new 'static 'rgba :r #x1e :g #x4c :b #x57 :a #x80) + (new 'static 'rgba :r #x1d :g #x4a :b #x55 :a #x80) + (new 'static 'rgba :r #x1d :g #x49 :b #x54 :a #x80) + (new 'static 'rgba :r #x1c :g #x4a :b #x54 :a #x80) + (new 'static 'rgba :r #x1b :g #x49 :b #x53 :a #x80) + (new 'static 'rgba :r #x19 :g #x46 :b #x52 :a #x80) + (new 'static 'rgba :r #x19 :g #x47 :b #x51 :a #x80) + (new 'static 'rgba :r #x19 :g #x46 :b #x51 :a #x80) + (new 'static 'rgba :r #x18 :g #x46 :b #x51 :a #x80) + (new 'static 'rgba :r #x18 :g #x45 :b #x50 :a #x80) + (new 'static 'rgba :r #x18 :g #x45 :b #x50 :a #x80) + (new 'static 'rgba :r #x17 :g #x43 :b #x4f :a #x80) + (new 'static 'rgba :r #x13 :g #x41 :b #x4e :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x4d :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x4d :a #x80) + (new 'static 'rgba :r #x11 :g #x3f :b #x4d :a #x80) + (new 'static 'rgba :r #x12 :g #x40 :b #x4e :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x4e :a #x80) + (new 'static 'rgba :r #x10 :g #x3f :b #x4e :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x4e :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x4e :a #x80) + (new 'static 'rgba :r #xe :g #x3b :b #x4d :a #x80) + (new 'static 'rgba :r #xc :g #x39 :b #x4a :a #x80) + (new 'static 'rgba :r #xa :g #x36 :b #x47 :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x40 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x6 :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x45 :a #x80) + (new 'static 'rgba :r #x9 :g #x36 :b #x48 :a #x80) + (new 'static 'rgba :r #xa :g #x38 :b #x4a :a #x80) + (new 'static 'rgba :r #xb :g #x39 :b #x4b :a #x80) + (new 'static 'rgba :r #xb :g #x39 :b #x4b :a #x80) + (new 'static 'rgba :r #xb :g #x3a :b #x4c :a #x80) + (new 'static 'rgba :r #xb :g #x3b :b #x4c :a #x80) + (new 'static 'rgba :r #xd :g #x39 :b #x4e :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x53 :a #x80) + (new 'static 'rgba :r #x11 :g #x40 :b #x54 :a #x80) + (new 'static 'rgba :r #x12 :g #x3f :b #x54 :a #x80) + (new 'static 'rgba :r #x15 :g #x41 :b #x55 :a #x80) + (new 'static 'rgba :r #x19 :g #x46 :b #x57 :a #x80) + (new 'static 'rgba :r #x19 :g #x46 :b #x57 :a #x80) + (new 'static 'rgba :r #x15 :g #x42 :b #x54 :a #x80) + (new 'static 'rgba :r #x13 :g #x41 :b #x52 :a #x80) + (new 'static 'rgba :r #x18 :g #x46 :b #x54 :a #x80) + (new 'static 'rgba :r #x1d :g #x4a :b #x56 :a #x80) + (new 'static 'rgba :r #x1c :g #x49 :b #x55 :a #x80) + (new 'static 'rgba :r #x1c :g #x49 :b #x54 :a #x80) + (new 'static 'rgba :r #x1a :g #x47 :b #x53 :a #x80) + (new 'static 'rgba :r #x19 :g #x47 :b #x52 :a #x80) + (new 'static 'rgba :r #x18 :g #x45 :b #x50 :a #x80) + (new 'static 'rgba :r #x18 :g #x45 :b #x4f :a #x80) + (new 'static 'rgba :r #x17 :g #x43 :b #x4e :a #x80) + (new 'static 'rgba :r #x16 :g #x43 :b #x4e :a #x80) + (new 'static 'rgba :r #x16 :g #x42 :b #x4d :a #x80) + (new 'static 'rgba :r #x16 :g #x43 :b #x4e :a #x80) + (new 'static 'rgba :r #x16 :g #x43 :b #x4d :a #x80) + (new 'static 'rgba :r #x15 :g #x42 :b #x4d :a #x80) + (new 'static 'rgba :r #x16 :g #x42 :b #x4d :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x4c :a #x80) + (new 'static 'rgba :r #x13 :g #x41 :b #x4c :a #x80) + (new 'static 'rgba :r #x13 :g #x40 :b #x4c :a #x80) + (new 'static 'rgba :r #x12 :g #x40 :b #x4c :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x4c :a #x80) + (new 'static 'rgba :r #xf :g #x3d :b #x4c :a #x80) + (new 'static 'rgba :r #xe :g #x3d :b #x4d :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x4d :a #x80) + (new 'static 'rgba :r #xe :g #x3b :b #x4c :a #x80) + (new 'static 'rgba :r #xc :g #x39 :b #x4a :a #x80) + (new 'static 'rgba :r #xa :g #x37 :b #x47 :a #x80) + (new 'static 'rgba :r #x6 :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x5 :g #x31 :b #x40 :a #x80) + (new 'static 'rgba :r #x8 :g #x35 :b #x45 :a #x80) + (new 'static 'rgba :r #x9 :g #x39 :b #x48 :a #x80) + (new 'static 'rgba :r #xa :g #x39 :b #x4a :a #x80) + (new 'static 'rgba :r #xa :g #x3a :b #x4a :a #x80) + (new 'static 'rgba :r #xa :g #x3a :b #x4a :a #x80) + (new 'static 'rgba :r #xb :g #x39 :b #x4b :a #x80) + (new 'static 'rgba :r #xb :g #x39 :b #x4d :a #x80) + (new 'static 'rgba :r #xd :g #x3a :b #x4f :a #x80) + (new 'static 'rgba :r #x10 :g #x3f :b #x53 :a #x80) + (new 'static 'rgba :r #x12 :g #x40 :b #x54 :a #x80) + (new 'static 'rgba :r #x14 :g #x43 :b #x55 :a #x80) + (new 'static 'rgba :r #x17 :g #x48 :b #x57 :a #x80) + (new 'static 'rgba :r #x19 :g #x45 :b #x57 :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x54 :a #x80) + (new 'static 'rgba :r #x11 :g #x3e :b #x51 :a #x80) + (new 'static 'rgba :r #x10 :g #x3f :b #x51 :a #x80) + (new 'static 'rgba :r #x15 :g #x41 :b #x51 :a #x80) + (new 'static 'rgba :r #x1b :g #x47 :b #x53 :a #x80) + (new 'static 'rgba :r #x1c :g #x49 :b #x54 :a #x80) + (new 'static 'rgba :r #x1a :g #x48 :b #x52 :a #x80) + (new 'static 'rgba :r #x18 :g #x45 :b #x51 :a #x80) + (new 'static 'rgba :r #x17 :g #x44 :b #x4f :a #x80) + (new 'static 'rgba :r #x16 :g #x43 :b #x4e :a #x80) + (new 'static 'rgba :r #x15 :g #x42 :b #x4d :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x4c :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x4b :a #x80) + (new 'static 'rgba :r #x13 :g #x40 :b #x4a :a #x80) + (new 'static 'rgba :r #x13 :g #x40 :b #x4a :a #x80) + (new 'static 'rgba :r #x13 :g #x3f :b #x4a :a #x80) + (new 'static 'rgba :r #x13 :g #x3f :b #x4a :a #x80) + (new 'static 'rgba :r #x13 :g #x40 :b #x4a :a #x80) + (new 'static 'rgba :r #x13 :g #x40 :b #x4b :a #x80) + (new 'static 'rgba :r #x13 :g #x3f :b #x4a :a #x80) + (new 'static 'rgba :r #x12 :g #x3f :b #x4b :a #x80) + (new 'static 'rgba :r #x11 :g #x3e :b #x4b :a #x80) + (new 'static 'rgba :r #xf :g #x3d :b #x4a :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x4b :a #x80) + (new 'static 'rgba :r #xd :g #x3d :b #x4b :a #x80) + (new 'static 'rgba :r #xd :g #x3c :b #x4b :a #x80) + (new 'static 'rgba :r #xc :g #x3a :b #x4b :a #x80) + (new 'static 'rgba :r #xb :g #x38 :b #x49 :a #x80) + (new 'static 'rgba :r #x9 :g #x38 :b #x47 :a #x80) + (new 'static 'rgba :r #x6 :g #x33 :b #x41 :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x4 :g #x30 :b #x3d :a #x80) + (new 'static 'rgba :r #x7 :g #x37 :b #x44 :a #x80) + (new 'static 'rgba :r #x9 :g #x36 :b #x47 :a #x80) + (new 'static 'rgba :r #xa :g #x39 :b #x49 :a #x80) + (new 'static 'rgba :r #xa :g #x3a :b #x4a :a #x80) + (new 'static 'rgba :r #xb :g #x39 :b #x4b :a #x80) + (new 'static 'rgba :r #xd :g #x39 :b #x4e :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x50 :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x52 :a #x80) + (new 'static 'rgba :r #x12 :g #x3e :b #x54 :a #x80) + (new 'static 'rgba :r #x15 :g #x45 :b #x56 :a #x80) + (new 'static 'rgba :r #x18 :g #x47 :b #x58 :a #x80) + (new 'static 'rgba :r #x1a :g #x47 :b #x58 :a #x80) + (new 'static 'rgba :r #x17 :g #x46 :b #x56 :a #x80) + (new 'static 'rgba :r #x12 :g #x43 :b #x53 :a #x80) + (new 'static 'rgba :r #x11 :g #x40 :b #x51 :a #x80) + (new 'static 'rgba :r #x11 :g #x41 :b #x51 :a #x80) + (new 'static 'rgba :r #x18 :g #x45 :b #x52 :a #x80) + (new 'static 'rgba :r #x1d :g #x4a :b #x54 :a #x80) + (new 'static 'rgba :r #x1c :g #x48 :b #x53 :a #x80) + (new 'static 'rgba :r #x19 :g #x46 :b #x51 :a #x80) + (new 'static 'rgba :r #x16 :g #x43 :b #x4f :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x4d :a #x80) + (new 'static 'rgba :r #x13 :g #x40 :b #x4b :a #x80) + (new 'static 'rgba :r #x11 :g #x3e :b #x4a :a #x80) + (new 'static 'rgba :r #x11 :g #x3e :b #x49 :a #x80) + (new 'static 'rgba :r #x10 :g #x3d :b #x48 :a #x80) + (new 'static 'rgba :r #x10 :g #x3c :b #x47 :a #x80) + (new 'static 'rgba :r #x10 :g #x3c :b #x47 :a #x80) + (new 'static 'rgba :r #x10 :g #x3c :b #x47 :a #x80) + (new 'static 'rgba :r #x10 :g #x3c :b #x47 :a #x80) + (new 'static 'rgba :r #x10 :g #x3c :b #x47 :a #x80) + (new 'static 'rgba :r #x10 :g #x3d :b #x48 :a #x80) + (new 'static 'rgba :r #xf :g #x3c :b #x47 :a #x80) + (new 'static 'rgba :r #xf :g #x3c :b #x47 :a #x80) + (new 'static 'rgba :r #xe :g #x3b :b #x48 :a #x80) + (new 'static 'rgba :r #xd :g #x3b :b #x48 :a #x80) + (new 'static 'rgba :r #xc :g #x3a :b #x49 :a #x80) + (new 'static 'rgba :r #xc :g #x3a :b #x49 :a #x80) + (new 'static 'rgba :r #xb :g #x3a :b #x49 :a #x80) + (new 'static 'rgba :r #xb :g #x37 :b #x49 :a #x80) + (new 'static 'rgba :r #x9 :g #x38 :b #x47 :a #x80) + (new 'static 'rgba :r #x8 :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x3f :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3b :a #x80) + (new 'static 'rgba :r #x6 :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x8 :g #x35 :b #x46 :a #x80) + (new 'static 'rgba :r #xa :g #x39 :b #x49 :a #x80) + (new 'static 'rgba :r #xb :g #x3b :b #x4b :a #x80) + (new 'static 'rgba :r #xd :g #x3a :b #x4e :a #x80) + (new 'static 'rgba :r #x10 :g #x3f :b #x52 :a #x80) + (new 'static 'rgba :r #x12 :g #x3e :b #x55 :a #x80) + (new 'static 'rgba :r #x15 :g #x43 :b #x57 :a #x80) + (new 'static 'rgba :r #x18 :g #x48 :b #x58 :a #x80) + (new 'static 'rgba :r #x1b :g #x49 :b #x59 :a #x80) + (new 'static 'rgba :r #x1c :g #x4c :b #x59 :a #x80) + (new 'static 'rgba :r #x19 :g #x47 :b #x57 :a #x80) + (new 'static 'rgba :r #x13 :g #x43 :b #x54 :a #x80) + (new 'static 'rgba :r #x12 :g #x40 :b #x52 :a #x80) + (new 'static 'rgba :r #x11 :g #x3f :b #x51 :a #x80) + (new 'static 'rgba :r #x15 :g #x44 :b #x53 :a #x80) + (new 'static 'rgba :r #x1c :g #x4a :b #x55 :a #x80) + (new 'static 'rgba :r #x20 :g #x4e :b #x56 :a #x80) + (new 'static 'rgba :r #x1d :g #x4a :b #x53 :a #x80) + (new 'static 'rgba :r #x17 :g #x45 :b #x50 :a #x80) + (new 'static 'rgba :r #x14 :g #x42 :b #x4d :a #x80) + (new 'static 'rgba :r #x11 :g #x3f :b #x4b :a #x80) + (new 'static 'rgba :r #xf :g #x3d :b #x4a :a #x80) + (new 'static 'rgba :r #xd :g #x3a :b #x48 :a #x80) + (new 'static 'rgba :r #xb :g #x39 :b #x46 :a #x80) + (new 'static 'rgba :r #xa :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #xa :g #x38 :b #x44 :a #x80) + (new 'static 'rgba :r #xa :g #x37 :b #x43 :a #x80) + (new 'static 'rgba :r #xa :g #x37 :b #x43 :a #x80) + (new 'static 'rgba :r #xb :g #x37 :b #x43 :a #x80) + (new 'static 'rgba :r #xb :g #x38 :b #x44 :a #x80) + (new 'static 'rgba :r #xb :g #x38 :b #x44 :a #x80) + (new 'static 'rgba :r #xb :g #x38 :b #x44 :a #x80) + (new 'static 'rgba :r #xb :g #x39 :b #x44 :a #x80) + (new 'static 'rgba :r #xb :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #xb :g #x39 :b #x46 :a #x80) + (new 'static 'rgba :r #xb :g #x38 :b #x47 :a #x80) + (new 'static 'rgba :r #xa :g #x38 :b #x46 :a #x80) + (new 'static 'rgba :r #x9 :g #x37 :b #x47 :a #x80) + (new 'static 'rgba :r #x9 :g #x37 :b #x46 :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x45 :a #x80) + (new 'static 'rgba :r #x7 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x4 :g #x30 :b #x3d :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x5 :g #x31 :b #x3f :a #x80) + (new 'static 'rgba :r #x7 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #xa :g #x3a :b #x48 :a #x80) + (new 'static 'rgba :r #xd :g #x3d :b #x4d :a #x80) + (new 'static 'rgba :r #x12 :g #x40 :b #x52 :a #x80) + (new 'static 'rgba :r #x15 :g #x42 :b #x56 :a #x80) + (new 'static 'rgba :r #x18 :g #x46 :b #x59 :a #x80) + (new 'static 'rgba :r #x1c :g #x4c :b #x5a :a #x80) + (new 'static 'rgba :r #x21 :g #x4f :b #x5c :a #x80) + (new 'static 'rgba :r #x22 :g #x50 :b #x5c :a #x80) + (new 'static 'rgba :r #x20 :g #x4f :b #x5a :a #x80) + (new 'static 'rgba :r #x18 :g #x44 :b #x56 :a #x80) + (new 'static 'rgba :r #x12 :g #x3f :b #x53 :a #x80) + (new 'static 'rgba :r #x10 :g #x3f :b #x52 :a #x80) + (new 'static 'rgba :r #x12 :g #x40 :b #x52 :a #x80) + (new 'static 'rgba :r #x17 :g #x44 :b #x53 :a #x80) + (new 'static 'rgba :r #x1e :g #x4c :b #x55 :a #x80) + (new 'static 'rgba :r #x21 :g #x4d :b #x55 :a #x80) + (new 'static 'rgba :r #x1d :g #x49 :b #x52 :a #x80) + (new 'static 'rgba :r #x17 :g #x43 :b #x4e :a #x80) + (new 'static 'rgba :r #x13 :g #x40 :b #x4c :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x4a :a #x80) + (new 'static 'rgba :r #xa :g #x39 :b #x47 :a #x80) + (new 'static 'rgba :r #x5 :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x4 :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x4 :g #x33 :b #x3f :a #x80) + (new 'static 'rgba :r #x4 :g #x33 :b #x3f :a #x80) + (new 'static 'rgba :r #x4 :g #x33 :b #x3e :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x3e :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x3f :a #x80) + (new 'static 'rgba :r #x5 :g #x34 :b #x3f :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x40 :a #x80) + (new 'static 'rgba :r #x7 :g #x34 :b #x40 :a #x80) + (new 'static 'rgba :r #x8 :g #x35 :b #x41 :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x7 :g #x35 :b #x44 :a #x80) + (new 'static 'rgba :r #x7 :g #x34 :b #x43 :a #x80) + (new 'static 'rgba :r #x6 :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x5 :g #x31 :b #x40 :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3c :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x4 :g #x2f :b #x3e :a #x80) + (new 'static 'rgba :r #x6 :g #x33 :b #x43 :a #x80) + (new 'static 'rgba :r #xa :g #x3a :b #x49 :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x4f :a #x80) + (new 'static 'rgba :r #x16 :g #x47 :b #x56 :a #x80) + (new 'static 'rgba :r #x1c :g #x4a :b #x5a :a #x80) + (new 'static 'rgba :r #x20 :g #x4d :b #x5c :a #x80) + (new 'static 'rgba :r #x24 :g #x4f :b #x5d :a #x80) + (new 'static 'rgba :r #x26 :g #x53 :b #x5e :a #x80) + (new 'static 'rgba :r #x25 :g #x54 :b #x5d :a #x80) + (new 'static 'rgba :r #x20 :g #x4e :b #x5b :a #x80) + (new 'static 'rgba :r #x18 :g #x44 :b #x57 :a #x80) + (new 'static 'rgba :r #x13 :g #x3f :b #x53 :a #x80) + (new 'static 'rgba :r #x11 :g #x3d :b #x52 :a #x80) + (new 'static 'rgba :r #x13 :g #x41 :b #x52 :a #x80) + (new 'static 'rgba :r #x17 :g #x45 :b #x53 :a #x80) + (new 'static 'rgba :r #x1d :g #x4a :b #x54 :a #x80) + (new 'static 'rgba :r #x20 :g #x4c :b #x53 :a #x80) + (new 'static 'rgba :r #x1c :g #x48 :b #x4f :a #x80) + (new 'static 'rgba :r #x18 :g #x43 :b #x4d :a #x80) + (new 'static 'rgba :r #x13 :g #x40 :b #x4c :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x49 :a #x80) + (new 'static 'rgba :r #x7 :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x4 :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x3 :g #x33 :b #x3e :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #x3d :a #x80) + (new 'static 'rgba :r #x2 :g #x31 :b #x3d :a #x80) + (new 'static 'rgba :r #x2 :g #x30 :b #x3d :a #x80) + (new 'static 'rgba :r #x2 :g #x31 :b #x3c :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #x3d :a #x80) + (new 'static 'rgba :r #x3 :g #x32 :b #x3d :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x3e :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x3f :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x40 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x41 :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x40 :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #x3d :a #x80) + (new 'static 'rgba :r #x6 :g #x36 :b #x42 :a #x80) + (new 'static 'rgba :r #xb :g #x38 :b #x49 :a #x80) + (new 'static 'rgba :r #x12 :g #x42 :b #x50 :a #x80) + (new 'static 'rgba :r #x1b :g #x49 :b #x57 :a #x80) + (new 'static 'rgba :r #x21 :g #x51 :b #x5d :a #x80) + (new 'static 'rgba :r #x26 :g #x53 :b #x5f :a #x80) + (new 'static 'rgba :r #x28 :g #x55 :b #x5f :a #x80) + (new 'static 'rgba :r #x27 :g #x53 :b #x5f :a #x80) + (new 'static 'rgba :r #x25 :g #x54 :b #x5d :a #x80) + (new 'static 'rgba :r #x20 :g #x4f :b #x5b :a #x80) + (new 'static 'rgba :r #x1a :g #x47 :b #x57 :a #x80) + (new 'static 'rgba :r #x15 :g #x42 :b #x55 :a #x80) + (new 'static 'rgba :r #x13 :g #x41 :b #x53 :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x53 :a #x80) + (new 'static 'rgba :r #x19 :g #x45 :b #x54 :a #x80) + (new 'static 'rgba :r #x1d :g #x49 :b #x54 :a #x80) + (new 'static 'rgba :r #x20 :g #x4c :b #x53 :a #x80) + (new 'static 'rgba :r #x1e :g #x48 :b #x4f :a #x80) + (new 'static 'rgba :r #x1a :g #x44 :b #x4d :a #x80) + (new 'static 'rgba :r #x15 :g #x42 :b #x4b :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x49 :a #x80) + (new 'static 'rgba :r #x9 :g #x39 :b #x46 :a #x80) + (new 'static 'rgba :r #x5 :g #x36 :b #x42 :a #x80) + (new 'static 'rgba :r #x4 :g #x34 :b #x40 :a #x80) + (new 'static 'rgba :r #x3 :g #x33 :b #x3e :a #x80) + (new 'static 'rgba :r #x2 :g #x32 :b #x3d :a #x80) + (new 'static 'rgba :r #x2 :g #x31 :b #x3d :a #x80) + (new 'static 'rgba :r #x2 :g #x31 :b #x3c :a #x80) + (new 'static 'rgba :r #x2 :g #x31 :b #x3c :a #x80) + (new 'static 'rgba :r #x3 :g #x32 :b #x3d :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x3d :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x3e :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x3e :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x3f :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x3f :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x3f :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x3f :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x3f :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3f :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3e :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3c :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #x3c :a #x80) + (new 'static 'rgba :r #x7 :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #xc :g #x3a :b #x49 :a #x80) + (new 'static 'rgba :r #x13 :g #x40 :b #x50 :a #x80) + (new 'static 'rgba :r #x1b :g #x48 :b #x57 :a #x80) + (new 'static 'rgba :r #x22 :g #x52 :b #x5d :a #x80) + (new 'static 'rgba :r #x26 :g #x52 :b #x5f :a #x80) + (new 'static 'rgba :r #x26 :g #x56 :b #x5f :a #x80) + (new 'static 'rgba :r #x24 :g #x51 :b #x5d :a #x80) + (new 'static 'rgba :r #x21 :g #x4f :b #x5c :a #x80) + (new 'static 'rgba :r #x1e :g #x4b :b #x5a :a #x80) + (new 'static 'rgba :r #x1c :g #x4a :b #x59 :a #x80) + (new 'static 'rgba :r #x19 :g #x47 :b #x57 :a #x80) + (new 'static 'rgba :r #x18 :g #x47 :b #x56 :a #x80) + (new 'static 'rgba :r #x19 :g #x47 :b #x56 :a #x80) + (new 'static 'rgba :r #x1b :g #x4a :b #x55 :a #x80) + (new 'static 'rgba :r #x1e :g #x49 :b #x55 :a #x80) + (new 'static 'rgba :r #x20 :g #x4c :b #x54 :a #x80) + (new 'static 'rgba :r #x20 :g #x4b :b #x51 :a #x80) + (new 'static 'rgba :r #x1d :g #x46 :b #x4d :a #x80) + (new 'static 'rgba :r #x19 :g #x44 :b #x4b :a #x80) + (new 'static 'rgba :r #x15 :g #x41 :b #x4a :a #x80) + (new 'static 'rgba :r #x11 :g #x3d :b #x48 :a #x80) + (new 'static 'rgba :r #xd :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x9 :g #x38 :b #x43 :a #x80) + (new 'static 'rgba :r #x5 :g #x36 :b #x40 :a #x80) + (new 'static 'rgba :r #x4 :g #x35 :b #x3f :a #x80) + (new 'static 'rgba :r #x3 :g #x34 :b #x3e :a #x80) + (new 'static 'rgba :r #x3 :g #x33 :b #x3e :a #x80) + (new 'static 'rgba :r #x3 :g #x32 :b #x3d :a #x80) + (new 'static 'rgba :r #x3 :g #x32 :b #x3d :a #x80) + (new 'static 'rgba :r #x3 :g #x32 :b #x3d :a #x80) + (new 'static 'rgba :r #x3 :g #x32 :b #x3e :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x3e :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x3e :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #x3e :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #x3e :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3e :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3d :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #x3d :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3b :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x3a :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x6 :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #xb :g #x3a :b #x49 :a #x80) + (new 'static 'rgba :r #x11 :g #x3e :b #x4f :a #x80) + (new 'static 'rgba :r #x18 :g #x46 :b #x55 :a #x80) + (new 'static 'rgba :r #x1d :g #x4c :b #x59 :a #x80) + (new 'static 'rgba :r #x20 :g #x4c :b #x5b :a #x80) + (new 'static 'rgba :r #x1f :g #x4c :b #x5b :a #x80) + (new 'static 'rgba :r #x1c :g #x4a :b #x59 :a #x80) + (new 'static 'rgba :r #x1a :g #x49 :b #x58 :a #x80) + (new 'static 'rgba :r #x19 :g #x47 :b #x57 :a #x80) + (new 'static 'rgba :r #x1a :g #x47 :b #x57 :a #x80) + (new 'static 'rgba :r #x19 :g #x4a :b #x56 :a #x80) + (new 'static 'rgba :r #x1b :g #x48 :b #x57 :a #x80) + (new 'static 'rgba :r #x1b :g #x49 :b #x56 :a #x80) + (new 'static 'rgba :r #x1b :g #x47 :b #x54 :a #x80) + (new 'static 'rgba :r #x1c :g #x49 :b #x55 :a #x80) + (new 'static 'rgba :r #x1e :g #x4c :b #x55 :a #x80) + (new 'static 'rgba :r #x20 :g #x4b :b #x53 :a #x80) + (new 'static 'rgba :r #x20 :g #x4a :b #x50 :a #x80) + (new 'static 'rgba :r #x1e :g #x48 :b #x4e :a #x80) + (new 'static 'rgba :r #x1b :g #x46 :b #x4c :a #x80) + (new 'static 'rgba :r #x17 :g #x43 :b #x4a :a #x80) + (new 'static 'rgba :r #x15 :g #x41 :b #x49 :a #x80) + (new 'static 'rgba :r #x12 :g #x3f :b #x48 :a #x80) + (new 'static 'rgba :r #xd :g #x3b :b #x45 :a #x80) + (new 'static 'rgba :r #x8 :g #x38 :b #x42 :a #x80) + (new 'static 'rgba :r #x6 :g #x35 :b #x40 :a #x80) + (new 'static 'rgba :r #x5 :g #x34 :b #x3f :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x3f :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x3e :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x3d :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #x3d :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #x3d :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3d :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3d :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) + (new 'static 'rgba :r #x2 :g #x30 :b #x3c :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3b :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) + (new 'static 'rgba :r #x5 :g #x30 :b #x40 :a #x80) + (new 'static 'rgba :r #xa :g #x39 :b #x47 :a #x80) + (new 'static 'rgba :r #xe :g #x3b :b #x4d :a #x80) + (new 'static 'rgba :r #x12 :g #x3f :b #x50 :a #x80) + (new 'static 'rgba :r #x15 :g #x43 :b #x54 :a #x80) + (new 'static 'rgba :r #x16 :g #x42 :b #x54 :a #x80) + (new 'static 'rgba :r #x14 :g #x42 :b #x53 :a #x80) + (new 'static 'rgba :r #x13 :g #x43 :b #x53 :a #x80) + (new 'static 'rgba :r #x13 :g #x40 :b #x52 :a #x80) + (new 'static 'rgba :r #x13 :g #x3f :b #x52 :a #x80) + (new 'static 'rgba :r #x14 :g #x42 :b #x53 :a #x80) + (new 'static 'rgba :r #x14 :g #x44 :b #x52 :a #x80) + (new 'static 'rgba :r #x14 :g #x43 :b #x51 :a #x80) + (new 'static 'rgba :r #x14 :g #x43 :b #x50 :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x4f :a #x80) + (new 'static 'rgba :r #x14 :g #x42 :b #x50 :a #x80) + (new 'static 'rgba :r #x19 :g #x44 :b #x51 :a #x80) + (new 'static 'rgba :r #x1e :g #x4a :b #x54 :a #x80) + (new 'static 'rgba :r #x22 :g #x4d :b #x54 :a #x80) + (new 'static 'rgba :r #x22 :g #x4e :b #x53 :a #x80) + (new 'static 'rgba :r #x20 :g #x4c :b #x52 :a #x80) + (new 'static 'rgba :r #x1d :g #x49 :b #x50 :a #x80) + (new 'static 'rgba :r #x19 :g #x46 :b #x4e :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x4b :a #x80) + (new 'static 'rgba :r #xf :g #x3c :b #x47 :a #x80) + (new 'static 'rgba :r #xb :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x8 :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x6 :g #x33 :b #x3f :a #x80) + (new 'static 'rgba :r #x5 :g #x31 :b #x3e :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3d :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3c :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3b :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3d :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3d :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3d :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3c :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2b :b #x39 :a #x80) + (new 'static 'rgba :r #x4 :g #x30 :b #x3e :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x45 :a #x80) + (new 'static 'rgba :r #xb :g #x39 :b #x49 :a #x80) + (new 'static 'rgba :r #xd :g #x3b :b #x4c :a #x80) + (new 'static 'rgba :r #xe :g #x3b :b #x4d :a #x80) + (new 'static 'rgba :r #xe :g #x3a :b #x4e :a #x80) + (new 'static 'rgba :r #xd :g #x39 :b #x4e :a #x80) + (new 'static 'rgba :r #xd :g #x3b :b #x4e :a #x80) + (new 'static 'rgba :r #xe :g #x3d :b #x4f :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x4f :a #x80) + (new 'static 'rgba :r #xf :g #x3d :b #x4f :a #x80) + (new 'static 'rgba :r #xf :g #x3d :b #x4d :a #x80) + (new 'static 'rgba :r #xd :g #x3b :b #x4b :a #x80) + (new 'static 'rgba :r #xc :g #x3a :b #x49 :a #x80) + (new 'static 'rgba :r #xb :g #x39 :b #x48 :a #x80) + (new 'static 'rgba :r #xe :g #x3b :b #x4b :a #x80) + (new 'static 'rgba :r #x13 :g #x42 :b #x4e :a #x80) + (new 'static 'rgba :r #x1a :g #x47 :b #x53 :a #x80) + (new 'static 'rgba :r #x20 :g #x4e :b #x56 :a #x80) + (new 'static 'rgba :r #x23 :g #x4f :b #x57 :a #x80) + (new 'static 'rgba :r #x22 :g #x4e :b #x54 :a #x80) + (new 'static 'rgba :r #x1f :g #x4c :b #x52 :a #x80) + (new 'static 'rgba :r #x19 :g #x46 :b #x4f :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x4c :a #x80) + (new 'static 'rgba :r #xe :g #x3b :b #x48 :a #x80) + (new 'static 'rgba :r #x9 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x6 :g #x32 :b #x40 :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x3e :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3d :a #x80) + (new 'static 'rgba :r #x4 :g #x30 :b #x3c :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3d :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x40 :a #x80) + (new 'static 'rgba :r #x6 :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x6 :g #x33 :b #x41 :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x40 :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2b :b #x39 :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3d :a #x80) + (new 'static 'rgba :r #x6 :g #x32 :b #x43 :a #x80) + (new 'static 'rgba :r #x8 :g #x37 :b #x47 :a #x80) + (new 'static 'rgba :r #x9 :g #x39 :b #x49 :a #x80) + (new 'static 'rgba :r #x9 :g #x37 :b #x49 :a #x80) + (new 'static 'rgba :r #xa :g #x3a :b #x4a :a #x80) + (new 'static 'rgba :r #xb :g #x37 :b #x4c :a #x80) + (new 'static 'rgba :r #xc :g #x3b :b #x4e :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x51 :a #x80) + (new 'static 'rgba :r #x11 :g #x40 :b #x51 :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x51 :a #x80) + (new 'static 'rgba :r #xe :g #x3e :b #x4e :a #x80) + (new 'static 'rgba :r #xc :g #x3b :b #x4b :a #x80) + (new 'static 'rgba :r #xa :g #x37 :b #x48 :a #x80) + (new 'static 'rgba :r #xa :g #x38 :b #x47 :a #x80) + (new 'static 'rgba :r #xd :g #x3b :b #x49 :a #x80) + (new 'static 'rgba :r #x12 :g #x41 :b #x4d :a #x80) + (new 'static 'rgba :r #x19 :g #x48 :b #x52 :a #x80) + (new 'static 'rgba :r #x20 :g #x4e :b #x56 :a #x80) + (new 'static 'rgba :r #x24 :g #x51 :b #x57 :a #x80) + (new 'static 'rgba :r #x25 :g #x50 :b #x57 :a #x80) + (new 'static 'rgba :r #x20 :g #x4e :b #x55 :a #x80) + (new 'static 'rgba :r #x1b :g #x49 :b #x51 :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x4d :a #x80) + (new 'static 'rgba :r #xd :g #x3a :b #x48 :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x40 :a #x80) + (new 'static 'rgba :r #x5 :g #x31 :b #x3e :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x3e :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3d :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3d :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3d :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x40 :a #x80) + (new 'static 'rgba :r #x7 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x8 :g #x35 :b #x45 :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x45 :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x45 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3d :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2f :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x5 :g #x30 :b #x41 :a #x80) + (new 'static 'rgba :r #x7 :g #x36 :b #x45 :a #x80) + (new 'static 'rgba :r #x7 :g #x39 :b #x47 :a #x80) + (new 'static 'rgba :r #x9 :g #x39 :b #x48 :a #x80) + (new 'static 'rgba :r #xa :g #x3a :b #x4a :a #x80) + (new 'static 'rgba :r #xc :g #x3b :b #x4d :a #x80) + (new 'static 'rgba :r #xf :g #x40 :b #x51 :a #x80) + (new 'static 'rgba :r #x12 :g #x41 :b #x54 :a #x80) + (new 'static 'rgba :r #x14 :g #x40 :b #x54 :a #x80) + (new 'static 'rgba :r #x14 :g #x45 :b #x54 :a #x80) + (new 'static 'rgba :r #x12 :g #x40 :b #x51 :a #x80) + (new 'static 'rgba :r #xf :g #x3f :b #x4e :a #x80) + (new 'static 'rgba :r #xe :g #x3b :b #x4b :a #x80) + (new 'static 'rgba :r #xe :g #x3a :b #x49 :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x4b :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x4c :a #x80) + (new 'static 'rgba :r #x19 :g #x49 :b #x4f :a #x80) + (new 'static 'rgba :r #x20 :g #x4e :b #x53 :a #x80) + (new 'static 'rgba :r #x25 :g #x51 :b #x56 :a #x80) + (new 'static 'rgba :r #x25 :g #x52 :b #x57 :a #x80) + (new 'static 'rgba :r #x22 :g #x4e :b #x56 :a #x80) + (new 'static 'rgba :r #x1c :g #x48 :b #x52 :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x4e :a #x80) + (new 'static 'rgba :r #xd :g #x3b :b #x48 :a #x80) + (new 'static 'rgba :r #x9 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x7 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x7 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x7 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x6 :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x5 :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x6 :g #x33 :b #x41 :a #x80) + (new 'static 'rgba :r #x7 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x9 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #xb :g #x39 :b #x47 :a #x80) + (new 'static 'rgba :r #xb :g #x3a :b #x49 :a #x80) + (new 'static 'rgba :r #xa :g #x39 :b #x49 :a #x80) + (new 'static 'rgba :r #xa :g #x38 :b #x48 :a #x80) + (new 'static 'rgba :r #x8 :g #x35 :b #x45 :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3b :a #x80) + (new 'static 'rgba :r #x5 :g #x30 :b #x40 :a #x80) + (new 'static 'rgba :r #x6 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x8 :g #x38 :b #x47 :a #x80) + (new 'static 'rgba :r #xa :g #x38 :b #x49 :a #x80) + (new 'static 'rgba :r #xd :g #x3a :b #x4c :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x50 :a #x80) + (new 'static 'rgba :r #x14 :g #x43 :b #x54 :a #x80) + (new 'static 'rgba :r #x16 :g #x46 :b #x57 :a #x80) + (new 'static 'rgba :r #x16 :g #x44 :b #x56 :a #x80) + (new 'static 'rgba :r #x15 :g #x46 :b #x54 :a #x80) + (new 'static 'rgba :r #x14 :g #x42 :b #x51 :a #x80) + (new 'static 'rgba :r #x11 :g #x41 :b #x4e :a #x80) + (new 'static 'rgba :r #x10 :g #x41 :b #x4b :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x4a :a #x80) + (new 'static 'rgba :r #x12 :g #x40 :b #x49 :a #x80) + (new 'static 'rgba :r #x15 :g #x45 :b #x4a :a #x80) + (new 'static 'rgba :r #x1a :g #x48 :b #x4a :a #x80) + (new 'static 'rgba :r #x1f :g #x4a :b #x4b :a #x80) + (new 'static 'rgba :r #x23 :g #x4d :b #x4e :a #x80) + (new 'static 'rgba :r #x26 :g #x51 :b #x53 :a #x80) + (new 'static 'rgba :r #x23 :g #x51 :b #x55 :a #x80) + (new 'static 'rgba :r #x1d :g #x49 :b #x51 :a #x80) + (new 'static 'rgba :r #x15 :g #x45 :b #x4c :a #x80) + (new 'static 'rgba :r #xf :g #x3d :b #x48 :a #x80) + (new 'static 'rgba :r #xb :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x9 :g #x3a :b #x44 :a #x80) + (new 'static 'rgba :r #x9 :g #x38 :b #x46 :a #x80) + (new 'static 'rgba :r #x9 :g #x37 :b #x47 :a #x80) + (new 'static 'rgba :r #xa :g #x39 :b #x48 :a #x80) + (new 'static 'rgba :r #x9 :g #x38 :b #x47 :a #x80) + (new 'static 'rgba :r #x9 :g #x36 :b #x46 :a #x80) + (new 'static 'rgba :r #x9 :g #x37 :b #x46 :a #x80) + (new 'static 'rgba :r #xa :g #x38 :b #x47 :a #x80) + (new 'static 'rgba :r #xc :g #x3a :b #x48 :a #x80) + (new 'static 'rgba :r #xe :g #x3d :b #x4b :a #x80) + (new 'static 'rgba :r #xf :g #x3f :b #x4c :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x4d :a #x80) + (new 'static 'rgba :r #xe :g #x3d :b #x4c :a #x80) + (new 'static 'rgba :r #xc :g #x39 :b #x4a :a #x80) + (new 'static 'rgba :r #x9 :g #x36 :b #x46 :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x40 :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x4 :g #x2f :b #x3d :a #x80) + (new 'static 'rgba :r #x5 :g #x31 :b #x42 :a #x80) + (new 'static 'rgba :r #x8 :g #x38 :b #x46 :a #x80) + (new 'static 'rgba :r #xa :g #x39 :b #x48 :a #x80) + (new 'static 'rgba :r #xd :g #x3a :b #x4b :a #x80) + (new 'static 'rgba :r #x12 :g #x3f :b #x4f :a #x80) + (new 'static 'rgba :r #x16 :g #x42 :b #x54 :a #x80) + (new 'static 'rgba :r #x1d :g #x4a :b #x59 :a #x80) + (new 'static 'rgba :r #x1e :g #x4a :b #x59 :a #x80) + (new 'static 'rgba :r #x1a :g #x49 :b #x56 :a #x80) + (new 'static 'rgba :r #x16 :g #x44 :b #x51 :a #x80) + (new 'static 'rgba :r #x13 :g #x42 :b #x4e :a #x80) + (new 'static 'rgba :r #x11 :g #x42 :b #x4a :a #x80) + (new 'static 'rgba :r #xf :g #x42 :b #x47 :a #x80) + (new 'static 'rgba :r #x10 :g #x42 :b #x45 :a #x80) + (new 'static 'rgba :r #x12 :g #x41 :b #x44 :a #x80) + (new 'static 'rgba :r #x15 :g #x42 :b #x41 :a #x80) + (new 'static 'rgba :r #x1a :g #x43 :b #x42 :a #x80) + (new 'static 'rgba :r #x1d :g #x45 :b #x42 :a #x80) + (new 'static 'rgba :r #x21 :g #x47 :b #x42 :a #x80) + (new 'static 'rgba :r #x23 :g #x4b :b #x48 :a #x80) + (new 'static 'rgba :r #x22 :g #x4b :b #x4d :a #x80) + (new 'static 'rgba :r #x1d :g #x49 :b #x4a :a #x80) + (new 'static 'rgba :r #x17 :g #x46 :b #x49 :a #x80) + (new 'static 'rgba :r #x12 :g #x41 :b #x48 :a #x80) + (new 'static 'rgba :r #xe :g #x3d :b #x47 :a #x80) + (new 'static 'rgba :r #xc :g #x3d :b #x46 :a #x80) + (new 'static 'rgba :r #xc :g #x3c :b #x48 :a #x80) + (new 'static 'rgba :r #xd :g #x3c :b #x49 :a #x80) + (new 'static 'rgba :r #xc :g #x3c :b #x4a :a #x80) + (new 'static 'rgba :r #xc :g #x3c :b #x4a :a #x80) + (new 'static 'rgba :r #xc :g #x3b :b #x4b :a #x80) + (new 'static 'rgba :r #xd :g #x3d :b #x4b :a #x80) + (new 'static 'rgba :r #xf :g #x3d :b #x4c :a #x80) + (new 'static 'rgba :r #x12 :g #x40 :b #x4e :a #x80) + (new 'static 'rgba :r #x14 :g #x42 :b #x4f :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x50 :a #x80) + (new 'static 'rgba :r #x13 :g #x40 :b #x4f :a #x80) + (new 'static 'rgba :r #x11 :g #x3e :b #x4e :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x4c :a #x80) + (new 'static 'rgba :r #xb :g #x39 :b #x48 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3c :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3d :a #x80) + (new 'static 'rgba :r #x5 :g #x34 :b #x40 :a #x80) + (new 'static 'rgba :r #x7 :g #x33 :b #x45 :a #x80) + (new 'static 'rgba :r #x9 :g #x39 :b #x48 :a #x80) + (new 'static 'rgba :r #xc :g #x3a :b #x4b :a #x80) + (new 'static 'rgba :r #x12 :g #x3f :b #x4f :a #x80) + (new 'static 'rgba :r #x17 :g #x47 :b #x54 :a #x80) + (new 'static 'rgba :r #x1d :g #x48 :b #x56 :a #x80) + (new 'static 'rgba :r #x21 :g #x52 :b #x5a :a #x80) + (new 'static 'rgba :r #x21 :g #x4f :b #x58 :a #x80) + (new 'static 'rgba :r #x1e :g #x4c :b #x55 :a #x80) + (new 'static 'rgba :r #x18 :g #x49 :b #x4f :a #x80) + (new 'static 'rgba :r #x12 :g #x45 :b #x4b :a #x80) + (new 'static 'rgba :r #xf :g #x44 :b #x46 :a #x80) + (new 'static 'rgba :r #xe :g #x3f :b #x42 :a #x80) + (new 'static 'rgba :r #xf :g #x3d :b #x3e :a #x80) + (new 'static 'rgba :r #x11 :g #x3d :b #x3d :a #x80) + (new 'static 'rgba :r #x14 :g #x3e :b #x3c :a #x80) + (new 'static 'rgba :r #x19 :g #x40 :b #x39 :a #x80) + (new 'static 'rgba :r #x1c :g #x41 :b #x38 :a #x80) + (new 'static 'rgba :r #x1f :g #x43 :b #x3b :a #x80) + (new 'static 'rgba :r #x20 :g #x45 :b #x3e :a #x80) + (new 'static 'rgba :r #x20 :g #x44 :b #x3e :a #x80) + (new 'static 'rgba :r #x1c :g #x44 :b #x40 :a #x80) + (new 'static 'rgba :r #x18 :g #x43 :b #x42 :a #x80) + (new 'static 'rgba :r #x15 :g #x42 :b #x46 :a #x80) + (new 'static 'rgba :r #x11 :g #x42 :b #x49 :a #x80) + (new 'static 'rgba :r #x10 :g #x3f :b #x48 :a #x80) + (new 'static 'rgba :r #xe :g #x3e :b #x48 :a #x80) + (new 'static 'rgba :r #xe :g #x3f :b #x49 :a #x80) + (new 'static 'rgba :r #xe :g #x3e :b #x4a :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x4b :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x4c :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x4d :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x50 :a #x80) + (new 'static 'rgba :r #x16 :g #x44 :b #x51 :a #x80) + (new 'static 'rgba :r #x18 :g #x46 :b #x52 :a #x80) + (new 'static 'rgba :r #x17 :g #x45 :b #x52 :a #x80) + (new 'static 'rgba :r #x16 :g #x44 :b #x51 :a #x80) + (new 'static 'rgba :r #x15 :g #x43 :b #x50 :a #x80) + (new 'static 'rgba :r #x12 :g #x40 :b #x4e :a #x80) + (new 'static 'rgba :r #xe :g #x3b :b #x49 :a #x80) + (new 'static 'rgba :r #x7 :g #x36 :b #x42 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x3d :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x3f :a #x80) + (new 'static 'rgba :r #x7 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #xa :g #x39 :b #x48 :a #x80) + (new 'static 'rgba :r #xc :g #x3b :b #x4b :a #x80) + (new 'static 'rgba :r #x11 :g #x3d :b #x4e :a #x80) + (new 'static 'rgba :r #x17 :g #x45 :b #x52 :a #x80) + (new 'static 'rgba :r #x1d :g #x49 :b #x55 :a #x80) + (new 'static 'rgba :r #x20 :g #x4c :b #x55 :a #x80) + (new 'static 'rgba :r #x1c :g #x47 :b #x4f :a #x80) + (new 'static 'rgba :r #x1c :g #x48 :b #x51 :a #x80) + (new 'static 'rgba :r #x1f :g #x50 :b #x53 :a #x80) + (new 'static 'rgba :r #x1a :g #x4b :b #x4e :a #x80) + (new 'static 'rgba :r #x12 :g #x43 :b #x45 :a #x80) + (new 'static 'rgba :r #xf :g #x3f :b #x40 :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x3b :a #x80) + (new 'static 'rgba :r #xf :g #x3c :b #x39 :a #x80) + (new 'static 'rgba :r #x10 :g #x3d :b #x37 :a #x80) + (new 'static 'rgba :r #x14 :g #x3f :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x40 :b #x34 :a #x80) + (new 'static 'rgba :r #x1a :g #x41 :b #x35 :a #x80) + (new 'static 'rgba :r #x1e :g #x42 :b #x36 :a #x80) + (new 'static 'rgba :r #x1f :g #x43 :b #x35 :a #x80) + (new 'static 'rgba :r #x1d :g #x42 :b #x38 :a #x80) + (new 'static 'rgba :r #x1b :g #x41 :b #x39 :a #x80) + (new 'static 'rgba :r #x17 :g #x40 :b #x3e :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x43 :a #x80) + (new 'static 'rgba :r #x12 :g #x41 :b #x47 :a #x80) + (new 'static 'rgba :r #x10 :g #x42 :b #x48 :a #x80) + (new 'static 'rgba :r #x10 :g #x42 :b #x49 :a #x80) + (new 'static 'rgba :r #xf :g #x3f :b #x49 :a #x80) + (new 'static 'rgba :r #xf :g #x3d :b #x49 :a #x80) + (new 'static 'rgba :r #xe :g #x40 :b #x4b :a #x80) + (new 'static 'rgba :r #xf :g #x40 :b #x4c :a #x80) + (new 'static 'rgba :r #x12 :g #x43 :b #x4e :a #x80) + (new 'static 'rgba :r #x15 :g #x42 :b #x51 :a #x80) + (new 'static 'rgba :r #x19 :g #x48 :b #x53 :a #x80) + (new 'static 'rgba :r #x1a :g #x48 :b #x54 :a #x80) + (new 'static 'rgba :r #x19 :g #x47 :b #x53 :a #x80) + (new 'static 'rgba :r #x19 :g #x47 :b #x53 :a #x80) + (new 'static 'rgba :r #x17 :g #x45 :b #x52 :a #x80) + (new 'static 'rgba :r #x13 :g #x42 :b #x4f :a #x80) + (new 'static 'rgba :r #xf :g #x3b :b #x4b :a #x80) + (new 'static 'rgba :r #x9 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3b :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) + (new 'static 'rgba :r #x7 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #xa :g #x37 :b #x47 :a #x80) + (new 'static 'rgba :r #xd :g #x3c :b #x4b :a #x80) + (new 'static 'rgba :r #x12 :g #x42 :b #x4f :a #x80) + (new 'static 'rgba :r #x17 :g #x46 :b #x52 :a #x80) + (new 'static 'rgba :r #x1b :g #x49 :b #x54 :a #x80) + (new 'static 'rgba :r #x1e :g #x48 :b #x54 :a #x80) + (new 'static 'rgba :r #x18 :g #x43 :b #x4c :a #x80) + (new 'static 'rgba :r #x12 :g #x3f :b #x46 :a #x80) + (new 'static 'rgba :r #x14 :g #x44 :b #x48 :a #x80) + (new 'static 'rgba :r #x1a :g #x4b :b #x4c :a #x80) + (new 'static 'rgba :r #x1b :g #x4a :b #x4a :a #x80) + (new 'static 'rgba :r #x13 :g #x41 :b #x41 :a #x80) + (new 'static 'rgba :r #x10 :g #x3d :b #x3c :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x39 :a #x80) + (new 'static 'rgba :r #xf :g #x3d :b #x36 :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x36 :a #x80) + (new 'static 'rgba :r #x12 :g #x3e :b #x31 :a #x80) + (new 'static 'rgba :r #x15 :g #x40 :b #x2e :a #x80) + (new 'static 'rgba :r #x18 :g #x40 :b #x2e :a #x80) + (new 'static 'rgba :r #x1b :g #x41 :b #x2f :a #x80) + (new 'static 'rgba :r #x1c :g #x42 :b #x31 :a #x80) + (new 'static 'rgba :r #x1b :g #x42 :b #x32 :a #x80) + (new 'static 'rgba :r #x19 :g #x42 :b #x34 :a #x80) + (new 'static 'rgba :r #x16 :g #x40 :b #x3b :a #x80) + (new 'static 'rgba :r #x13 :g #x3f :b #x3e :a #x80) + (new 'static 'rgba :r #x11 :g #x41 :b #x44 :a #x80) + (new 'static 'rgba :r #x10 :g #x3f :b #x46 :a #x80) + (new 'static 'rgba :r #x10 :g #x42 :b #x47 :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x48 :a #x80) + (new 'static 'rgba :r #xe :g #x41 :b #x48 :a #x80) + (new 'static 'rgba :r #xe :g #x41 :b #x49 :a #x80) + (new 'static 'rgba :r #xe :g #x40 :b #x4a :a #x80) + (new 'static 'rgba :r #x11 :g #x3f :b #x4d :a #x80) + (new 'static 'rgba :r #x15 :g #x42 :b #x50 :a #x80) + (new 'static 'rgba :r #x19 :g #x48 :b #x53 :a #x80) + (new 'static 'rgba :r #x1c :g #x48 :b #x55 :a #x80) + (new 'static 'rgba :r #x1b :g #x48 :b #x55 :a #x80) + (new 'static 'rgba :r #x1a :g #x48 :b #x54 :a #x80) + (new 'static 'rgba :r #x16 :g #x44 :b #x52 :a #x80) + (new 'static 'rgba :r #x13 :g #x3f :b #x50 :a #x80) + (new 'static 'rgba :r #xe :g #x3a :b #x4b :a #x80) + (new 'static 'rgba :r #x8 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x3b :a #x80) + (new 'static 'rgba :r #x5 :g #x31 :b #x40 :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #xc :g #x38 :b #x49 :a #x80) + (new 'static 'rgba :r #x10 :g #x41 :b #x4e :a #x80) + (new 'static 'rgba :r #x17 :g #x45 :b #x52 :a #x80) + (new 'static 'rgba :r #x1b :g #x47 :b #x54 :a #x80) + (new 'static 'rgba :r #x1d :g #x4c :b #x54 :a #x80) + (new 'static 'rgba :r #x19 :g #x43 :b #x4c :a #x80) + (new 'static 'rgba :r #x11 :g #x40 :b #x46 :a #x80) + (new 'static 'rgba :r #x10 :g #x3d :b #x43 :a #x80) + (new 'static 'rgba :r #x12 :g #x41 :b #x45 :a #x80) + (new 'static 'rgba :r #x16 :g #x45 :b #x46 :a #x80) + (new 'static 'rgba :r #x1a :g #x48 :b #x47 :a #x80) + (new 'static 'rgba :r #x13 :g #x40 :b #x3d :a #x80) + (new 'static 'rgba :r #xf :g #x3c :b #x37 :a #x80) + (new 'static 'rgba :r #xe :g #x3e :b #x34 :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x35 :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x2c :a #x80) + (new 'static 'rgba :r #x11 :g #x3d :b #x2a :a #x80) + (new 'static 'rgba :r #x14 :g #x3e :b #x29 :a #x80) + (new 'static 'rgba :r #x16 :g #x3f :b #x27 :a #x80) + (new 'static 'rgba :r #x17 :g #x3f :b #x29 :a #x80) + (new 'static 'rgba :r #x16 :g #x3f :b #x2c :a #x80) + (new 'static 'rgba :r #x15 :g #x3f :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x3f :b #x36 :a #x80) + (new 'static 'rgba :r #x11 :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x40 :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x43 :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x45 :a #x80) + (new 'static 'rgba :r #xf :g #x40 :b #x46 :a #x80) + (new 'static 'rgba :r #xf :g #x3f :b #x47 :a #x80) + (new 'static 'rgba :r #xe :g #x40 :b #x47 :a #x80) + (new 'static 'rgba :r #xe :g #x41 :b #x48 :a #x80) + (new 'static 'rgba :r #x10 :g #x3f :b #x4a :a #x80) + (new 'static 'rgba :r #x12 :g #x41 :b #x4e :a #x80) + (new 'static 'rgba :r #x16 :g #x44 :b #x51 :a #x80) + (new 'static 'rgba :r #x19 :g #x48 :b #x53 :a #x80) + (new 'static 'rgba :r #x19 :g #x47 :b #x54 :a #x80) + (new 'static 'rgba :r #x17 :g #x46 :b #x54 :a #x80) + (new 'static 'rgba :r #x15 :g #x42 :b #x52 :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x4f :a #x80) + (new 'static 'rgba :r #xc :g #x3b :b #x4a :a #x80) + (new 'static 'rgba :r #x6 :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3b :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x40 :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x45 :a #x80) + (new 'static 'rgba :r #xe :g #x3a :b #x4b :a #x80) + (new 'static 'rgba :r #x14 :g #x43 :b #x50 :a #x80) + (new 'static 'rgba :r #x1a :g #x48 :b #x55 :a #x80) + (new 'static 'rgba :r #x1f :g #x49 :b #x54 :a #x80) + (new 'static 'rgba :r #x1a :g #x46 :b #x4f :a #x80) + (new 'static 'rgba :r #x13 :g #x41 :b #x48 :a #x80) + (new 'static 'rgba :r #x10 :g #x3d :b #x44 :a #x80) + (new 'static 'rgba :r #x11 :g #x3f :b #x43 :a #x80) + (new 'static 'rgba :r #x12 :g #x40 :b #x42 :a #x80) + (new 'static 'rgba :r #x19 :g #x47 :b #x47 :a #x80) + (new 'static 'rgba :r #x18 :g #x45 :b #x40 :a #x80) + (new 'static 'rgba :r #x11 :g #x3d :b #x36 :a #x80) + (new 'static 'rgba :r #xf :g #x3c :b #x33 :a #x80) + (new 'static 'rgba :r #xe :g #x3e :b #x31 :a #x80) + (new 'static 'rgba :r #xe :g #x3d :b #x30 :a #x80) + (new 'static 'rgba :r #xd :g #x3c :b #x2b :a #x80) + (new 'static 'rgba :r #xd :g #x3b :b #x26 :a #x80) + (new 'static 'rgba :r #xc :g #x3a :b #x22 :a #x80) + (new 'static 'rgba :r #xd :g #x3a :b #x1c :a #x80) + (new 'static 'rgba :r #xf :g #x3a :b #x1d :a #x80) + (new 'static 'rgba :r #x10 :g #x3b :b #x21 :a #x80) + (new 'static 'rgba :r #x10 :g #x3c :b #x24 :a #x80) + (new 'static 'rgba :r #x11 :g #x3d :b #x2b :a #x80) + (new 'static 'rgba :r #x11 :g #x3e :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x38 :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x3c :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x40 :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x42 :a #x80) + (new 'static 'rgba :r #xf :g #x40 :b #x43 :a #x80) + (new 'static 'rgba :r #xe :g #x40 :b #x44 :a #x80) + (new 'static 'rgba :r #xe :g #x3f :b #x44 :a #x80) + (new 'static 'rgba :r #xe :g #x40 :b #x46 :a #x80) + (new 'static 'rgba :r #xf :g #x40 :b #x48 :a #x80) + (new 'static 'rgba :r #x11 :g #x41 :b #x4b :a #x80) + (new 'static 'rgba :r #x13 :g #x42 :b #x4f :a #x80) + (new 'static 'rgba :r #x16 :g #x46 :b #x53 :a #x80) + (new 'static 'rgba :r #x16 :g #x45 :b #x54 :a #x80) + (new 'static 'rgba :r #x15 :g #x43 :b #x53 :a #x80) + (new 'static 'rgba :r #x11 :g #x41 :b #x50 :a #x80) + (new 'static 'rgba :r #xd :g #x3d :b #x4d :a #x80) + (new 'static 'rgba :r #xa :g #x36 :b #x48 :a #x80) + (new 'static 'rgba :r #x5 :g #x30 :b #x3f :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x31 :b #x3c :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x41 :a #x80) + (new 'static 'rgba :r #x8 :g #x35 :b #x45 :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x4a :a #x80) + (new 'static 'rgba :r #x15 :g #x45 :b #x51 :a #x80) + (new 'static 'rgba :r #x1d :g #x4b :b #x56 :a #x80) + (new 'static 'rgba :r #x1f :g #x4c :b #x53 :a #x80) + (new 'static 'rgba :r #x18 :g #x46 :b #x4e :a #x80) + (new 'static 'rgba :r #x13 :g #x43 :b #x48 :a #x80) + (new 'static 'rgba :r #x13 :g #x43 :b #x47 :a #x80) + (new 'static 'rgba :r #x13 :g #x41 :b #x44 :a #x80) + (new 'static 'rgba :r #x17 :g #x44 :b #x45 :a #x80) + (new 'static 'rgba :r #x18 :g #x46 :b #x44 :a #x80) + (new 'static 'rgba :r #x13 :g #x3e :b #x39 :a #x80) + (new 'static 'rgba :r #x10 :g #x3d :b #x33 :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x2d :a #x80) + (new 'static 'rgba :r #xf :g #x3d :b #x2a :a #x80) + (new 'static 'rgba :r #xe :g #x3d :b #x2a :a #x80) + (new 'static 'rgba :r #xc :g #x3a :b #x24 :a #x80) + (new 'static 'rgba :r #x9 :g #x38 :b #x21 :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x19 :a #x80) + (new 'static 'rgba :r #x8 :g #x35 :b #x17 :a #x80) + (new 'static 'rgba :r #x8 :g #x35 :b #x15 :a #x80) + (new 'static 'rgba :r #x9 :g #x36 :b #x16 :a #x80) + (new 'static 'rgba :r #xa :g #x38 :b #x1c :a #x80) + (new 'static 'rgba :r #xc :g #x3a :b #x23 :a #x80) + (new 'static 'rgba :r #xd :g #x3c :b #x2d :a #x80) + (new 'static 'rgba :r #xe :g #x3e :b #x35 :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #xe :g #x3f :b #x3e :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x40 :a #x80) + (new 'static 'rgba :r #xe :g #x3e :b #x41 :a #x80) + (new 'static 'rgba :r #xe :g #x3e :b #x42 :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x42 :a #x80) + (new 'static 'rgba :r #xe :g #x3f :b #x44 :a #x80) + (new 'static 'rgba :r #xd :g #x3f :b #x46 :a #x80) + (new 'static 'rgba :r #xf :g #x40 :b #x49 :a #x80) + (new 'static 'rgba :r #x10 :g #x41 :b #x4d :a #x80) + (new 'static 'rgba :r #x12 :g #x40 :b #x51 :a #x80) + (new 'static 'rgba :r #x12 :g #x42 :b #x52 :a #x80) + (new 'static 'rgba :r #x12 :g #x40 :b #x52 :a #x80) + (new 'static 'rgba :r #xf :g #x3c :b #x4f :a #x80) + (new 'static 'rgba :r #xb :g #x3b :b #x4a :a #x80) + (new 'static 'rgba :r #x7 :g #x35 :b #x44 :a #x80) + (new 'static 'rgba :r #x4 :g #x2f :b #x3d :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3c :a #x80) + (new 'static 'rgba :r #x4 :g #x30 :b #x3f :a #x80) + (new 'static 'rgba :r #x7 :g #x33 :b #x43 :a #x80) + (new 'static 'rgba :r #xc :g #x39 :b #x49 :a #x80) + (new 'static 'rgba :r #x13 :g #x43 :b #x50 :a #x80) + (new 'static 'rgba :r #x1b :g #x47 :b #x55 :a #x80) + (new 'static 'rgba :r #x1e :g #x4b :b #x55 :a #x80) + (new 'static 'rgba :r #x1d :g #x4c :b #x51 :a #x80) + (new 'static 'rgba :r #x18 :g #x48 :b #x4b :a #x80) + (new 'static 'rgba :r #x19 :g #x4a :b #x4b :a #x80) + (new 'static 'rgba :r #x18 :g #x47 :b #x49 :a #x80) + (new 'static 'rgba :r #x16 :g #x45 :b #x43 :a #x80) + (new 'static 'rgba :r #x12 :g #x3f :b #x3b :a #x80) + (new 'static 'rgba :r #xf :g #x3c :b #x34 :a #x80) + (new 'static 'rgba :r #xe :g #x3b :b #x2e :a #x80) + (new 'static 'rgba :r #xe :g #x3b :b #x29 :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x29 :a #x80) + (new 'static 'rgba :r #xd :g #x3a :b #x22 :a #x80) + (new 'static 'rgba :r #xa :g #x38 :b #x1f :a #x80) + (new 'static 'rgba :r #x8 :g #x35 :b #x18 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x12 :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #xe :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #xd :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x10 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x15 :a #x80) + (new 'static 'rgba :r #x8 :g #x37 :b #x1f :a #x80) + (new 'static 'rgba :r #xa :g #x3a :b #x26 :a #x80) + (new 'static 'rgba :r #xc :g #x3b :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x3d :b #x33 :a #x80) + (new 'static 'rgba :r #xe :g #x3e :b #x39 :a #x80) + (new 'static 'rgba :r #xe :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #xe :g #x3e :b #x3e :a #x80) + (new 'static 'rgba :r #xe :g #x3e :b #x3f :a #x80) + (new 'static 'rgba :r #xe :g #x3e :b #x3e :a #x80) + (new 'static 'rgba :r #xe :g #x3e :b #x3f :a #x80) + (new 'static 'rgba :r #xe :g #x3e :b #x44 :a #x80) + (new 'static 'rgba :r #xe :g #x3f :b #x47 :a #x80) + (new 'static 'rgba :r #xf :g #x3f :b #x4b :a #x80) + (new 'static 'rgba :r #x11 :g #x42 :b #x4f :a #x80) + (new 'static 'rgba :r #x11 :g #x3d :b #x51 :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x50 :a #x80) + (new 'static 'rgba :r #xd :g #x3b :b #x4c :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x46 :a #x80) + (new 'static 'rgba :r #x5 :g #x31 :b #x40 :a #x80) + (new 'static 'rgba :r #x3 :g #x2e :b #x3b :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x3f :a #x80) + (new 'static 'rgba :r #x5 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x9 :g #x38 :b #x46 :a #x80) + (new 'static 'rgba :r #x10 :g #x3d :b #x4c :a #x80) + (new 'static 'rgba :r #x14 :g #x44 :b #x50 :a #x80) + (new 'static 'rgba :r #x19 :g #x48 :b #x52 :a #x80) + (new 'static 'rgba :r #x19 :g #x48 :b #x50 :a #x80) + (new 'static 'rgba :r #x19 :g #x4b :b #x4c :a #x80) + (new 'static 'rgba :r #x16 :g #x45 :b #x46 :a #x80) + (new 'static 'rgba :r #x12 :g #x40 :b #x3e :a #x80) + (new 'static 'rgba :r #x10 :g #x3e :b #x3c :a #x80) + (new 'static 'rgba :r #xf :g #x3c :b #x37 :a #x80) + (new 'static 'rgba :r #xd :g #x3b :b #x30 :a #x80) + (new 'static 'rgba :r #xc :g #x3b :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x3b :b #x25 :a #x80) + (new 'static 'rgba :r #xc :g #x3a :b #x23 :a #x80) + (new 'static 'rgba :r #xa :g #x38 :b #x1e :a #x80) + (new 'static 'rgba :r #x9 :g #x36 :b #x19 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x14 :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x12 :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #xa :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #xa :a #x80) + (new 'static 'rgba :r #x3 :g #x32 :b #xb :a #x80) + (new 'static 'rgba :r #x4 :g #x33 :b #xe :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x17 :a #x80) + (new 'static 'rgba :r #x8 :g #x37 :b #x1f :a #x80) + (new 'static 'rgba :r #x9 :g #x39 :b #x24 :a #x80) + (new 'static 'rgba :r #xb :g #x3b :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x3c :b #x32 :a #x80) + (new 'static 'rgba :r #xd :g #x3d :b #x37 :a #x80) + (new 'static 'rgba :r #xd :g #x3d :b #x3b :a #x80) + (new 'static 'rgba :r #xd :g #x3d :b #x3c :a #x80) + (new 'static 'rgba :r #xd :g #x3d :b #x3d :a #x80) + (new 'static 'rgba :r #xd :g #x3c :b #x3f :a #x80) + (new 'static 'rgba :r #xd :g #x3e :b #x41 :a #x80) + (new 'static 'rgba :r #xe :g #x42 :b #x47 :a #x80) + (new 'static 'rgba :r #xf :g #x41 :b #x4a :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x4e :a #x80) + (new 'static 'rgba :r #xf :g #x3b :b #x50 :a #x80) + (new 'static 'rgba :r #xe :g #x3b :b #x4e :a #x80) + (new 'static 'rgba :r #xa :g #x36 :b #x49 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x4 :g #x2e :b #x3d :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x3a :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2f :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3e :a #x80) + (new 'static 'rgba :r #x5 :g #x30 :b #x40 :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #xb :g #x3a :b #x48 :a #x80) + (new 'static 'rgba :r #xf :g #x40 :b #x4c :a #x80) + (new 'static 'rgba :r #x12 :g #x41 :b #x4c :a #x80) + (new 'static 'rgba :r #x13 :g #x44 :b #x4a :a #x80) + (new 'static 'rgba :r #x12 :g #x42 :b #x45 :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x40 :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x3a :a #x80) + (new 'static 'rgba :r #xd :g #x3c :b #x36 :a #x80) + (new 'static 'rgba :r #xc :g #x3b :b #x30 :a #x80) + (new 'static 'rgba :r #xb :g #x3a :b #x2c :a #x80) + (new 'static 'rgba :r #xa :g #x3a :b #x26 :a #x80) + (new 'static 'rgba :r #x9 :g #x38 :b #x20 :a #x80) + (new 'static 'rgba :r #x8 :g #x37 :b #x1d :a #x80) + (new 'static 'rgba :r #x6 :g #x35 :b #x15 :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x11 :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #xf :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #xc :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #xa :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #xc :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #xb :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x10 :a #x80) + (new 'static 'rgba :r #x5 :g #x35 :b #x19 :a #x80) + (new 'static 'rgba :r #x7 :g #x36 :b #x1f :a #x80) + (new 'static 'rgba :r #x9 :g #x39 :b #x26 :a #x80) + (new 'static 'rgba :r #xa :g #x3a :b #x2b :a #x80) + (new 'static 'rgba :r #xc :g #x3b :b #x2f :a #x80) + (new 'static 'rgba :r #xc :g #x3c :b #x36 :a #x80) + (new 'static 'rgba :r #xc :g #x3c :b #x37 :a #x80) + (new 'static 'rgba :r #xc :g #x3c :b #x3b :a #x80) + (new 'static 'rgba :r #xd :g #x3c :b #x3b :a #x80) + (new 'static 'rgba :r #xe :g #x3c :b #x40 :a #x80) + (new 'static 'rgba :r #xe :g #x40 :b #x46 :a #x80) + (new 'static 'rgba :r #xf :g #x41 :b #x4a :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x4e :a #x80) + (new 'static 'rgba :r #xf :g #x3c :b #x4e :a #x80) + (new 'static 'rgba :r #xb :g #x3b :b #x4b :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3f :a #x80) + (new 'static 'rgba :r #x3 :g #x2e :b #x3b :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3f :a #x80) + (new 'static 'rgba :r #x6 :g #x36 :b #x42 :a #x80) + (new 'static 'rgba :r #x9 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #xc :g #x3a :b #x48 :a #x80) + (new 'static 'rgba :r #xd :g #x3d :b #x47 :a #x80) + (new 'static 'rgba :r #xe :g #x3f :b #x45 :a #x80) + (new 'static 'rgba :r #xd :g #x3f :b #x41 :a #x80) + (new 'static 'rgba :r #xd :g #x3c :b #x3d :a #x80) + (new 'static 'rgba :r #xd :g #x3c :b #x37 :a #x80) + (new 'static 'rgba :r #xd :g #x3c :b #x37 :a #x80) + (new 'static 'rgba :r #xc :g #x3c :b #x33 :a #x80) + (new 'static 'rgba :r #xb :g #x3c :b #x31 :a #x80) + (new 'static 'rgba :r #xa :g #x3a :b #x29 :a #x80) + (new 'static 'rgba :r #x9 :g #x39 :b #x26 :a #x80) + (new 'static 'rgba :r #x8 :g #x38 :b #x20 :a #x80) + (new 'static 'rgba :r #x7 :g #x37 :b #x1b :a #x80) + (new 'static 'rgba :r #x6 :g #x35 :b #x16 :a #x80) + (new 'static 'rgba :r #x4 :g #x34 :b #x11 :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #xf :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #xb :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #x8 :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #x9 :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #xa :a #x80) + (new 'static 'rgba :r #x3 :g #x32 :b #xc :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x10 :a #x80) + (new 'static 'rgba :r #x5 :g #x34 :b #x16 :a #x80) + (new 'static 'rgba :r #x7 :g #x36 :b #x1c :a #x80) + (new 'static 'rgba :r #x8 :g #x38 :b #x23 :a #x80) + (new 'static 'rgba :r #xa :g #x39 :b #x2a :a #x80) + (new 'static 'rgba :r #xa :g #x3a :b #x2e :a #x80) + (new 'static 'rgba :r #xb :g #x3a :b #x33 :a #x80) + (new 'static 'rgba :r #xb :g #x3a :b #x36 :a #x80) + (new 'static 'rgba :r #xc :g #x3b :b #x3b :a #x80) + (new 'static 'rgba :r #xd :g #x3f :b #x40 :a #x80) + (new 'static 'rgba :r #xe :g #x3f :b #x47 :a #x80) + (new 'static 'rgba :r #xf :g #x41 :b #x4b :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x4d :a #x80) + (new 'static 'rgba :r #xd :g #x39 :b #x4c :a #x80) + (new 'static 'rgba :r #xa :g #x36 :b #x48 :a #x80) + (new 'static 'rgba :r #x6 :g #x35 :b #x41 :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3c :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x3 :g #x2e :b #x3c :a #x80) + (new 'static 'rgba :r #x3 :g #x32 :b #x3d :a #x80) + (new 'static 'rgba :r #x5 :g #x35 :b #x40 :a #x80) + (new 'static 'rgba :r #x6 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x8 :g #x39 :b #x44 :a #x80) + (new 'static 'rgba :r #x9 :g #x38 :b #x43 :a #x80) + (new 'static 'rgba :r #x9 :g #x3c :b #x42 :a #x80) + (new 'static 'rgba :r #xa :g #x3c :b #x3d :a #x80) + (new 'static 'rgba :r #xb :g #x3a :b #x3a :a #x80) + (new 'static 'rgba :r #xc :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #xc :g #x3a :b #x36 :a #x80) + (new 'static 'rgba :r #xc :g #x3a :b #x33 :a #x80) + (new 'static 'rgba :r #xb :g #x3b :b #x2f :a #x80) + (new 'static 'rgba :r #xa :g #x3a :b #x2b :a #x80) + (new 'static 'rgba :r #x9 :g #x38 :b #x27 :a #x80) + (new 'static 'rgba :r #x8 :g #x37 :b #x24 :a #x80) + (new 'static 'rgba :r #x7 :g #x36 :b #x20 :a #x80) + (new 'static 'rgba :r #x6 :g #x35 :b #x18 :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x16 :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x11 :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #xd :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #xa :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #x9 :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #xc :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #xd :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #xe :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x12 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x15 :a #x80) + (new 'static 'rgba :r #x7 :g #x35 :b #x1b :a #x80) + (new 'static 'rgba :r #x8 :g #x36 :b #x23 :a #x80) + (new 'static 'rgba :r #xa :g #x37 :b #x28 :a #x80) + (new 'static 'rgba :r #xa :g #x37 :b #x2f :a #x80) + (new 'static 'rgba :r #xb :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #xc :g #x3c :b #x3a :a #x80) + (new 'static 'rgba :r #xd :g #x40 :b #x43 :a #x80) + (new 'static 'rgba :r #xe :g #x3f :b #x48 :a #x80) + (new 'static 'rgba :r #xf :g #x3e :b #x4b :a #x80) + (new 'static 'rgba :r #xe :g #x3b :b #x4c :a #x80) + (new 'static 'rgba :r #xb :g #x37 :b #x49 :a #x80) + (new 'static 'rgba :r #x7 :g #x37 :b #x44 :a #x80) + (new 'static 'rgba :r #x4 :g #x34 :b #x3f :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3b :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x3 :g #x2d :b #x3a :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) + (new 'static 'rgba :r #x4 :g #x31 :b #x3f :a #x80) + (new 'static 'rgba :r #x5 :g #x35 :b #x41 :a #x80) + (new 'static 'rgba :r #x6 :g #x36 :b #x41 :a #x80) + (new 'static 'rgba :r #x7 :g #x38 :b #x40 :a #x80) + (new 'static 'rgba :r #x8 :g #x38 :b #x3f :a #x80) + (new 'static 'rgba :r #x9 :g #x3a :b #x3d :a #x80) + (new 'static 'rgba :r #xa :g #x3a :b #x39 :a #x80) + (new 'static 'rgba :r #xa :g #x39 :b #x38 :a #x80) + (new 'static 'rgba :r #xb :g #x38 :b #x35 :a #x80) + (new 'static 'rgba :r #xa :g #x37 :b #x31 :a #x80) + (new 'static 'rgba :r #xa :g #x38 :b #x30 :a #x80) + (new 'static 'rgba :r #xa :g #x37 :b #x2d :a #x80) + (new 'static 'rgba :r #x9 :g #x37 :b #x2c :a #x80) + (new 'static 'rgba :r #x9 :g #x35 :b #x28 :a #x80) + (new 'static 'rgba :r #x8 :g #x34 :b #x24 :a #x80) + (new 'static 'rgba :r #x7 :g #x32 :b #x22 :a #x80) + (new 'static 'rgba :r #x6 :g #x31 :b #x1a :a #x80) + (new 'static 'rgba :r #x5 :g #x30 :b #x16 :a #x80) + (new 'static 'rgba :r #x4 :g #x2f :b #x15 :a #x80) + (new 'static 'rgba :r #x4 :g #x2f :b #x11 :a #x80) + (new 'static 'rgba :r #x4 :g #x2f :b #x10 :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x12 :a #x80) + (new 'static 'rgba :r #x4 :g #x2f :b #x11 :a #x80) + (new 'static 'rgba :r #x4 :g #x2f :b #x11 :a #x80) + (new 'static 'rgba :r #x5 :g #x30 :b #x15 :a #x80) + (new 'static 'rgba :r #x5 :g #x30 :b #x18 :a #x80) + (new 'static 'rgba :r #x6 :g #x30 :b #x1b :a #x80) + (new 'static 'rgba :r #x8 :g #x31 :b #x20 :a #x80) + (new 'static 'rgba :r #x9 :g #x33 :b #x26 :a #x80) + (new 'static 'rgba :r #x9 :g #x36 :b #x2e :a #x80) + (new 'static 'rgba :r #xa :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #xc :g #x3d :b #x3d :a #x80) + (new 'static 'rgba :r #xc :g #x40 :b #x45 :a #x80) + (new 'static 'rgba :r #xd :g #x3c :b #x48 :a #x80) + (new 'static 'rgba :r #xd :g #x3a :b #x4a :a #x80) + (new 'static 'rgba :r #xb :g #x39 :b #x48 :a #x80) + (new 'static 'rgba :r #x8 :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x5 :g #x31 :b #x41 :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3d :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3c :a #x80) + (new 'static 'rgba :r #x4 :g #x30 :b #x3e :a #x80) + (new 'static 'rgba :r #x5 :g #x30 :b #x3e :a #x80) + (new 'static 'rgba :r #x5 :g #x36 :b #x3e :a #x80) + (new 'static 'rgba :r #x6 :g #x37 :b #x3d :a #x80) + (new 'static 'rgba :r #x7 :g #x38 :b #x3d :a #x80) + (new 'static 'rgba :r #x8 :g #x38 :b #x3d :a #x80) + (new 'static 'rgba :r #x9 :g #x3a :b #x38 :a #x80) + (new 'static 'rgba :r #xa :g #x39 :b #x39 :a #x80) + (new 'static 'rgba :r #xa :g #x38 :b #x34 :a #x80) + (new 'static 'rgba :r #xa :g #x37 :b #x34 :a #x80) + (new 'static 'rgba :r #x9 :g #x37 :b #x30 :a #x80) + (new 'static 'rgba :r #x9 :g #x36 :b #x32 :a #x80) + (new 'static 'rgba :r #x9 :g #x36 :b #x2f :a #x80) + (new 'static 'rgba :r #x8 :g #x35 :b #x2e :a #x80) + (new 'static 'rgba :r #x8 :g #x34 :b #x29 :a #x80) + (new 'static 'rgba :r #x7 :g #x32 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x31 :b #x23 :a #x80) + (new 'static 'rgba :r #x6 :g #x30 :b #x23 :a #x80) + (new 'static 'rgba :r #x6 :g #x30 :b #x21 :a #x80) + (new 'static 'rgba :r #x7 :g #x2f :b #x20 :a #x80) + (new 'static 'rgba :r #x6 :g #x2f :b #x1e :a #x80) + (new 'static 'rgba :r #x5 :g #x2e :b #x1b :a #x80) + (new 'static 'rgba :r #x5 :g #x2e :b #x1c :a #x80) + (new 'static 'rgba :r #x6 :g #x2e :b #x1d :a #x80) + (new 'static 'rgba :r #x6 :g #x2f :b #x1f :a #x80) + (new 'static 'rgba :r #x6 :g #x31 :b #x23 :a #x80) + (new 'static 'rgba :r #x7 :g #x33 :b #x29 :a #x80) + (new 'static 'rgba :r #x7 :g #x34 :b #x2c :a #x80) + (new 'static 'rgba :r #x8 :g #x37 :b #x31 :a #x80) + (new 'static 'rgba :r #x8 :g #x3a :b #x39 :a #x80) + (new 'static 'rgba :r #xa :g #x3a :b #x41 :a #x80) + (new 'static 'rgba :r #xa :g #x3c :b #x44 :a #x80) + (new 'static 'rgba :r #xb :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #xa :g #x37 :b #x46 :a #x80) + (new 'static 'rgba :r #x8 :g #x34 :b #x44 :a #x80) + (new 'static 'rgba :r #x5 :g #x31 :b #x41 :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x3d :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x3a :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x3 :g #x2e :b #x3c :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x3c :a #x80) + (new 'static 'rgba :r #x5 :g #x35 :b #x3d :a #x80) + (new 'static 'rgba :r #x6 :g #x36 :b #x3d :a #x80) + (new 'static 'rgba :r #x7 :g #x36 :b #x3e :a #x80) + (new 'static 'rgba :r #x7 :g #x39 :b #x3e :a #x80) + (new 'static 'rgba :r #x8 :g #x3c :b #x3e :a #x80) + (new 'static 'rgba :r #x8 :g #x39 :b #x3c :a #x80) + (new 'static 'rgba :r #x8 :g #x39 :b #x3a :a #x80) + (new 'static 'rgba :r #x8 :g #x38 :b #x39 :a #x80) + (new 'static 'rgba :r #x8 :g #x38 :b #x39 :a #x80) + (new 'static 'rgba :r #x7 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x7 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x7 :g #x37 :b #x34 :a #x80) + (new 'static 'rgba :r #x7 :g #x36 :b #x35 :a #x80) + (new 'static 'rgba :r #x7 :g #x37 :b #x34 :a #x80) + (new 'static 'rgba :r #x7 :g #x37 :b #x33 :a #x80) + (new 'static 'rgba :r #x7 :g #x38 :b #x33 :a #x80) + (new 'static 'rgba :r #x7 :g #x37 :b #x33 :a #x80) + (new 'static 'rgba :r #x7 :g #x36 :b #x2f :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x2d :a #x80) + (new 'static 'rgba :r #x6 :g #x33 :b #x2a :a #x80) + (new 'static 'rgba :r #x6 :g #x32 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x32 :b #x29 :a #x80) + (new 'static 'rgba :r #x6 :g #x33 :b #x2a :a #x80) + (new 'static 'rgba :r #x6 :g #x35 :b #x30 :a #x80) + (new 'static 'rgba :r #x6 :g #x36 :b #x34 :a #x80) + (new 'static 'rgba :r #x6 :g #x36 :b #x38 :a #x80) + (new 'static 'rgba :r #x5 :g #x36 :b #x3c :a #x80) + (new 'static 'rgba :r #x6 :g #x36 :b #x3f :a #x80) + (new 'static 'rgba :r #x7 :g #x35 :b #x41 :a #x80) + (new 'static 'rgba :r #x7 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x3f :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3d :a #x80) + (new 'static 'rgba :r #x2 :g #x30 :b #x3b :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2b :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3b :a #x80) + (new 'static 'rgba :r #x4 :g #x33 :b #x3c :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x3d :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x3e :a #x80) + (new 'static 'rgba :r #x6 :g #x35 :b #x3e :a #x80) + (new 'static 'rgba :r #x6 :g #x36 :b #x3d :a #x80) + (new 'static 'rgba :r #x6 :g #x36 :b #x3d :a #x80) + (new 'static 'rgba :r #x6 :g #x36 :b #x3d :a #x80) + (new 'static 'rgba :r #x5 :g #x33 :b #x3c :a #x80) + (new 'static 'rgba :r #x6 :g #x36 :b #x3b :a #x80) + (new 'static 'rgba :r #x5 :g #x35 :b #x3b :a #x80) + (new 'static 'rgba :r #x5 :g #x36 :b #x3b :a #x80) + (new 'static 'rgba :r #x4 :g #x36 :b #x3b :a #x80) + (new 'static 'rgba :r #x5 :g #x35 :b #x3b :a #x80) + (new 'static 'rgba :r #x6 :g #x35 :b #x3d :a #x80) + (new 'static 'rgba :r #x7 :g #x35 :b #x3e :a #x80) + (new 'static 'rgba :r #x6 :g #x36 :b #x3e :a #x80) + (new 'static 'rgba :r #x6 :g #x36 :b #x3d :a #x80) + (new 'static 'rgba :r #x5 :g #x36 :b #x3b :a #x80) + (new 'static 'rgba :r #x4 :g #x36 :b #x38 :a #x80) + (new 'static 'rgba :r #x4 :g #x35 :b #x36 :a #x80) + (new 'static 'rgba :r #x4 :g #x35 :b #x35 :a #x80) + (new 'static 'rgba :r #x4 :g #x35 :b #x36 :a #x80) + (new 'static 'rgba :r #x4 :g #x35 :b #x37 :a #x80) + (new 'static 'rgba :r #x4 :g #x33 :b #x39 :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x3a :a #x80) + (new 'static 'rgba :r #x4 :g #x33 :b #x3b :a #x80) + (new 'static 'rgba :r #x4 :g #x30 :b #x3c :a #x80) + (new 'static 'rgba :r #x3 :g #x32 :b #x3c :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3c :a #x80) + (new 'static 'rgba :r #x3 :g #x2e :b #x3c :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x3 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3a :a #x80) + (new 'static 'rgba :r #x3 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3b :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #x3b :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #x3b :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3a :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3a :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3a :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3a :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3a :a #x80) + (new 'static 'rgba :r #x3 :g #x31 :b #x3a :a #x80) + (new 'static 'rgba :r #x3 :g #x2e :b #x3b :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x3b :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3a :a #x80) + (new 'static 'rgba :r #x3 :g #x2f :b #x3a :a #x80) + (new 'static 'rgba :r #x3 :g #x2e :b #x3a :a #x80) + (new 'static 'rgba :r #x3 :g #x30 :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x3a :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2b :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2f :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2b :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x39 :a #x80) + (new 'static 'rgba :r #x1 :g #x2e :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2c :b #x38 :a #x80) + (new 'static 'rgba :r #x2 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba :r #x1 :g #x2d :b #x38 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + ) + ) ) -(define *ocean-mid-indices-village2* (new 'static 'ocean-mid-indices - :data (new 'static 'array uint16 36 - #xffff - #xffff - #xffff - #x60 - #x0 - #x0 - #xffff - #xffff - #xffff - #x60 - #x0 - #x0 - #xffff - #xffff - #x61 - #x62 - #x0 - #x0 - #x63 - #x64 - #x65 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - #x0 - ) - ) +(define *ocean-near-indices-village1* + (new 'static 'ocean-near-indices + :data + (new 'static 'inline-array ocean-near-index 68 + (new 'static 'ocean-near-index) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x1 + #xffff + #xffff + #x0 + #x2 + #xffff + #xffff + #x0 + #x0 + #x3 + #xffff + #x0 + #x0 + #x3 + #xffff + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x4 + #x0 + #x5 + #xffff + #x6 + #x0 + #x7 + #xffff + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x8 + #x9 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #xa + #xb + #x0 + #x0 + #x0 + #x14 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #x15 + #xffff + #xffff + #xffff + #x0 + #x1a + #xffff + #xffff + #x0 + #x20 + #x21 + #xffff + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xc + #xd + #xe + #xf + #xffff + #xffff + #x16 + #x17 + #xffff + #x1b + #x1c + #x0 + #x22 + #x23 + #x24 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x10 + #x11 + #x12 + #x13 + #x0 + #x0 + #x18 + #x19 + #x1d + #x1e + #x0 + #x1f + #x0 + #x0 + #x0 + #x25 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x26 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x27 + #x0 + #x17 + #x0 + #x0 + #x0 + #x0 + #x2b + #x0 + #x0 + #x0 + #x2e + #x0 + #x0 + #x0 + #x32 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x28 + #x29 + #x2a + #x2c + #x2d + #xffff + #xffff + #x2f + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x30 + #x31 + #xffff + #x33 + #x34 + #x35 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xb + #xffff + #xffff + #xffff + #x36 + #x37 + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x38 + #x0 + #x0 + #x0 + #x38 + #x0 + #x0 + #x0 + #x48 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x19 + #xffff + #xffff + #xffff + #x4f + #x50 + #x51 + #xffff + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #x3e + #x3f + #x40 + #x41 + #x49 + #x4a + #x4b + #x4c + #xffff + #xffff + #xffff + #x52 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x39 + #x3a + #x2d + #xffff + #x42 + #x43 + #xffff + #xffff + #x4d + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x3b + #x3c + #xffff + #xffff + #xffff + #x44 + #x45 + #x46 + #xffff + #xffff + #x4e + #x0 + #xffff + #xffff + #x53 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x3d + #x0 + #x0 + #x0 + #x47 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #x54 + #xffff + #x0 + #x0 + #x59 + #xffff + #x0 + #x0 + #x5c + #x56 + #x0 + #x62 + #x63 + #x64 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x65 + #x66 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #x55 + #x56 + #xffff + #xffff + #x5a + #x5b + #xffff + #xffff + #x5d + #x5e + #x5f + #x67 + #x68 + #x69 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x60 + #x60 + #x60 + #x61 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x57 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x6a + #x6b + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x58 + #x0 + #x0 + #x0 + #x3d + #x0 + #x0 + #x0 + #x3d + #x0 + #x0 + #x0 + #x3d + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x6c + #xffff + #xffff + #x0 + #x70 + #xffff + #xffff + #x0 + #x70 + #xffff + #xffff + #x0 + #x7e + #x7f + #x80 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x81 + #x82 + #x83 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x6d + #xffff + #x71 + #x72 + #x17 + #x77 + #x78 + #x79 + #x7a + #x0 + #x0 + #x84 + #x85 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x6e + #x41 + #x6f + #x0 + #x73 + #x74 + #x75 + #x76 + #x7b + #x7c + #x7d + #x17 + #x86 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #x87 + #x88 + #x0 + #x0 + #x8e + #xffff + #x0 + #x0 + #x91 + #xffff + #x0 + #x0 + #x95 + #x96 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #x89 + #x20 + #x8a + #xffff + #x8f + #x0 + #x0 + #xffff + #x92 + #x0 + #x0 + #xffff + #x97 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x8b + #x0 + #x0 + #x8c + #x0 + #x0 + #x0 + #x90 + #x0 + #x0 + #x0 + #x93 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #x8d + #x0 + #x0 + #x66 + #x0 + #x0 + #x0 + #x94 + #x0 + #x0 + #x0 + #x98 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x20 + #x0 + #x0 + #x0 + #x9b + #x0 + #x0 + #x0 + #x0 + #x0 + #x9d + #x9e + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x99 + #x9a + #x0 + #x0 + #x9c + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x9f + #xa0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #xa1 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x79 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #xb2 + #xb3 + #xb4 + #xb5 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #xb6 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #xab + #xac + #x0 + #xb7 + #xb8 + #xb9 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #xa2 + #xa3 + #x0 + #xa6 + #xa7 + #xffff + #xad + #xae + #xaf + #xffff + #xba + #xbb + #xbc + #xffff + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xa4 + #xa5 + #x0 + #x0 + #xffff + #xffff + #xa8 + #x0 + #xffff + #xffff + #xb0 + #xb1 + #xffff + #xffff + #xbd + #xbe + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #xa9 + #xaa + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #xbf + #xc0 + #xc1 + #x0 + #xcc + #xffff + #xffff + #x0 + #xd3 + #xffff + #xffff + #xd8 + #xd9 + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xc2 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xc3 + #x0 + #x0 + #xffff + #xcd + #x0 + #x0 + #xffff + #xd4 + #xc3 + #x0 + #xffff + #xda + #x12 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #xc4 + #x0 + #x0 + #x70 + #x3b + #x0 + #x0 + #xffff + #xffff + #x0 + #x0 + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #xc5 + #xc6 + #xc7 + #xce + #xcf + #xd0 + #xd1 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xdb + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xc8 + #xc9 + #xca + #xffff + #xc2 + #xffff + #xffff + #xffff + #xd5 + #xd6 + #xd7 + #xffff + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xd2 + #xffff + #xffff + #xffff + #x0 + #x3 + #xffff + #xffff + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xcb + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #xdc + #xdd + #xde + #xe3 + #xe4 + #xffff + #xffff + #x5c + #x56 + #xffff + #xffff + #xf0 + #x2d + #x40 + #xf1 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x64 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xf2 + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xf3 + #xf4 + #xf5 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xdf + #x0 + #x0 + #xffff + #xe5 + #xe6 + #x0 + #xea + #xeb + #xec + #x0 + #xf6 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #xffff + #xffff + #x0 + #x0 + #xffff + #xffff + #x0 + #x0 + #xffff + #xffff + #x0 + #x0 + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #xe0 + #xe1 + #xffff + #xffff + #xe7 + #x0 + #xffff + #xffff + #xed + #x0 + #xffff + #xffff + #xf7 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xe2 + #xffff + #xffff + #x0 + #x0 + #xe8 + #xffff + #xe9 + #x0 + #x0 + #xee + #xef + #x0 + #xf8 + #xf9 + #x12 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xfa + #xfb + #xfc + #xfd + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xfe + #xffff + #xffff + #xffff + #x105 + #xb + #xffff + #xffff + #x0 + #x0 + #x4f + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xff + #x100 + #x0 + #x0 + #x106 + #x107 + #x0 + #x0 + #x10d + #x10e + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #x101 + #xffff + #x0 + #x0 + #x0 + #xfa + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x102 + #x108 + #xffff + #xffff + #x109 + #xfa + #x10f + #xffff + #xffff + #x0 + #x0 + #x114 + #x115 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #x10a + #x0 + #x0 + #x10b + #xffff + #xffff + #x110 + #x111 + #xffff + #x116 + #xfd + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x103 + #x104 + #xc3 + #x0 + #xffff + #x10c + #x17 + #x0 + #x112 + #x113 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #x0 + #x117 + #x0 + #x118 + #x0 + #x11a + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #x119 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + ) + ) ) -(define *ocean-mid-masks-village2* (new 'static 'ocean-mid-masks :data #x25b0)) +(define *ocean-trans-indices-village1* + (new 'static 'ocean-trans-indices + :data + (new 'static 'inline-array ocean-trans-index 2304 + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x11b :child 1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x11c :child 2) + (new 'static 'ocean-trans-index :parent #x11d :child 3) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 4) + (new 'static 'ocean-trans-index :parent #x11e :child 5) + (new 'static 'ocean-trans-index :parent #x11f :child 6) + (new 'static 'ocean-trans-index :child 7) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 8) + (new 'static 'ocean-trans-index :child 9) + (new 'static 'ocean-trans-index :parent #x120 :child 10) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x121 :child 11) + (new 'static 'ocean-trans-index :parent 33 :child 12) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 13) + (new 'static 'ocean-trans-index :parent #x122 :child 14) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x123 :child 15) + (new 'static 'ocean-trans-index :parent #x124 :child 16) + (new 'static 'ocean-trans-index :parent #x125 :child 17) + (new 'static 'ocean-trans-index :child 18) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x126 :child 19) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x11d :child 20) + (new 'static 'ocean-trans-index :parent #x127 :child 21) + (new 'static 'ocean-trans-index :parent 71 :child 22) + (new 'static 'ocean-trans-index :parent #x128 :child 23) + (new 'static 'ocean-trans-index :child 24) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x129 :child 25) + (new 'static 'ocean-trans-index :parent #x12a :child 26) + (new 'static 'ocean-trans-index :parent #x12b :child 27) + (new 'static 'ocean-trans-index :child 28) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #xc5 :child 29) + (new 'static 'ocean-trans-index :parent 6 :child 30) + (new 'static 'ocean-trans-index :child 31) + (new 'static 'ocean-trans-index :parent 23 :child 32) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 33) + (new 'static 'ocean-trans-index :child 34) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 35) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 36) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 37) + (new 'static 'ocean-trans-index :child 38) + (new 'static 'ocean-trans-index :child 39) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 40) + (new 'static 'ocean-trans-index :parent #x12c :child 41) + (new 'static 'ocean-trans-index :parent #x12d :child 42) + (new 'static 'ocean-trans-index :child 43) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x12e :child 44) + (new 'static 'ocean-trans-index :parent 45 :child 45) + (new 'static 'ocean-trans-index :parent 6 :child 46) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x8b :child 47) + (new 'static 'ocean-trans-index :parent #x12f :child 48) + (new 'static 'ocean-trans-index :parent #x130 :child 49) + (new 'static 'ocean-trans-index :parent #x131 :child 50) + (new 'static 'ocean-trans-index :child 51) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x132 :child 52) + (new 'static 'ocean-trans-index :parent #x133 :child 53) + (new 'static 'ocean-trans-index :parent #x12a :child 54) + (new 'static 'ocean-trans-index :parent 18 :child 55) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent 3 :child 56) + (new 'static 'ocean-trans-index :parent #x7c :child 57) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x134 :child 58) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 59) + (new 'static 'ocean-trans-index :parent #x69 :child 60) + (new 'static 'ocean-trans-index :child 61) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent 20 :child 62) + (new 'static 'ocean-trans-index :parent #x135 :child 63) + (new 'static 'ocean-trans-index :parent #x136 :child 64) + (new 'static 'ocean-trans-index :parent #x137 :child 65) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 66) + (new 'static 'ocean-trans-index :child 67) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + ) + ) + ) + +(define *ocean-mid-indices-village1* + (new 'static 'ocean-mid-indices + :data + (new 'static 'array uint16 36 + #x138 + #xffff + #x139 + #x13a + #x0 + #x0 + #x13b + #x13c + #x13d + #x13e + #x0 + #x0 + #x0 + #x0 + #x13f + #x140 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + ) + +(define *ocean-mid-masks-village1* + (new 'static 'ocean-mid-masks + :data + (new 'static 'inline-array ocean-mid-mask 322 + (new 'static 'ocean-mid-mask) + (new 'static 'ocean-mid-mask :dword #xfefefefefcf8f8f8) + (new 'static 'ocean-mid-mask :dword #x808080c0c0c0fe) + (new 'static 'ocean-mid-mask :dword #xfcfcfcfcfcfcfcfc) + (new 'static 'ocean-mid-mask :dword #x30303070f1f3fff) + (new 'static 'ocean-mid-mask :dword #xf0f0f8f8fcfefeff) + (new 'static 'ocean-mid-mask :dword #x101010101010101) + (new 'static 'ocean-mid-mask :dword #xf8f8f8f8f0f0f0f0) + (new 'static 'ocean-mid-mask :dword #x10103071fffffff) + (new 'static 'ocean-mid-mask :dword #xf0f8f8fcfeffffff) + (new 'static 'ocean-mid-mask :dword #x80c0e0f0f8fcfc) + (new 'static 'ocean-mid-mask :dword #xfeffffffffffffff) + (new 'static 'ocean-mid-mask :dword #xffffffffffff0f03) + (new 'static 'ocean-mid-mask :dword #xffffffffffff0000) + (new 'static 'ocean-mid-mask :dword #xfffffffffffffef8) + (new 'static 'ocean-mid-mask :dword #x101030f3fffffff) + (new 'static 'ocean-mid-mask :dword #xffffff) + (new 'static 'ocean-mid-mask :dword #x387cfeffffff) + (new 'static 'ocean-mid-mask :dword #x101) + (new 'static 'ocean-mid-mask :dword #xfefcfcf8f0f0f0f0) + (new 'static 'ocean-mid-mask :dword #xe0f8) + (new 'static 'ocean-mid-mask :dword #x80c0e0f0feffff) + (new 'static 'ocean-mid-mask :dword #x3f3f3f3f3f7fffff) + (new 'static 'ocean-mid-mask :dword #x1) + (new 'static 'ocean-mid-mask :dword #x8080808000) + (new 'static 'ocean-mid-mask :dword #xf8feffffffffffff) + (new 'static 'ocean-mid-mask :dword #xc0c0c0e0f0f8fcfe) + (new 'static 'ocean-mid-mask :dword #x3ffffffffffffff) + (new 'static 'ocean-mid-mask :dword #x3c3f3f3f3f3f3f3f) + (new 'static 'ocean-mid-mask :dword #x80c0c0e0c08000) + (new 'static 'ocean-mid-mask :dword #xf1f1f1f1f1f0f00) + (new 'static 'ocean-mid-mask :dword #x80e0) + (new 'static 'ocean-mid-mask :dword #x80) + (new 'static 'ocean-mid-mask :dword #xf8fcfefcfeffff) + (new 'static 'ocean-mid-mask :dword #x1f1f1f3f3f7fffff) + (new 'static 'ocean-mid-mask :dword #x8000000000000001) + (new 'static 'ocean-mid-mask :dword #x301000000000038) + (new 'static 'ocean-mid-mask :dword #xe0c0c08080000000) + (new 'static 'ocean-mid-mask :dword #xe0f0fcff) + (new 'static 'ocean-mid-mask :dword #x70f0f0f) + (new 'static 'ocean-mid-mask :dword #xe000000000000000) + (new 'static 'ocean-mid-mask :dword #xff80000000000000) + (new 'static 'ocean-mid-mask :dword #xfffffefcf8f0f0e0) + (new 'static 'ocean-mid-mask :dword #x60600) + (new 'static 'ocean-mid-mask :dword #xf8f0e0c0c0800000) + (new 'static 'ocean-mid-mask :dword #xfffffffffffffffe) + (new 'static 'ocean-mid-mask :dword #xc080800000000000) + (new 'static 'ocean-mid-mask :dword #xfffffffffffefefc) + (new 'static 'ocean-mid-mask :dword #x31fffffffffffff) + (new 'static 'ocean-mid-mask :dword #xffffffffffff) + (new 'static 'ocean-mid-mask :dword #xf0f0f0e0e0e0e0c0) + (new 'static 'ocean-mid-mask :dword #x3071f1f1f3f7fff) + (new 'static 'ocean-mid-mask :dword #xfcf8e00000000001) + (new 'static 'ocean-mid-mask :dword #xffffff0f00000000) + (new 'static 'ocean-mid-mask :dword #x7f3f0000000000f8) + (new 'static 'ocean-mid-mask :dword #xf0f0f0f0fcfeffff) + (new 'static 'ocean-mid-mask :dword #xf0f0f0f0f0f0f0f0) + (new 'static 'ocean-mid-mask :dword #x7f7f7fffffffffff) + (new 'static 'ocean-mid-mask :dword #xf0e0e0c0c0800103) + (new 'static 'ocean-mid-mask :dword #xffffffffffffff7f) + (new 'static 'ocean-mid-mask :dword #x808080c0e0e0f0f0) + (new 'static 'ocean-mid-mask :dword #xf0f0f0f0f0f0f0f) + (new 'static 'ocean-mid-mask :dword #xf0f1f1f1f1f1f3f) + (new 'static 'ocean-mid-mask :dword #xf0f0f0f0f0f8fe) + (new 'static 'ocean-mid-mask :dword #xc0ffffffffffffff) + (new 'static 'ocean-mid-mask :dword #x3f3fffffffffffff) + (new 'static 'ocean-mid-mask :dword #xc080070f0f1f3f3f) + (new 'static 'ocean-mid-mask :dword #xfffffffefcfcf8f0) + (new 'static 'ocean-mid-mask :dword #x7f3f1f0f07030180) + (new 'static 'ocean-mid-mask :dword #x80e0e0f0ff) + (new 'static 'ocean-mid-mask :dword #x1f3f7fffffff) + (new 'static 'ocean-mid-mask :dword #xf0f) + (new 'static 'ocean-mid-mask :dword #x80c0e0f0f0) + (new 'static 'ocean-mid-mask :dword #xffff07070707070f) + (new 'static 'ocean-mid-mask :dword #xfffffefcf0000000) + (new 'static 'ocean-mid-mask :dword #xffffffff07000000) + (new 'static 'ocean-mid-mask :dword #x70703000000003e) + (new 'static 'ocean-mid-mask :dword #xfefefefefcf0f0e0) + (new 'static 'ocean-mid-mask :dword #xffffff7f3f1f0701) + (new 'static 'ocean-mid-mask :dword #xf0) + (new 'static 'ocean-mid-mask :dword #xc0fcffff) + (new 'static 'ocean-mid-mask :dword #xfcfcfeffffffffff) + (new 'static 'ocean-mid-mask :dword #xffffffffffffc707) + (new 'static 'ocean-mid-mask :dword #x7f3f3f3f3f3f3f7f) + (new 'static 'ocean-mid-mask :dword #xe0e0e0e0f0f8fcfc) + (new 'static 'ocean-mid-mask :dword #xf0f0fffffffffff) + (new 'static 'ocean-mid-mask :dword #xfefefeffffffffff) + (new 'static 'ocean-mid-mask :dword #xffffffffffff0f0f) + (new 'static 'ocean-mid-mask :dword #xf0f0f0f0f0f0000) + (new 'static 'ocean-mid-mask :dword #xf0f8f8e0e0e0e0e0) + (new 'static 'ocean-mid-mask :dword #x8787878707070707) + (new 'static 'ocean-mid-mask :dword #xfffffffffffffefe) + (new 'static 'ocean-mid-mask :dword #x80c0c0c0) + (new 'static 'ocean-mid-mask :dword #xf0f0f0f0f070787) + (new 'static 'ocean-mid-mask :dword #xfefefefefeffffff) + (new 'static 'ocean-mid-mask :dword #x3ffffffff) + (new 'static 'ocean-mid-mask :dword #xffffffff) + (new 'static 'ocean-mid-mask :dword #x808080ffffffff) + (new 'static 'ocean-mid-mask :dword #x8c00000000000000) + (new 'static 'ocean-mid-mask :dword #xfffcf0c000000000) + (new 'static 'ocean-mid-mask :dword #xfffffffffffefefe) + (new 'static 'ocean-mid-mask :dword #xfffffffffffffff) + (new 'static 'ocean-mid-mask :dword #xffffffffffffff) + (new 'static 'ocean-mid-mask :dword #x71f7fffffffff) + (new 'static 'ocean-mid-mask :dword #x107070f) + (new 'static 'ocean-mid-mask :dword #xfcfe) + (new 'static 'ocean-mid-mask :dword #x80c0e0f0fc) + (new 'static 'ocean-mid-mask :dword #xfcfeffffffffffff) + (new 'static 'ocean-mid-mask :dword #xf0f0f0f0f0f0f0fc) + (new 'static 'ocean-mid-mask :dword #x70fffffffffffff) + (new 'static 'ocean-mid-mask :dword #xf0feffffffffffff) + (new 'static 'ocean-mid-mask :dword #x1070f0f0f) + (new 'static 'ocean-mid-mask :dword #xe0e0e0e0e0e0e0e0) + (new 'static 'ocean-mid-mask :dword #x1f3f3f7fffffffff) + (new 'static 'ocean-mid-mask :dword #x187fffff) + (new 'static 'ocean-mid-mask :dword #xc0c0c0c0c0c0c0e0) + (new 'static 'ocean-mid-mask :dword #x73f3f3f3f3f3f3f) + (new 'static 'ocean-mid-mask :dword #xe0e0e0e0c0000000) + (new 'static 'ocean-mid-mask :dword #x101030301000000) + (new 'static 'ocean-mid-mask :dword #x70f0f1fffffffff) + (new 'static 'ocean-mid-mask :dword #x103070f) + (new 'static 'ocean-mid-mask :dword #x183c18000000) + (new 'static 'ocean-mid-mask :dword #xfcfcfcfcfcfcf8f0) + (new 'static 'ocean-mid-mask :dword #x3f3f3fffffffffff) + (new 'static 'ocean-mid-mask :dword #x303030303) + (new 'static 'ocean-mid-mask :dword #xc0) + (new 'static 'ocean-mid-mask :dword #x183870e0e0e0e0) + (new 'static 'ocean-mid-mask :dword #xf0f8fcffffffff) + (new 'static 'ocean-mid-mask :dword #x3cffffffffffffff) + (new 'static 'ocean-mid-mask :dword #x7fffffffffffffff) + (new 'static 'ocean-mid-mask :dword #x80ffffffffffffff) + (new 'static 'ocean-mid-mask :dword #x3f3f3f3f3f3f7fff) + (new 'static 'ocean-mid-mask :dword #x303800000000) + (new 'static 'ocean-mid-mask :dword #xc0c0e0f0f0f8f8f8) + (new 'static 'ocean-mid-mask :dword #xff3f3f3f3f3f3f3f) + (new 'static 'ocean-mid-mask :dword #x8000000000000000) + (new 'static 'ocean-mid-mask :dword #xfffcf8e080000000) + (new 'static 'ocean-mid-mask :dword #x3f03010000000000) + (new 'static 'ocean-mid-mask :dword #xf1f) + (new 'static 'ocean-mid-mask :dword #xc0e0e0c0c0000) + (new 'static 'ocean-mid-mask :dword #xf0f0f0e0c0c0c0c0) + (new 'static 'ocean-mid-mask :dword #x10303030303) + (new 'static 'ocean-mid-mask :dword #xf0f0f0f0f0f0f0e0) + (new 'static 'ocean-mid-mask :dword #x3f7f7f7f7f7f7f7f) + (new 'static 'ocean-mid-mask :dword #xf8fcfcfcfefefefe) + (new 'static 'ocean-mid-mask :dword #xc0c0c0c0e0f0f0f0) + (new 'static 'ocean-mid-mask :dword #x3f3f3f3f3f3f3f3f) + (new 'static 'ocean-mid-mask :dword #xc0c0f0f0f0) + (new 'static 'ocean-mid-mask :dword #x1f1f1f3f1f1f1f00) + (new 'static 'ocean-mid-mask :dword #x80c0c0c0c0c0) + (new 'static 'ocean-mid-mask :dword #xc0f0ffffffffffff) + (new 'static 'ocean-mid-mask :dword #x1f1f1f3f3f3f3f3f) + (new 'static 'ocean-mid-mask :dword #xf1f1f) + (new 'static 'ocean-mid-mask :dword #x7efefeffffffff) + (new 'static 'ocean-mid-mask :dword #x70f1f1f) + (new 'static 'ocean-mid-mask :dword #x80c0c080000000) + (new 'static 'ocean-mid-mask :dword #x70f0f07000000) + (new 'static 'ocean-mid-mask :dword #xc000000000000000) + (new 'static 'ocean-mid-mask :dword #xf00000000000000) + (new 'static 'ocean-mid-mask :dword #x80f0f0f8fcfcf0e0) + (new 'static 'ocean-mid-mask :dword #x30f3f7f3f3f3f1f) + (new 'static 'ocean-mid-mask :dword #x40e04000000) + (new 'static 'ocean-mid-mask :dword #xfef0c00000000000) + (new 'static 'ocean-mid-mask :dword #xff8f878080800000) + (new 'static 'ocean-mid-mask :dword #xffffffff7f3f3f00) + (new 'static 'ocean-mid-mask :dword #x3f07000000000000) + (new 'static 'ocean-mid-mask :dword #x1e0c80c0c0e0e0c0) + (new 'static 'ocean-mid-mask :dword #xfefeffffffffffff) + (new 'static 'ocean-mid-mask :dword #x7f07070707070707) + (new 'static 'ocean-mid-mask :dword #x808080800000) + (new 'static 'ocean-mid-mask :dword #x70f1f1f0f0700) + (new 'static 'ocean-mid-mask :dword #xc0c0800000000000) + (new 'static 'ocean-mid-mask :dword #x7f7f7f7f7e3c3800) + (new 'static 'ocean-mid-mask :dword #x103810) + (new 'static 'ocean-mid-mask :dword #x3070787c7e1e) + (new 'static 'ocean-mid-mask :dword #xfcfcf8f0f0f8fcfc) + (new 'static 'ocean-mid-mask :dword #x7f7fffffffffffff) + (new 'static 'ocean-mid-mask :dword #x101010100) + (new 'static 'ocean-mid-mask :dword #xfcfcf8f0e0000000) + (new 'static 'ocean-mid-mask :dword #xffffffffff7c3800) + (new 'static 'ocean-mid-mask :dword #xffffffffe3c08000) + (new 'static 'ocean-mid-mask :dword #xffcfcf8f07070303) + (new 'static 'ocean-mid-mask :dword #x3f3f3f1f1f1f1f1f) + (new 'static 'ocean-mid-mask :dword #x2000000000000000) + (new 'static 'ocean-mid-mask :dword #xc0e0e0f0f0e0) + (new 'static 'ocean-mid-mask :dword #x101ffffff7f) + (new 'static 'ocean-mid-mask :dword #xfffcf8f0f0f0e000) + (new 'static 'ocean-mid-mask :dword #xffffffff03010100) + (new 'static 'ocean-mid-mask :dword #xfffffff1f8f8f8f8) + (new 'static 'ocean-mid-mask :dword #xffffff7f3f3f3f3f) + (new 'static 'ocean-mid-mask :dword #xff7f7f0000000000) + (new 'static 'ocean-mid-mask :dword #xf0f0f0f0e0c08000) + (new 'static 'ocean-mid-mask :dword #xffffffffffff0f07) + (new 'static 'ocean-mid-mask :dword #xffffffffff7f3c18) + (new 'static 'ocean-mid-mask :dword #xfffffffffffcfcfc) + (new 'static 'ocean-mid-mask :dword #x100000000000000) + (new 'static 'ocean-mid-mask :dword #x3e00000000000000) + (new 'static 'ocean-mid-mask :dword #xc0f0f8f870) + (new 'static 'ocean-mid-mask :dword #x80c0000000) + (new 'static 'ocean-mid-mask :dword #xe0e070703008080) + (new 'static 'ocean-mid-mask :dword #xfcf8f0f0f0ffffff) + (new 'static 'ocean-mid-mask :dword #xff0f0703070fffff) + (new 'static 'ocean-mid-mask :dword #xffffc0c0e0ffffff) + (new 'static 'ocean-mid-mask :dword #x1010101010101) + (new 'static 'ocean-mid-mask :dword #xe0e0e0e0e0e0f0f0) + (new 'static 'ocean-mid-mask :dword #x303010101010101) + (new 'static 'ocean-mid-mask :dword #xfffffffffffffffc) + (new 'static 'ocean-mid-mask :dword #xffffff7f3f1f0700) + (new 'static 'ocean-mid-mask :dword #xffffff0800000000) + (new 'static 'ocean-mid-mask :dword #xe3c3808000000000) + (new 'static 'ocean-mid-mask :dword #x3f3f3f3f3f3f7f7f) + (new 'static 'ocean-mid-mask :dword #x80e0f0f0f0f0f0) + (new 'static 'ocean-mid-mask :dword #xffff3f1f03030303) + (new 'static 'ocean-mid-mask :dword #x80c1ffffffffff) + (new 'static 'ocean-mid-mask :dword #x3c3fffffffffffff) + (new 'static 'ocean-mid-mask :dword #xf8fcffffffffffff) + (new 'static 'ocean-mid-mask :dword #xfefefc7800000000) + (new 'static 'ocean-mid-mask :dword #xffff800000000000) + (new 'static 'ocean-mid-mask :dword #x1f3f3f3f3fffffff) + (new 'static 'ocean-mid-mask :dword #x303030307073f7f) + (new 'static 'ocean-mid-mask :dword #xe0c0800000000000) + (new 'static 'ocean-mid-mask :dword #xffffff0000000000) + (new 'static 'ocean-mid-mask :dword #xffffff8000000000) + (new 'static 'ocean-mid-mask :dword #x1f1f1f1f1f1f1f1f) + (new 'static 'ocean-mid-mask :dword #x3fffffffffffffff) + (new 'static 'ocean-mid-mask :dword #x1070707) + (new 'static 'ocean-mid-mask :dword #x8080c0c0e0e0e0) + (new 'static 'ocean-mid-mask :dword #xc080000000000000) + (new 'static 'ocean-mid-mask :dword #xfffffcf8f0f0f0e0) + (new 'static 'ocean-mid-mask :dword #xffffffffff3f1f1f) + (new 'static 'ocean-mid-mask :dword #xf0f0f0f0f000000) + (new 'static 'ocean-mid-mask :dword #x307070f0f0f0f1f) + (new 'static 'ocean-mid-mask :dword #x80c0e0f0f8fcfe) + (new 'static 'ocean-mid-mask :dword #x707070707070707) + (new 'static 'ocean-mid-mask :dword #x30303070f1f7fff) + (new 'static 'ocean-mid-mask :dword #xff) + (new 'static 'ocean-mid-mask :dword #xf) + (new 'static 'ocean-mid-mask :dword #x303030707030303) + (new 'static 'ocean-mid-mask :dword #xfffffefcfcfcfcfc) + (new 'static 'ocean-mid-mask :dword #x101030303030303) + (new 'static 'ocean-mid-mask :dword #xe0e0e0c0c0800000) + (new 'static 'ocean-mid-mask :dword #xf1f3fffffffffff) + (new 'static 'ocean-mid-mask :dword #x8080c0ffffffffff) + (new 'static 'ocean-mid-mask :dword #x3f7fffffffffffff) + (new 'static 'ocean-mid-mask :dword #xc0ffffffffff) + (new 'static 'ocean-mid-mask :dword #x7fffffffffff) + (new 'static 'ocean-mid-mask :dword #x1030303) + (new 'static 'ocean-mid-mask :dword #xffff7f3f0f070303) + (new 'static 'ocean-mid-mask :dword #xc0c0) + (new 'static 'ocean-mid-mask :dword #x307effff) + (new 'static 'ocean-mid-mask :dword #x80c0) + (new 'static 'ocean-mid-mask :dword #xc1e3f3f7f7f) + (new 'static 'ocean-mid-mask :dword #x8080) + (new 'static 'ocean-mid-mask :dword #x10307) + (new 'static 'ocean-mid-mask :dword #xe0c0c0c080808080) + (new 'static 'ocean-mid-mask :dword #x307ffffffffffff) + (new 'static 'ocean-mid-mask :dword #x1e1f1f1f1f1f1f1f) + (new 'static 'ocean-mid-mask :dword #x80c0c0c0c0e0f0fc) + (new 'static 'ocean-mid-mask :dword #xf07030101010101) + (new 'static 'ocean-mid-mask :dword #xfffefcf0c0800000) + (new 'static 'ocean-mid-mask :dword #xff7f3f1f0f070600) + (new 'static 'ocean-mid-mask :dword #xe0f0f8fcfcfcfc) + (new 'static 'ocean-mid-mask :dword #x7f0f070301010101) + (new 'static 'ocean-mid-mask :dword #xc) + (new 'static 'ocean-mid-mask :dword #xe0f0f8fcfeffffff) + (new 'static 'ocean-mid-mask :dword #xffffff7f3f1f0f0f) + (new 'static 'ocean-mid-mask :dword #xfff3e10000000000) + (new 'static 'ocean-mid-mask :dword #xf0e0e0e0c0c08000) + (new 'static 'ocean-mid-mask :dword #x70f1f3f3f7fffff) + (new 'static 'ocean-mid-mask :dword #xc0fcfefe7f) + (new 'static 'ocean-mid-mask :dword #x101010000) + (new 'static 'ocean-mid-mask :dword #xc0f0f8fcfeffffff) + (new 'static 'ocean-mid-mask :dword #x707070701010100) + (new 'static 'ocean-mid-mask :dword #x80e0e0f0f0f0) + (new 'static 'ocean-mid-mask :dword #x73f7fffffff) + (new 'static 'ocean-mid-mask :dword #x103) + (new 'static 'ocean-mid-mask :dword #x8080e0f8) + (new 'static 'ocean-mid-mask :dword #xc0e0f8ffffffffff) + (new 'static 'ocean-mid-mask :dword #x30f3fffffffff) + (new 'static 'ocean-mid-mask :dword #x7e1c000000000000) + (new 'static 'ocean-mid-mask :dword #x40e0e0e0e0c0) + (new 'static 'ocean-mid-mask :dword #x307070703) + (new 'static 'ocean-mid-mask :dword #x1c7effffffff7e) + (new 'static 'ocean-mid-mask :dword #xfffffffff8f8fcfc) + (new 'static 'ocean-mid-mask :dword #xfffffffff8f8ffff) + (new 'static 'ocean-mid-mask :dword #xfffffffff3ffffff) + (new 'static 'ocean-mid-mask :dword #xfffffffff8fcfeff) + (new 'static 'ocean-mid-mask :dword #xfffffffff0f1f3f0) + (new 'static 'ocean-mid-mask :dword #xfffffffffffefcf0) + (new 'static 'ocean-mid-mask :dword #xfffffffff1f3ffff) + (new 'static 'ocean-mid-mask :dword #xfffffffff8feffff) + (new 'static 'ocean-mid-mask :dword #xfffffffff7f0f0ff) + (new 'static 'ocean-mid-mask :dword #xfffffffffffefcf8) + (new 'static 'ocean-mid-mask :dword #xfffffffff3f3f1fc) + (new 'static 'ocean-mid-mask :dword #xfffffffff0f0f8f8) + (new 'static 'ocean-mid-mask :dword #xfffffffff0f1f9f9) + (new 'static 'ocean-mid-mask :dword #xfffffffffcfffff7) + (new 'static 'ocean-mid-mask :dword #xfffffffff0fcfcfc) + (new 'static 'ocean-mid-mask :dword #xfffffffff1ffffff) + (new 'static 'ocean-mid-mask :dword #xfffffffff0f0f1f7) + (new 'static 'ocean-mid-mask :dword #xfffffffff8f8f8f0) + (new 'static 'ocean-mid-mask :dword #xfffffffff3f3f3f0) + (new 'static 'ocean-mid-mask :dword #xfffffffffcfcfcf0) + (new 'static 'ocean-mid-mask :dword #xfffffffff7fff0f0) + (new 'static 'ocean-mid-mask :dword #xfffffffff0f8fef8) + (new 'static 'ocean-mid-mask :dword #xfffffffff6f7f7ff) + (new 'static 'ocean-mid-mask :dword #xfffffffff0fcfcf0) + (new 'static 'ocean-mid-mask :dword #xfffffffffefffffe) + (new 'static 'ocean-mid-mask :dword #xfffffffff0f0f4f6) + (new 'static 'ocean-mid-mask :dword #xfffffffff0fcf6f7) + (new 'static 'ocean-mid-mask :dword #xfffffffff1f3f0f0) + (new 'static 'ocean-mid-mask :dword #xfffffffff0f0f1f0) + (new 'static 'ocean-mid-mask :dword #xf0ffffffffffffff) + (new 'static 'ocean-mid-mask :dword #x707078fffff7f7f) + (new 'static 'ocean-mid-mask :dword #x4) + (new 'static 'ocean-mid-mask :dword #x80c0c0c0c0) + (new 'static 'ocean-mid-mask :dword #x1031fffffff) + (new 'static 'ocean-mid-mask :dword #xf8f8f87879070707) + (new 'static 'ocean-mid-mask :dword #x1f1f1f1800000000) + (new 'static 'ocean-mid-mask :dword #x8080808090f8f8) + (new 'static 'ocean-mid-mask :dword #x103071f1f1f1f) + (new 'static 'ocean-mid-mask) + ) + ) + ) + +(define *ocean-spheres-village2* + (new 'static 'ocean-spheres + :spheres + (new 'static 'inline-array sphere 36 + (new 'static 'sphere :x -6320128.0 :z -14385152.0 :w 2224365.5) + (new 'static 'sphere :x -3174400.0 :z -14385152.0 :w 2224365.5) + (new 'static 'sphere :x -28672.0 :z -14385152.0 :w 2224365.5) + (new 'static 'sphere :x 3117056.0 :z -14385152.0 :w 2224365.5) + (new 'static 'sphere :x 6262784.0 :z -14385152.0 :w 2224365.5) + (new 'static 'sphere :x 9408512.0 :z -14385152.0 :w 2224365.5) + (new 'static 'sphere :x -6320128.0 :z -11239424.0 :w 2224365.5) + (new 'static 'sphere :x -3174400.0 :z -11239424.0 :w 2224365.5) + (new 'static 'sphere :x -28672.0 :z -11239424.0 :w 2224365.5) + (new 'static 'sphere :x 3117056.0 :z -11239424.0 :w 2224365.5) + (new 'static 'sphere :x 6262784.0 :z -11239424.0 :w 2224365.5) + (new 'static 'sphere :x 9408512.0 :z -11239424.0 :w 2224365.5) + (new 'static 'sphere :x -6320128.0 :z -8093696.0 :w 2224365.5) + (new 'static 'sphere :x -3174400.0 :z -8093696.0 :w 2224365.5) + (new 'static 'sphere :x -28672.0 :z -8093696.0 :w 2224365.5) + (new 'static 'sphere :x 3117056.0 :z -8093696.0 :w 2224365.5) + (new 'static 'sphere :x 6262784.0 :z -8093696.0 :w 2224365.5) + (new 'static 'sphere :x 9408512.0 :z -8093696.0 :w 2224365.5) + (new 'static 'sphere :x -6320128.0 :z -4947968.0 :w 2224365.5) + (new 'static 'sphere :x -3174400.0 :z -4947968.0 :w 2224365.5) + (new 'static 'sphere :x -28672.0 :z -4947968.0 :w 2224365.5) + (new 'static 'sphere :x 3117056.0 :z -4947968.0 :w 2224365.5) + (new 'static 'sphere :x 6262784.0 :z -4947968.0 :w 2224365.5) + (new 'static 'sphere :x 9408512.0 :z -4947968.0 :w 2224365.5) + (new 'static 'sphere :x -6320128.0 :z -1802240.0 :w 2224365.5) + (new 'static 'sphere :x -3174400.0 :z -1802240.0 :w 2224365.5) + (new 'static 'sphere :x -28672.0 :z -1802240.0 :w 2224365.5) + (new 'static 'sphere :x 3117056.0 :z -1802240.0 :w 2224365.5) + (new 'static 'sphere :x 6262784.0 :z -1802240.0 :w 2224365.5) + (new 'static 'sphere :x 9408512.0 :z -1802240.0 :w 2224365.5) + (new 'static 'sphere :x -6320128.0 :z 1343488.0 :w 2224365.5) + (new 'static 'sphere :x -3174400.0 :z 1343488.0 :w 2224365.5) + (new 'static 'sphere :x -28672.0 :z 1343488.0 :w 2224365.5) + (new 'static 'sphere :x 3117056.0 :z 1343488.0 :w 2224365.5) + (new 'static 'sphere :x 6262784.0 :z 1343488.0 :w 2224365.5) + (new 'static 'sphere :x 9408512.0 :z 1343488.0 :w 2224365.5) + ) + ) + ) + +(define *ocean-colors-village2* + (new 'static 'ocean-colors + :colors + (new 'static 'array rgba 2548 + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x38 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x37 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x41 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x3c :b #x47 :a #x80) + (new 'static 'rgba :r #x21 :g #x3c :b #x47 :a #x80) + (new 'static 'rgba :r #x21 :g #x3d :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x3c :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x3c :b #x46 :a #x80) + (new 'static 'rgba :r #x1f :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x37 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x25 :g #x4d :b #x50 :a #x80) + (new 'static 'rgba :r #x23 :g #x47 :b #x4d :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x37 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x3c :b #x47 :a #x80) + (new 'static 'rgba :r #x21 :g #x3d :b #x48 :a #x80) + (new 'static 'rgba :r #x22 :g #x3e :b #x48 :a #x80) + (new 'static 'rgba :r #x23 :g #x3f :b #x49 :a #x80) + (new 'static 'rgba :r #x22 :g #x3f :b #x49 :a #x80) + (new 'static 'rgba :r #x22 :g #x3e :b #x49 :a #x80) + (new 'static 'rgba :r #x20 :g #x3d :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x3c :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x1f :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x38 :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x36 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x46 :a #x80) + (new 'static 'rgba :r #x1f :g #x39 :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x46 :a #x80) + (new 'static 'rgba :r #x1f :g #x39 :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x21 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x41 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x3d :b #x48 :a #x80) + (new 'static 'rgba :r #x23 :g #x3f :b #x4a :a #x80) + (new 'static 'rgba :r #x23 :g #x40 :b #x4a :a #x80) + (new 'static 'rgba :r #x23 :g #x41 :b #x4b :a #x80) + (new 'static 'rgba :r #x22 :g #x41 :b #x4b :a #x80) + (new 'static 'rgba :r #x21 :g #x41 :b #x4a :a #x80) + (new 'static 'rgba :r #x20 :g #x40 :b #x49 :a #x80) + (new 'static 'rgba :r #x20 :g #x3f :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x3d :b #x48 :a #x80) + (new 'static 'rgba :r #x1f :g #x3d :b #x47 :a #x80) + (new 'static 'rgba :r #x1f :g #x3d :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x40 :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x42 :b #x49 :a #x80) + (new 'static 'rgba :r #x20 :g #x42 :b #x4a :a #x80) + (new 'static 'rgba :r #x20 :g #x45 :b #x4b :a #x80) + (new 'static 'rgba :r #x1f :g #x45 :b #x4a :a #x80) + (new 'static 'rgba :r #x1f :g #x45 :b #x4a :a #x80) + (new 'static 'rgba :r #x20 :g #x44 :b #x4c :a #x80) + (new 'static 'rgba :r #x20 :g #x44 :b #x4b :a #x80) + (new 'static 'rgba :r #x20 :g #x47 :b #x4b :a #x80) + (new 'static 'rgba :r #x20 :g #x47 :b #x4c :a #x80) + (new 'static 'rgba :r #x21 :g #x49 :b #x4d :a #x80) + (new 'static 'rgba :r #x20 :g #x48 :b #x4c :a #x80) + (new 'static 'rgba :r #x20 :g #x47 :b #x4b :a #x80) + (new 'static 'rgba :r #x1f :g #x43 :b #x4b :a #x80) + (new 'static 'rgba :r #x1f :g #x45 :b #x4a :a #x80) + (new 'static 'rgba :r #x20 :g #x42 :b #x49 :a #x80) + (new 'static 'rgba :r #x21 :g #x42 :b #x4b :a #x80) + (new 'static 'rgba :r #x21 :g #x41 :b #x4a :a #x80) + (new 'static 'rgba :r #x20 :g #x40 :b #x48 :a #x80) + (new 'static 'rgba :r #x21 :g #x3f :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x22 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x21 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x21 :g #x35 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x38 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x3a :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x3c :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x3e :b #x48 :a #x80) + (new 'static 'rgba :r #x22 :g #x41 :b #x4a :a #x80) + (new 'static 'rgba :r #x22 :g #x42 :b #x4b :a #x80) + (new 'static 'rgba :r #x21 :g #x43 :b #x4c :a #x80) + (new 'static 'rgba :r #x20 :g #x43 :b #x4b :a #x80) + (new 'static 'rgba :r #x1e :g #x44 :b #x4a :a #x80) + (new 'static 'rgba :r #x1e :g #x42 :b #x4a :a #x80) + (new 'static 'rgba :r #x1d :g #x42 :b #x49 :a #x80) + (new 'static 'rgba :r #x1d :g #x44 :b #x4a :a #x80) + (new 'static 'rgba :r #x1d :g #x44 :b #x4a :a #x80) + (new 'static 'rgba :r #x1d :g #x44 :b #x4b :a #x80) + (new 'static 'rgba :r #x1d :g #x49 :b #x4b :a #x80) + (new 'static 'rgba :r #x1c :g #x49 :b #x4d :a #x80) + (new 'static 'rgba :r #x1d :g #x4e :b #x4f :a #x80) + (new 'static 'rgba :r #x1d :g #x50 :b #x4f :a #x80) + (new 'static 'rgba :r #x1e :g #x51 :b #x50 :a #x80) + (new 'static 'rgba :r #x1e :g #x51 :b #x4f :a #x80) + (new 'static 'rgba :r #x1e :g #x51 :b #x51 :a #x80) + (new 'static 'rgba :r #x1e :g #x51 :b #x4e :a #x80) + (new 'static 'rgba :r #x20 :g #x51 :b #x52 :a #x80) + (new 'static 'rgba :r #x20 :g #x53 :b #x51 :a #x80) + (new 'static 'rgba :r #x22 :g #x53 :b #x51 :a #x80) + (new 'static 'rgba :r #x21 :g #x53 :b #x52 :a #x80) + (new 'static 'rgba :r #x20 :g #x50 :b #x52 :a #x80) + (new 'static 'rgba :r #x1f :g #x51 :b #x50 :a #x80) + (new 'static 'rgba :r #x1f :g #x4f :b #x51 :a #x80) + (new 'static 'rgba :r #x1e :g #x51 :b #x50 :a #x80) + (new 'static 'rgba :r #x1f :g #x50 :b #x52 :a #x80) + (new 'static 'rgba :r #x1f :g #x4e :b #x50 :a #x80) + (new 'static 'rgba :r #x1e :g #x4d :b #x4e :a #x80) + (new 'static 'rgba :r #x20 :g #x4d :b #x4e :a #x80) + (new 'static 'rgba :r #x21 :g #x44 :b #x4c :a #x80) + (new 'static 'rgba :r #x22 :g #x40 :b #x4a :a #x80) + (new 'static 'rgba :r #x22 :g #x3f :b #x49 :a #x80) + (new 'static 'rgba :r #x22 :g #x3a :b #x49 :a #x80) + (new 'static 'rgba :r #x23 :g #x39 :b #x48 :a #x80) + (new 'static 'rgba :r #x23 :g #x39 :b #x47 :a #x80) + (new 'static 'rgba :r #x22 :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x21 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x21 :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x31 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1e :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x1e :g #x39 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x40 :b #x49 :a #x80) + (new 'static 'rgba :r #x21 :g #x41 :b #x4a :a #x80) + (new 'static 'rgba :r #x1f :g #x42 :b #x4a :a #x80) + (new 'static 'rgba :r #x1d :g #x45 :b #x4a :a #x80) + (new 'static 'rgba :r #x1b :g #x44 :b #x4a :a #x80) + (new 'static 'rgba :r #x1a :g #x44 :b #x49 :a #x80) + (new 'static 'rgba :r #x19 :g #x43 :b #x49 :a #x80) + (new 'static 'rgba :r #x19 :g #x44 :b #x48 :a #x80) + (new 'static 'rgba :r #x19 :g #x47 :b #x48 :a #x80) + (new 'static 'rgba :r #x19 :g #x47 :b #x4a :a #x80) + (new 'static 'rgba :r #x19 :g #x4b :b #x4a :a #x80) + (new 'static 'rgba :r #x19 :g #x4c :b #x4c :a #x80) + (new 'static 'rgba :r #x1b :g #x4f :b #x4c :a #x80) + (new 'static 'rgba :r #x1d :g #x51 :b #x4e :a #x80) + (new 'static 'rgba :r #x1e :g #x50 :b #x4b :a #x80) + (new 'static 'rgba :r #x1d :g #x50 :b #x4c :a #x80) + (new 'static 'rgba :r #x1f :g #x51 :b #x4f :a #x80) + (new 'static 'rgba :r #x20 :g #x53 :b #x4f :a #x80) + (new 'static 'rgba :r #x21 :g #x53 :b #x51 :a #x80) + (new 'static 'rgba :r #x23 :g #x54 :b #x50 :a #x80) + (new 'static 'rgba :r #x25 :g #x54 :b #x52 :a #x80) + (new 'static 'rgba :r #x26 :g #x54 :b #x54 :a #x80) + (new 'static 'rgba :r #x26 :g #x54 :b #x54 :a #x80) + (new 'static 'rgba :r #x26 :g #x55 :b #x53 :a #x80) + (new 'static 'rgba :r #x24 :g #x53 :b #x4f :a #x80) + (new 'static 'rgba :r #x23 :g #x52 :b #x51 :a #x80) + (new 'static 'rgba :r #x23 :g #x52 :b #x52 :a #x80) + (new 'static 'rgba :r #x23 :g #x53 :b #x51 :a #x80) + (new 'static 'rgba :r #x20 :g #x52 :b #x4e :a #x80) + (new 'static 'rgba :r #x1e :g #x51 :b #x4d :a #x80) + (new 'static 'rgba :r #x1d :g #x50 :b #x50 :a #x80) + (new 'static 'rgba :r #x1c :g #x4f :b #x4f :a #x80) + (new 'static 'rgba :r #x1d :g #x4a :b #x4e :a #x80) + (new 'static 'rgba :r #x20 :g #x47 :b #x4d :a #x80) + (new 'static 'rgba :r #x23 :g #x44 :b #x4c :a #x80) + (new 'static 'rgba :r #x23 :g #x40 :b #x4b :a #x80) + (new 'static 'rgba :r #x23 :g #x3b :b #x4a :a #x80) + (new 'static 'rgba :r #x22 :g #x37 :b #x47 :a #x80) + (new 'static 'rgba :r #x22 :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1e :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x1d :g #x3a :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x3d :b #x46 :a #x80) + (new 'static 'rgba :r #x1f :g #x3e :b #x48 :a #x80) + (new 'static 'rgba :r #x1e :g #x41 :b #x48 :a #x80) + (new 'static 'rgba :r #x1b :g #x43 :b #x48 :a #x80) + (new 'static 'rgba :r #x19 :g #x45 :b #x48 :a #x80) + (new 'static 'rgba :r #x18 :g #x45 :b #x48 :a #x80) + (new 'static 'rgba :r #x16 :g #x44 :b #x47 :a #x80) + (new 'static 'rgba :r #x16 :g #x45 :b #x47 :a #x80) + (new 'static 'rgba :r #x16 :g #x46 :b #x47 :a #x80) + (new 'static 'rgba :r #x15 :g #x47 :b #x46 :a #x80) + (new 'static 'rgba :r #x15 :g #x48 :b #x46 :a #x80) + (new 'static 'rgba :r #x17 :g #x4a :b #x47 :a #x80) + (new 'static 'rgba :r #x18 :g #x4d :b #x4b :a #x80) + (new 'static 'rgba :r #x1b :g #x4e :b #x4b :a #x80) + (new 'static 'rgba :r #x1d :g #x4f :b #x4d :a #x80) + (new 'static 'rgba :r #x1d :g #x50 :b #x4d :a #x80) + (new 'static 'rgba :r #x1f :g #x51 :b #x4f :a #x80) + (new 'static 'rgba :r #x21 :g #x51 :b #x4f :a #x80) + (new 'static 'rgba :r #x21 :g #x52 :b #x4c :a #x80) + (new 'static 'rgba :r #x24 :g #x52 :b #x4f :a #x80) + (new 'static 'rgba :r #x26 :g #x52 :b #x53 :a #x80) + (new 'static 'rgba :r #x28 :g #x54 :b #x51 :a #x80) + (new 'static 'rgba :r #x28 :g #x54 :b #x54 :a #x80) + (new 'static 'rgba :r #x29 :g #x55 :b #x52 :a #x80) + (new 'static 'rgba :r #x29 :g #x55 :b #x53 :a #x80) + (new 'static 'rgba :r #x28 :g #x55 :b #x50 :a #x80) + (new 'static 'rgba :r #x28 :g #x55 :b #x50 :a #x80) + (new 'static 'rgba :r #x28 :g #x54 :b #x51 :a #x80) + (new 'static 'rgba :r #x27 :g #x54 :b #x52 :a #x80) + (new 'static 'rgba :r #x25 :g #x52 :b #x52 :a #x80) + (new 'static 'rgba :r #x23 :g #x52 :b #x4f :a #x80) + (new 'static 'rgba :r #x22 :g #x53 :b #x4f :a #x80) + (new 'static 'rgba :r #x20 :g #x52 :b #x4e :a #x80) + (new 'static 'rgba :r #x1e :g #x51 :b #x4d :a #x80) + (new 'static 'rgba :r #x1d :g #x4f :b #x4f :a #x80) + (new 'static 'rgba :r #x1e :g #x49 :b #x4e :a #x80) + (new 'static 'rgba :r #x22 :g #x44 :b #x4d :a #x80) + (new 'static 'rgba :r #x23 :g #x3f :b #x4c :a #x80) + (new 'static 'rgba :r #x22 :g #x3a :b #x48 :a #x80) + (new 'static 'rgba :r #x25 :g #x51 :b #x53 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1e :g #x37 :b #x43 :a #x80) + (new 'static 'rgba :r #x1e :g #x3b :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x3f :b #x48 :a #x80) + (new 'static 'rgba :r #x1d :g #x41 :b #x47 :a #x80) + (new 'static 'rgba :r #x1a :g #x43 :b #x47 :a #x80) + (new 'static 'rgba :r #x18 :g #x44 :b #x47 :a #x80) + (new 'static 'rgba :r #x16 :g #x45 :b #x47 :a #x80) + (new 'static 'rgba :r #x14 :g #x47 :b #x44 :a #x80) + (new 'static 'rgba :r #x12 :g #x45 :b #x44 :a #x80) + (new 'static 'rgba :r #x12 :g #x43 :b #x45 :a #x80) + (new 'static 'rgba :r #x12 :g #x45 :b #x43 :a #x80) + (new 'static 'rgba :r #x12 :g #x46 :b #x44 :a #x80) + (new 'static 'rgba :r #x14 :g #x47 :b #x44 :a #x80) + (new 'static 'rgba :r #x15 :g #x4a :b #x46 :a #x80) + (new 'static 'rgba :r #x18 :g #x4c :b #x49 :a #x80) + (new 'static 'rgba :r #x1a :g #x4c :b #x47 :a #x80) + (new 'static 'rgba :r #x1c :g #x4d :b #x4a :a #x80) + (new 'static 'rgba :r #x1e :g #x4e :b #x4c :a #x80) + (new 'static 'rgba :r #x1e :g #x4e :b #x4b :a #x80) + (new 'static 'rgba :r #x20 :g #x4e :b #x4d :a #x80) + (new 'static 'rgba :r #x22 :g #x4d :b #x4e :a #x80) + (new 'static 'rgba :r #x23 :g #x4f :b #x4d :a #x80) + (new 'static 'rgba :r #x26 :g #x50 :b #x4e :a #x80) + (new 'static 'rgba :r #x28 :g #x52 :b #x51 :a #x80) + (new 'static 'rgba :r #x29 :g #x54 :b #x53 :a #x80) + (new 'static 'rgba :r #x2b :g #x56 :b #x51 :a #x80) + (new 'static 'rgba :r #x29 :g #x53 :b #x50 :a #x80) + (new 'static 'rgba :r #x27 :g #x53 :b #x4e :a #x80) + (new 'static 'rgba :r #x27 :g #x52 :b #x51 :a #x80) + (new 'static 'rgba :r #x27 :g #x52 :b #x51 :a #x80) + (new 'static 'rgba :r #x28 :g #x52 :b #x50 :a #x80) + (new 'static 'rgba :r #x28 :g #x52 :b #x4f :a #x80) + (new 'static 'rgba :r #x27 :g #x51 :b #x52 :a #x80) + (new 'static 'rgba :r #x26 :g #x51 :b #x4f :a #x80) + (new 'static 'rgba :r #x23 :g #x51 :b #x4e :a #x80) + (new 'static 'rgba :r #x20 :g #x53 :b #x4e :a #x80) + (new 'static 'rgba :r #x1e :g #x52 :b #x4d :a #x80) + (new 'static 'rgba :r #x1c :g #x4f :b #x4f :a #x80) + (new 'static 'rgba :r #x1e :g #x4d :b #x4e :a #x80) + (new 'static 'rgba :r #x23 :g #x46 :b #x4e :a #x80) + (new 'static 'rgba :r #x23 :g #x3e :b #x4a :a #x80) + (new 'static 'rgba :r #x22 :g #x37 :b #x47 :a #x80) + (new 'static 'rgba :r #x22 :g #x38 :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1e :g #x38 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x3e :b #x46 :a #x80) + (new 'static 'rgba :r #x1d :g #x44 :b #x49 :a #x80) + (new 'static 'rgba :r #x1a :g #x47 :b #x48 :a #x80) + (new 'static 'rgba :r #x18 :g #x47 :b #x47 :a #x80) + (new 'static 'rgba :r #x15 :g #x48 :b #x45 :a #x80) + (new 'static 'rgba :r #x13 :g #x47 :b #x45 :a #x80) + (new 'static 'rgba :r #x11 :g #x44 :b #x44 :a #x80) + (new 'static 'rgba :r #x10 :g #x43 :b #x43 :a #x80) + (new 'static 'rgba :r #xe :g #x42 :b #x41 :a #x80) + (new 'static 'rgba :r #x10 :g #x43 :b #x40 :a #x80) + (new 'static 'rgba :r #x1a :g #x4a :b #x47 :a #x80) + (new 'static 'rgba :r #x14 :g #x47 :b #x44 :a #x80) + (new 'static 'rgba :r #x16 :g #x47 :b #x44 :a #x80) + (new 'static 'rgba :r #x17 :g #x49 :b #x46 :a #x80) + (new 'static 'rgba :r #x18 :g #x4a :b #x48 :a #x80) + (new 'static 'rgba :r #x19 :g #x4a :b #x46 :a #x80) + (new 'static 'rgba :r #x1d :g #x4b :b #x4a :a #x80) + (new 'static 'rgba :r #x1e :g #x4b :b #x49 :a #x80) + (new 'static 'rgba :r #x1f :g #x4a :b #x4b :a #x80) + (new 'static 'rgba :r #x20 :g #x4b :b #x4a :a #x80) + (new 'static 'rgba :r #x20 :g #x4c :b #x49 :a #x80) + (new 'static 'rgba :r #x23 :g #x4e :b #x4b :a #x80) + (new 'static 'rgba :r #x24 :g #x4e :b #x4e :a #x80) + (new 'static 'rgba :r #x29 :g #x54 :b #x50 :a #x80) + (new 'static 'rgba :r #x31 :g #x59 :b #x54 :a #x80) + (new 'static 'rgba :r #x2f :g #x58 :b #x55 :a #x80) + (new 'static 'rgba :r #x29 :g #x54 :b #x51 :a #x80) + (new 'static 'rgba :r #x25 :g #x51 :b #x4c :a #x80) + (new 'static 'rgba :r #x24 :g #x51 :b #x4e :a #x80) + (new 'static 'rgba :r #x27 :g #x52 :b #x50 :a #x80) + (new 'static 'rgba :r #x2b :g #x55 :b #x51 :a #x80) + (new 'static 'rgba :r #x29 :g #x53 :b #x52 :a #x80) + (new 'static 'rgba :r #x27 :g #x50 :b #x51 :a #x80) + (new 'static 'rgba :r #x24 :g #x4f :b #x4e :a #x80) + (new 'static 'rgba :r #x21 :g #x4e :b #x4f :a #x80) + (new 'static 'rgba :r #x20 :g #x51 :b #x4b :a #x80) + (new 'static 'rgba :r #x1c :g #x50 :b #x4c :a #x80) + (new 'static 'rgba :r #x1b :g #x4d :b #x4f :a #x80) + (new 'static 'rgba :r #x1e :g #x4c :b #x4f :a #x80) + (new 'static 'rgba :r #x23 :g #x43 :b #x4c :a #x80) + (new 'static 'rgba :r #x21 :g #x3c :b #x48 :a #x80) + (new 'static 'rgba :r #x21 :g #x3a :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1e :g #x3a :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x46 :b #x4a :a #x80) + (new 'static 'rgba :r #x1b :g #x49 :b #x4d :a #x80) + (new 'static 'rgba :r #x18 :g #x4d :b #x4a :a #x80) + (new 'static 'rgba :r #x16 :g #x49 :b #x48 :a #x80) + (new 'static 'rgba :r #x15 :g #x49 :b #x45 :a #x80) + (new 'static 'rgba :r #x14 :g #x49 :b #x45 :a #x80) + (new 'static 'rgba :r #x12 :g #x45 :b #x44 :a #x80) + (new 'static 'rgba :r #x10 :g #x43 :b #x40 :a #x80) + (new 'static 'rgba :r #xf :g #x42 :b #x41 :a #x80) + (new 'static 'rgba :r #x10 :g #x45 :b #x41 :a #x80) + (new 'static 'rgba :r #x12 :g #x45 :b #x43 :a #x80) + (new 'static 'rgba :r #x14 :g #x45 :b #x42 :a #x80) + (new 'static 'rgba :r #x16 :g #x46 :b #x47 :a #x80) + (new 'static 'rgba :r #x17 :g #x48 :b #x46 :a #x80) + (new 'static 'rgba :r #x18 :g #x48 :b #x46 :a #x80) + (new 'static 'rgba :r #x19 :g #x48 :b #x44 :a #x80) + (new 'static 'rgba :r #x1a :g #x47 :b #x47 :a #x80) + (new 'static 'rgba :r #x1b :g #x48 :b #x46 :a #x80) + (new 'static 'rgba :r #x1b :g #x48 :b #x46 :a #x80) + (new 'static 'rgba :r #x1b :g #x49 :b #x47 :a #x80) + (new 'static 'rgba :r #x1b :g #x49 :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x4c :b #x4b :a #x80) + (new 'static 'rgba :r #x21 :g #x4b :b #x4c :a #x80) + (new 'static 'rgba :r #x25 :g #x50 :b #x4e :a #x80) + (new 'static 'rgba :r #x2e :g #x56 :b #x54 :a #x80) + (new 'static 'rgba :r #x2e :g #x55 :b #x52 :a #x80) + (new 'static 'rgba :r #x2b :g #x53 :b #x53 :a #x80) + (new 'static 'rgba :r #x23 :g #x4f :b #x49 :a #x80) + (new 'static 'rgba :r #x22 :g #x4f :b #x48 :a #x80) + (new 'static 'rgba :r #x24 :g #x51 :b #x4c :a #x80) + (new 'static 'rgba :r #x2b :g #x55 :b #x51 :a #x80) + (new 'static 'rgba :r #x2b :g #x55 :b #x52 :a #x80) + (new 'static 'rgba :r #x27 :g #x51 :b #x4f :a #x80) + (new 'static 'rgba :r #x23 :g #x4e :b #x4d :a #x80) + (new 'static 'rgba :r #x22 :g #x4d :b #x4b :a #x80) + (new 'static 'rgba :r #x21 :g #x4f :b #x4c :a #x80) + (new 'static 'rgba :r #x1c :g #x4f :b #x4a :a #x80) + (new 'static 'rgba :r #x1a :g #x4f :b #x4a :a #x80) + (new 'static 'rgba :r #x1b :g #x4c :b #x4e :a #x80) + (new 'static 'rgba :r #x20 :g #x47 :b #x4d :a #x80) + (new 'static 'rgba :r #x22 :g #x3f :b #x49 :a #x80) + (new 'static 'rgba :r #x21 :g #x3a :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1e :g #x3c :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x4a :b #x4c :a #x80) + (new 'static 'rgba :r #x1c :g #x4d :b #x4e :a #x80) + (new 'static 'rgba :r #x19 :g #x4e :b #x4d :a #x80) + (new 'static 'rgba :r #x18 :g #x4c :b #x4a :a #x80) + (new 'static 'rgba :r #x19 :g #x4c :b #x47 :a #x80) + (new 'static 'rgba :r #x17 :g #x48 :b #x48 :a #x80) + (new 'static 'rgba :r #x15 :g #x46 :b #x46 :a #x80) + (new 'static 'rgba :r #x12 :g #x45 :b #x41 :a #x80) + (new 'static 'rgba :r #x11 :g #x44 :b #x3f :a #x80) + (new 'static 'rgba :r #x12 :g #x44 :b #x41 :a #x80) + (new 'static 'rgba :r #x14 :g #x44 :b #x42 :a #x80) + (new 'static 'rgba :r #x15 :g #x45 :b #x41 :a #x80) + (new 'static 'rgba :r #x16 :g #x45 :b #x43 :a #x80) + (new 'static 'rgba :r #x18 :g #x45 :b #x45 :a #x80) + (new 'static 'rgba :r #x19 :g #x46 :b #x42 :a #x80) + (new 'static 'rgba :r #x1a :g #x46 :b #x43 :a #x80) + (new 'static 'rgba :r #x15 :g #x45 :b #x43 :a #x80) + (new 'static 'rgba :r #x17 :g #x45 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x4a :b #x49 :a #x80) + (new 'static 'rgba :r #x1c :g #x47 :b #x45 :a #x80) + (new 'static 'rgba :r #x1d :g #x49 :b #x47 :a #x80) + (new 'static 'rgba :r #x1f :g #x4b :b #x48 :a #x80) + (new 'static 'rgba :r #x22 :g #x4c :b #x4b :a #x80) + (new 'static 'rgba :r #x2b :g #x53 :b #x52 :a #x80) + (new 'static 'rgba :r #x25 :g #x4e :b #x4c :a #x80) + (new 'static 'rgba :r #x29 :g #x51 :b #x4e :a #x80) + (new 'static 'rgba :r #x28 :g #x51 :b #x4f :a #x80) + (new 'static 'rgba :r #x28 :g #x50 :b #x4f :a #x80) + (new 'static 'rgba :r #x20 :g #x4c :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x4c :b #x49 :a #x80) + (new 'static 'rgba :r #x22 :g #x4d :b #x4a :a #x80) + (new 'static 'rgba :r #x24 :g #x50 :b #x4c :a #x80) + (new 'static 'rgba :r #x25 :g #x50 :b #x4c :a #x80) + (new 'static 'rgba :r #x22 :g #x4d :b #x4b :a #x80) + (new 'static 'rgba :r #x21 :g #x4c :b #x49 :a #x80) + (new 'static 'rgba :r #x21 :g #x4d :b #x4b :a #x80) + (new 'static 'rgba :r #x1e :g #x4e :b #x49 :a #x80) + (new 'static 'rgba :r #x1a :g #x4e :b #x4d :a #x80) + (new 'static 'rgba :r #x1a :g #x4e :b #x4d :a #x80) + (new 'static 'rgba :r #x1d :g #x47 :b #x4d :a #x80) + (new 'static 'rgba :r #x21 :g #x40 :b #x4a :a #x80) + (new 'static 'rgba :r #x21 :g #x39 :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1c :g #x39 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x42 :b #x49 :a #x80) + (new 'static 'rgba :r #x1d :g #x49 :b #x4c :a #x80) + (new 'static 'rgba :r #x1b :g #x4e :b #x4c :a #x80) + (new 'static 'rgba :r #x19 :g #x4c :b #x4b :a #x80) + (new 'static 'rgba :r #x1a :g #x4a :b #x49 :a #x80) + (new 'static 'rgba :r #x1b :g #x49 :b #x48 :a #x80) + (new 'static 'rgba :r #x18 :g #x46 :b #x46 :a #x80) + (new 'static 'rgba :r #x16 :g #x43 :b #x44 :a #x80) + (new 'static 'rgba :r #x13 :g #x43 :b #x42 :a #x80) + (new 'static 'rgba :r #x15 :g #x43 :b #x42 :a #x80) + (new 'static 'rgba :r #x15 :g #x43 :b #x42 :a #x80) + (new 'static 'rgba :r #x17 :g #x43 :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x48 :b #x45 :a #x80) + (new 'static 'rgba :r #x18 :g #x44 :b #x42 :a #x80) + (new 'static 'rgba :r #x19 :g #x43 :b #x44 :a #x80) + (new 'static 'rgba :r #x1a :g #x45 :b #x42 :a #x80) + (new 'static 'rgba :r #x18 :g #x44 :b #x41 :a #x80) + (new 'static 'rgba :r #x1a :g #x46 :b #x43 :a #x80) + (new 'static 'rgba :r #x1b :g #x47 :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x49 :b #x47 :a #x80) + (new 'static 'rgba :r #x1c :g #x47 :b #x45 :a #x80) + (new 'static 'rgba :r #x1d :g #x48 :b #x47 :a #x80) + (new 'static 'rgba :r #x22 :g #x4b :b #x4b :a #x80) + (new 'static 'rgba :r #x25 :g #x4d :b #x49 :a #x80) + (new 'static 'rgba :r #x1d :g #x48 :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x49 :b #x49 :a #x80) + (new 'static 'rgba :r #x22 :g #x4c :b #x4a :a #x80) + (new 'static 'rgba :r #x25 :g #x4d :b #x4d :a #x80) + (new 'static 'rgba :r #x23 :g #x4d :b #x4c :a #x80) + (new 'static 'rgba :r #x24 :g #x4d :b #x49 :a #x80) + (new 'static 'rgba :r #x20 :g #x4b :b #x4a :a #x80) + (new 'static 'rgba :r #x1e :g #x4c :b #x46 :a #x80) + (new 'static 'rgba :r #x27 :g #x52 :b #x4c :a #x80) + (new 'static 'rgba :r #x24 :g #x4e :b #x4a :a #x80) + (new 'static 'rgba :r #x20 :g #x4c :b #x4a :a #x80) + (new 'static 'rgba :r #x20 :g #x4b :b #x4b :a #x80) + (new 'static 'rgba :r #x1e :g #x4d :b #x49 :a #x80) + (new 'static 'rgba :r #x1b :g #x4e :b #x49 :a #x80) + (new 'static 'rgba :r #x18 :g #x4e :b #x47 :a #x80) + (new 'static 'rgba :r #x1a :g #x4a :b #x4c :a #x80) + (new 'static 'rgba :r #x1f :g #x41 :b #x4a :a #x80) + (new 'static 'rgba :r #x20 :g #x3b :b #x47 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1c :g #x39 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x40 :b #x48 :a #x80) + (new 'static 'rgba :r #x1f :g #x48 :b #x4c :a #x80) + (new 'static 'rgba :r #x1d :g #x4d :b #x4d :a #x80) + (new 'static 'rgba :r #x1d :g #x4d :b #x4d :a #x80) + (new 'static 'rgba :r #x1d :g #x4a :b #x49 :a #x80) + (new 'static 'rgba :r #x1c :g #x47 :b #x48 :a #x80) + (new 'static 'rgba :r #x1b :g #x48 :b #x44 :a #x80) + (new 'static 'rgba :r #x1a :g #x47 :b #x43 :a #x80) + (new 'static 'rgba :r #x1b :g #x46 :b #x44 :a #x80) + (new 'static 'rgba :r #x19 :g #x46 :b #x43 :a #x80) + (new 'static 'rgba :r #x1a :g #x45 :b #x44 :a #x80) + (new 'static 'rgba :r #x1a :g #x44 :b #x43 :a #x80) + (new 'static 'rgba :r #x1a :g #x43 :b #x44 :a #x80) + (new 'static 'rgba :r #x19 :g #x44 :b #x42 :a #x80) + (new 'static 'rgba :r #x1a :g #x45 :b #x43 :a #x80) + (new 'static 'rgba :r #x19 :g #x43 :b #x44 :a #x80) + (new 'static 'rgba :r #x18 :g #x44 :b #x43 :a #x80) + (new 'static 'rgba :r #x1c :g #x47 :b #x45 :a #x80) + (new 'static 'rgba :r #x19 :g #x42 :b #x43 :a #x80) + (new 'static 'rgba :r #x18 :g #x43 :b #x42 :a #x80) + (new 'static 'rgba :r #x19 :g #x44 :b #x43 :a #x80) + (new 'static 'rgba :r #x1a :g #x45 :b #x45 :a #x80) + (new 'static 'rgba :r #x1e :g #x48 :b #x47 :a #x80) + (new 'static 'rgba :r #x1b :g #x43 :b #x46 :a #x80) + (new 'static 'rgba :r #x1a :g #x45 :b #x44 :a #x80) + (new 'static 'rgba :r #x1b :g #x47 :b #x46 :a #x80) + (new 'static 'rgba :r #x1b :g #x46 :b #x45 :a #x80) + (new 'static 'rgba :r #x1e :g #x48 :b #x48 :a #x80) + (new 'static 'rgba :r #x22 :g #x49 :b #x4a :a #x80) + (new 'static 'rgba :r #x26 :g #x4d :b #x4d :a #x80) + (new 'static 'rgba :r #x24 :g #x4c :b #x4c :a #x80) + (new 'static 'rgba :r #x21 :g #x4d :b #x48 :a #x80) + (new 'static 'rgba :r #x28 :g #x52 :b #x4c :a #x80) + (new 'static 'rgba :r #x26 :g #x50 :b #x4d :a #x80) + (new 'static 'rgba :r #x23 :g #x4d :b #x4d :a #x80) + (new 'static 'rgba :r #x1f :g #x49 :b #x4a :a #x80) + (new 'static 'rgba :r #x1d :g #x4a :b #x49 :a #x80) + (new 'static 'rgba :r #x1c :g #x4d :b #x49 :a #x80) + (new 'static 'rgba :r #x19 :g #x4e :b #x4a :a #x80) + (new 'static 'rgba :r #x19 :g #x4b :b #x4c :a #x80) + (new 'static 'rgba :r #x1d :g #x45 :b #x4a :a #x80) + (new 'static 'rgba :r #x20 :g #x3e :b #x48 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x36 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x31 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1d :g #x3a :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x3e :b #x47 :a #x80) + (new 'static 'rgba :r #x1f :g #x48 :b #x4b :a #x80) + (new 'static 'rgba :r #x20 :g #x50 :b #x4e :a #x80) + (new 'static 'rgba :r #x20 :g #x4f :b #x4d :a #x80) + (new 'static 'rgba :r #x20 :g #x4c :b #x49 :a #x80) + (new 'static 'rgba :r #x1f :g #x4a :b #x49 :a #x80) + (new 'static 'rgba :r #x1f :g #x49 :b #x48 :a #x80) + (new 'static 'rgba :r #x21 :g #x48 :b #x49 :a #x80) + (new 'static 'rgba :r #x21 :g #x49 :b #x49 :a #x80) + (new 'static 'rgba :r #x20 :g #x4a :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x4a :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x49 :b #x47 :a #x80) + (new 'static 'rgba :r #x1d :g #x48 :b #x46 :a #x80) + (new 'static 'rgba :r #x1b :g #x44 :b #x45 :a #x80) + (new 'static 'rgba :r #x1b :g #x46 :b #x45 :a #x80) + (new 'static 'rgba :r #x19 :g #x44 :b #x42 :a #x80) + (new 'static 'rgba :r #x19 :g #x44 :b #x43 :a #x80) + (new 'static 'rgba :r #x17 :g #x43 :b #x42 :a #x80) + (new 'static 'rgba :r #x16 :g #x42 :b #x41 :a #x80) + (new 'static 'rgba :r #x17 :g #x43 :b #x42 :a #x80) + (new 'static 'rgba :r #x18 :g #x42 :b #x42 :a #x80) + (new 'static 'rgba :r #x17 :g #x42 :b #x3f :a #x80) + (new 'static 'rgba :r #x16 :g #x41 :b #x42 :a #x80) + (new 'static 'rgba :r #x14 :g #x40 :b #x41 :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x42 :a #x80) + (new 'static 'rgba :r #x13 :g #x41 :b #x42 :a #x80) + (new 'static 'rgba :r #x14 :g #x43 :b #x41 :a #x80) + (new 'static 'rgba :r #x17 :g #x43 :b #x41 :a #x80) + (new 'static 'rgba :r #x19 :g #x45 :b #x44 :a #x80) + (new 'static 'rgba :r #x1d :g #x46 :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x49 :b #x48 :a #x80) + (new 'static 'rgba :r #x24 :g #x4c :b #x47 :a #x80) + (new 'static 'rgba :r #x22 :g #x4d :b #x4b :a #x80) + (new 'static 'rgba :r #x1f :g #x49 :b #x47 :a #x80) + (new 'static 'rgba :r #x22 :g #x4b :b #x4b :a #x80) + (new 'static 'rgba :r #x1e :g #x49 :b #x48 :a #x80) + (new 'static 'rgba :r #x1e :g #x49 :b #x4a :a #x80) + (new 'static 'rgba :r #x1c :g #x4b :b #x48 :a #x80) + (new 'static 'rgba :r #x1a :g #x4d :b #x4b :a #x80) + (new 'static 'rgba :r #x19 :g #x4c :b #x49 :a #x80) + (new 'static 'rgba :r #x1c :g #x48 :b #x4b :a #x80) + (new 'static 'rgba :r #x21 :g #x40 :b #x49 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1d :g #x39 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x41 :b #x49 :a #x80) + (new 'static 'rgba :r #x21 :g #x4b :b #x4c :a #x80) + (new 'static 'rgba :r #x22 :g #x50 :b #x51 :a #x80) + (new 'static 'rgba :r #x24 :g #x50 :b #x50 :a #x80) + (new 'static 'rgba :r #x25 :g #x4f :b #x4c :a #x80) + (new 'static 'rgba :r #x24 :g #x4d :b #x4b :a #x80) + (new 'static 'rgba :r #x25 :g #x4c :b #x4c :a #x80) + (new 'static 'rgba :r #x24 :g #x4b :b #x4b :a #x80) + (new 'static 'rgba :r #x24 :g #x4c :b #x4c :a #x80) + (new 'static 'rgba :r #x25 :g #x4b :b #x4c :a #x80) + (new 'static 'rgba :r #x24 :g #x4d :b #x49 :a #x80) + (new 'static 'rgba :r #x23 :g #x4b :b #x49 :a #x80) + (new 'static 'rgba :r #x21 :g #x4a :b #x47 :a #x80) + (new 'static 'rgba :r #x1e :g #x47 :b #x47 :a #x80) + (new 'static 'rgba :r #x1c :g #x47 :b #x45 :a #x80) + (new 'static 'rgba :r #x1c :g #x47 :b #x45 :a #x80) + (new 'static 'rgba :r #x1a :g #x44 :b #x44 :a #x80) + (new 'static 'rgba :r #x16 :g #x42 :b #x41 :a #x80) + (new 'static 'rgba :r #x15 :g #x42 :b #x42 :a #x80) + (new 'static 'rgba :r #x14 :g #x42 :b #x40 :a #x80) + (new 'static 'rgba :r #x16 :g #x43 :b #x41 :a #x80) + (new 'static 'rgba :r #x14 :g #x40 :b #x41 :a #x80) + (new 'static 'rgba :r #x11 :g #x40 :b #x3f :a #x80) + (new 'static 'rgba :r #x10 :g #x41 :b #x3c :a #x80) + (new 'static 'rgba :r #xd :g #x3f :b #x3a :a #x80) + (new 'static 'rgba :r #xb :g #x3e :b #x3d :a #x80) + (new 'static 'rgba :r #xb :g #x3f :b #x3c :a #x80) + (new 'static 'rgba :r #xe :g #x40 :b #x3d :a #x80) + (new 'static 'rgba :r #x12 :g #x42 :b #x40 :a #x80) + (new 'static 'rgba :r #x15 :g #x41 :b #x40 :a #x80) + (new 'static 'rgba :r #x18 :g #x43 :b #x43 :a #x80) + (new 'static 'rgba :r #x1a :g #x44 :b #x45 :a #x80) + (new 'static 'rgba :r #x1e :g #x47 :b #x46 :a #x80) + (new 'static 'rgba :r #x1e :g #x48 :b #x49 :a #x80) + (new 'static 'rgba :r #x1f :g #x49 :b #x46 :a #x80) + (new 'static 'rgba :r #x1f :g #x49 :b #x49 :a #x80) + (new 'static 'rgba :r #x1e :g #x4a :b #x48 :a #x80) + (new 'static 'rgba :r #x1d :g #x4b :b #x4a :a #x80) + (new 'static 'rgba :r #x1b :g #x4d :b #x48 :a #x80) + (new 'static 'rgba :r #x1a :g #x4e :b #x4b :a #x80) + (new 'static 'rgba :r #x1a :g #x49 :b #x4a :a #x80) + (new 'static 'rgba :r #x20 :g #x3e :b #x48 :a #x80) + (new 'static 'rgba :r #x1f :g #x36 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1d :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x43 :b #x4a :a #x80) + (new 'static 'rgba :r #x21 :g #x49 :b #x4e :a #x80) + (new 'static 'rgba :r #x25 :g #x51 :b #x51 :a #x80) + (new 'static 'rgba :r #x27 :g #x51 :b #x52 :a #x80) + (new 'static 'rgba :r #x26 :g #x50 :b #x4f :a #x80) + (new 'static 'rgba :r #x27 :g #x50 :b #x4e :a #x80) + (new 'static 'rgba :r #x28 :g #x4e :b #x4e :a #x80) + (new 'static 'rgba :r #x28 :g #x51 :b #x4d :a #x80) + (new 'static 'rgba :r #x28 :g #x51 :b #x4c :a #x80) + (new 'static 'rgba :r #x24 :g #x4c :b #x4c :a #x80) + (new 'static 'rgba :r #x26 :g #x4f :b #x4c :a #x80) + (new 'static 'rgba :r #x24 :g #x4b :b #x49 :a #x80) + (new 'static 'rgba :r #x24 :g #x4d :b #x4c :a #x80) + (new 'static 'rgba :r #x23 :g #x4a :b #x4b :a #x80) + (new 'static 'rgba :r #x1f :g #x49 :b #x49 :a #x80) + (new 'static 'rgba :r #x1f :g #x48 :b #x48 :a #x80) + (new 'static 'rgba :r #x1a :g #x45 :b #x45 :a #x80) + (new 'static 'rgba :r #x17 :g #x44 :b #x42 :a #x80) + (new 'static 'rgba :r #x14 :g #x42 :b #x3f :a #x80) + (new 'static 'rgba :r #x1c :g #x47 :b #x43 :a #x80) + (new 'static 'rgba :r #x12 :g #x40 :b #x40 :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x3d :a #x80) + (new 'static 'rgba :r #xb :g #x3e :b #x3c :a #x80) + (new 'static 'rgba :r #xa :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x8 :g #x3c :b #x3a :a #x80) + (new 'static 'rgba :r #x7 :g #x3c :b #x38 :a #x80) + (new 'static 'rgba :r #x8 :g #x3d :b #x3b :a #x80) + (new 'static 'rgba :r #x9 :g #x3c :b #x3b :a #x80) + (new 'static 'rgba :r #xb :g #x3e :b #x3d :a #x80) + (new 'static 'rgba :r #xf :g #x40 :b #x3c :a #x80) + (new 'static 'rgba :r #x13 :g #x40 :b #x3d :a #x80) + (new 'static 'rgba :r #x17 :g #x43 :b #x42 :a #x80) + (new 'static 'rgba :r #x1b :g #x45 :b #x45 :a #x80) + (new 'static 'rgba :r #x1c :g #x46 :b #x45 :a #x80) + (new 'static 'rgba :r #x1c :g #x47 :b #x46 :a #x80) + (new 'static 'rgba :r #x1e :g #x49 :b #x48 :a #x80) + (new 'static 'rgba :r #x1e :g #x4a :b #x47 :a #x80) + (new 'static 'rgba :r #x1e :g #x4b :b #x47 :a #x80) + (new 'static 'rgba :r #x1c :g #x4d :b #x4b :a #x80) + (new 'static 'rgba :r #x1a :g #x4d :b #x4b :a #x80) + (new 'static 'rgba :r #x19 :g #x49 :b #x4b :a #x80) + (new 'static 'rgba :r #x1f :g #x42 :b #x4a :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x47 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x3d :b #x47 :a #x80) + (new 'static 'rgba :r #x23 :g #x45 :b #x4c :a #x80) + (new 'static 'rgba :r #x24 :g #x4b :b #x50 :a #x80) + (new 'static 'rgba :r #x27 :g #x51 :b #x52 :a #x80) + (new 'static 'rgba :r #x2a :g #x54 :b #x52 :a #x80) + (new 'static 'rgba :r #x2a :g #x53 :b #x50 :a #x80) + (new 'static 'rgba :r #x2b :g #x52 :b #x4f :a #x80) + (new 'static 'rgba :r #x2b :g #x52 :b #x4f :a #x80) + (new 'static 'rgba :r #x29 :g #x51 :b #x4d :a #x80) + (new 'static 'rgba :r #x28 :g #x50 :b #x4c :a #x80) + (new 'static 'rgba :r #x25 :g #x4c :b #x47 :a #x80) + (new 'static 'rgba :r #x1f :g #x48 :b #x46 :a #x80) + (new 'static 'rgba :r #x28 :g #x51 :b #x4e :a #x80) + (new 'static 'rgba :r #x25 :g #x4d :b #x4c :a #x80) + (new 'static 'rgba :r #x23 :g #x4b :b #x47 :a #x80) + (new 'static 'rgba :r #x21 :g #x48 :b #x49 :a #x80) + (new 'static 'rgba :r #x1e :g #x46 :b #x47 :a #x80) + (new 'static 'rgba :r #x1a :g #x45 :b #x45 :a #x80) + (new 'static 'rgba :r #x17 :g #x44 :b #x43 :a #x80) + (new 'static 'rgba :r #x11 :g #x41 :b #x40 :a #x80) + (new 'static 'rgba :r #xf :g #x3f :b #x3f :a #x80) + (new 'static 'rgba :r #xd :g #x3e :b #x3b :a #x80) + (new 'static 'rgba :r #xb :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x7 :g #x3b :b #x3a :a #x80) + (new 'static 'rgba :r #x6 :g #x39 :b #x39 :a #x80) + (new 'static 'rgba :r #x5 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x6 :g #x36 :b #x39 :a #x80) + (new 'static 'rgba :r #x6 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x5 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x6 :g #x3b :b #x36 :a #x80) + (new 'static 'rgba :r #x9 :g #x3e :b #x3c :a #x80) + (new 'static 'rgba :r #xf :g #x40 :b #x3e :a #x80) + (new 'static 'rgba :r #x13 :g #x40 :b #x40 :a #x80) + (new 'static 'rgba :r #x1a :g #x44 :b #x44 :a #x80) + (new 'static 'rgba :r #x1b :g #x46 :b #x45 :a #x80) + (new 'static 'rgba :r #x1e :g #x49 :b #x47 :a #x80) + (new 'static 'rgba :r #x18 :g #x45 :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x4b :b #x48 :a #x80) + (new 'static 'rgba :r #x1f :g #x4c :b #x49 :a #x80) + (new 'static 'rgba :r #x1d :g #x4d :b #x4a :a #x80) + (new 'static 'rgba :r #x1a :g #x4e :b #x48 :a #x80) + (new 'static 'rgba :r #x1a :g #x4c :b #x49 :a #x80) + (new 'static 'rgba :r #x1e :g #x48 :b #x4c :a #x80) + (new 'static 'rgba :r #x21 :g #x3b :b #x47 :a #x80) + (new 'static 'rgba :r #x1f :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x3d :b #x48 :a #x80) + (new 'static 'rgba :r #x24 :g #x4a :b #x4e :a #x80) + (new 'static 'rgba :r #x26 :g #x50 :b #x51 :a #x80) + (new 'static 'rgba :r #x2c :g #x56 :b #x54 :a #x80) + (new 'static 'rgba :r #x2f :g #x57 :b #x57 :a #x80) + (new 'static 'rgba :r #x2e :g #x56 :b #x52 :a #x80) + (new 'static 'rgba :r #x2c :g #x54 :b #x4f :a #x80) + (new 'static 'rgba :r #x2b :g #x52 :b #x4d :a #x80) + (new 'static 'rgba :r #x2c :g #x53 :b #x4e :a #x80) + (new 'static 'rgba :r #x2b :g #x53 :b #x4d :a #x80) + (new 'static 'rgba :r #x2c :g #x54 :b #x4f :a #x80) + (new 'static 'rgba :r #x27 :g #x4f :b #x4c :a #x80) + (new 'static 'rgba :r #x29 :g #x51 :b #x4d :a #x80) + (new 'static 'rgba :r #x21 :g #x49 :b #x41 :a #x80) + (new 'static 'rgba :r #x27 :g #x4f :b #x4d :a #x80) + (new 'static 'rgba :r #x22 :g #x4c :b #x49 :a #x80) + (new 'static 'rgba :r #x1e :g #x48 :b #x46 :a #x80) + (new 'static 'rgba :r #x1c :g #x47 :b #x44 :a #x80) + (new 'static 'rgba :r #x16 :g #x43 :b #x40 :a #x80) + (new 'static 'rgba :r #x11 :g #x41 :b #x3e :a #x80) + (new 'static 'rgba :r #xe :g #x40 :b #x3b :a #x80) + (new 'static 'rgba :r #xb :g #x3f :b #x3d :a #x80) + (new 'static 'rgba :r #x9 :g #x3d :b #x3a :a #x80) + (new 'static 'rgba :r #x7 :g #x3b :b #x3a :a #x80) + (new 'static 'rgba :r #x6 :g #x39 :b #x38 :a #x80) + (new 'static 'rgba :r #x6 :g #x34 :b #x36 :a #x80) + (new 'static 'rgba :r #x6 :g #x32 :b #x35 :a #x80) + (new 'static 'rgba :r #x6 :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x5 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x5 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x6 :g #x3a :b #x3a :a #x80) + (new 'static 'rgba :r #xb :g #x3e :b #x3c :a #x80) + (new 'static 'rgba :r #x11 :g #x41 :b #x40 :a #x80) + (new 'static 'rgba :r #x18 :g #x44 :b #x42 :a #x80) + (new 'static 'rgba :r #x23 :g #x4c :b #x4b :a #x80) + (new 'static 'rgba :r #x21 :g #x4b :b #x48 :a #x80) + (new 'static 'rgba :r #x22 :g #x4d :b #x48 :a #x80) + (new 'static 'rgba :r #x21 :g #x4d :b #x4c :a #x80) + (new 'static 'rgba :r #x22 :g #x4d :b #x4b :a #x80) + (new 'static 'rgba :r #x20 :g #x4f :b #x4e :a #x80) + (new 'static 'rgba :r #x1d :g #x4f :b #x4c :a #x80) + (new 'static 'rgba :r #x1b :g #x4e :b #x4c :a #x80) + (new 'static 'rgba :r #x1e :g #x47 :b #x4d :a #x80) + (new 'static 'rgba :r #x21 :g #x3f :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x21 :g #x41 :b #x49 :a #x80) + (new 'static 'rgba :r #x25 :g #x4c :b #x50 :a #x80) + (new 'static 'rgba :r #x2c :g #x55 :b #x55 :a #x80) + (new 'static 'rgba :r #x31 :g #x5a :b #x58 :a #x80) + (new 'static 'rgba :r #x31 :g #x5a :b #x57 :a #x80) + (new 'static 'rgba :r #x30 :g #x58 :b #x51 :a #x80) + (new 'static 'rgba :r #x2d :g #x54 :b #x4a :a #x80) + (new 'static 'rgba :r #x29 :g #x4f :b #x47 :a #x80) + (new 'static 'rgba :r #x29 :g #x50 :b #x47 :a #x80) + (new 'static 'rgba :r #x2a :g #x51 :b #x4c :a #x80) + (new 'static 'rgba :r #x2c :g #x52 :b #x4d :a #x80) + (new 'static 'rgba :r #x2a :g #x52 :b #x4a :a #x80) + (new 'static 'rgba :r #x28 :g #x50 :b #x4b :a #x80) + (new 'static 'rgba :r #x28 :g #x51 :b #x4b :a #x80) + (new 'static 'rgba :r #x27 :g #x4f :b #x4c :a #x80) + (new 'static 'rgba :r #x25 :g #x4d :b #x4b :a #x80) + (new 'static 'rgba :r #x21 :g #x49 :b #x47 :a #x80) + (new 'static 'rgba :r #x1d :g #x47 :b #x47 :a #x80) + (new 'static 'rgba :r #x16 :g #x44 :b #x41 :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x3d :a #x80) + (new 'static 'rgba :r #xd :g #x3f :b #x3b :a #x80) + (new 'static 'rgba :r #xf :g #x40 :b #x3b :a #x80) + (new 'static 'rgba :r #x7 :g #x3c :b #x39 :a #x80) + (new 'static 'rgba :r #x6 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x6 :g #x35 :b #x37 :a #x80) + (new 'static 'rgba :r #x6 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x6 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x6 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x6 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x6 :g #x35 :b #x36 :a #x80) + (new 'static 'rgba :r #x6 :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x9 :g #x3d :b #x3b :a #x80) + (new 'static 'rgba :r #x11 :g #x40 :b #x3d :a #x80) + (new 'static 'rgba :r #x19 :g #x44 :b #x45 :a #x80) + (new 'static 'rgba :r #x27 :g #x4f :b #x4c :a #x80) + (new 'static 'rgba :r #x26 :g #x50 :b #x4a :a #x80) + (new 'static 'rgba :r #x26 :g #x50 :b #x4d :a #x80) + (new 'static 'rgba :r #x25 :g #x4f :b #x4c :a #x80) + (new 'static 'rgba :r #x25 :g #x4f :b #x4d :a #x80) + (new 'static 'rgba :r #x23 :g #x50 :b #x4d :a #x80) + (new 'static 'rgba :r #x1f :g #x51 :b #x4e :a #x80) + (new 'static 'rgba :r #x1d :g #x50 :b #x50 :a #x80) + (new 'static 'rgba :r #x1e :g #x4c :b #x4e :a #x80) + (new 'static 'rgba :r #x22 :g #x43 :b #x4a :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x41 :b #x49 :a #x80) + (new 'static 'rgba :r #x28 :g #x4b :b #x51 :a #x80) + (new 'static 'rgba :r #x2e :g #x56 :b #x58 :a #x80) + (new 'static 'rgba :r #x33 :g #x5a :b #x59 :a #x80) + (new 'static 'rgba :r #x33 :g #x59 :b #x53 :a #x80) + (new 'static 'rgba :r #x2f :g #x56 :b #x4a :a #x80) + (new 'static 'rgba :r #x29 :g #x4d :b #x3e :a #x80) + (new 'static 'rgba :r #x25 :g #x49 :b #x3a :a #x80) + (new 'static 'rgba :r #x24 :g #x49 :b #x3c :a #x80) + (new 'static 'rgba :r #x26 :g #x4b :b #x3f :a #x80) + (new 'static 'rgba :r #x24 :g #x4c :b #x3e :a #x80) + (new 'static 'rgba :r #x23 :g #x4a :b #x3e :a #x80) + (new 'static 'rgba :r #x24 :g #x4a :b #x42 :a #x80) + (new 'static 'rgba :r #x23 :g #x4b :b #x46 :a #x80) + (new 'static 'rgba :r #x23 :g #x4c :b #x4c :a #x80) + (new 'static 'rgba :r #x21 :g #x4b :b #x4a :a #x80) + (new 'static 'rgba :r #x22 :g #x4b :b #x49 :a #x80) + (new 'static 'rgba :r #x16 :g #x40 :b #x41 :a #x80) + (new 'static 'rgba :r #x17 :g #x44 :b #x44 :a #x80) + (new 'static 'rgba :r #x10 :g #x41 :b #x3d :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x3e :a #x80) + (new 'static 'rgba :r #xe :g #x40 :b #x3b :a #x80) + (new 'static 'rgba :r #x7 :g #x3a :b #x3a :a #x80) + (new 'static 'rgba :r #x6 :g #x36 :b #x39 :a #x80) + (new 'static 'rgba :r #x6 :g #x36 :b #x36 :a #x80) + (new 'static 'rgba :r #x6 :g #x33 :b #x35 :a #x80) + (new 'static 'rgba :r #x6 :g #x2f :b #x35 :a #x80) + (new 'static 'rgba :r #x6 :g #x2b :b #x32 :a #x80) + (new 'static 'rgba :r #x7 :g #x2c :b #x34 :a #x80) + (new 'static 'rgba :r #x6 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x5 :g #x35 :b #x37 :a #x80) + (new 'static 'rgba :r #x8 :g #x3b :b #x3a :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x3f :a #x80) + (new 'static 'rgba :r #x1b :g #x46 :b #x44 :a #x80) + (new 'static 'rgba :r #x25 :g #x4e :b #x4a :a #x80) + (new 'static 'rgba :r #x29 :g #x51 :b #x51 :a #x80) + (new 'static 'rgba :r #x2a :g #x50 :b #x51 :a #x80) + (new 'static 'rgba :r #x29 :g #x51 :b #x52 :a #x80) + (new 'static 'rgba :r #x28 :g #x52 :b #x50 :a #x80) + (new 'static 'rgba :r #x27 :g #x52 :b #x51 :a #x80) + (new 'static 'rgba :r #x22 :g #x50 :b #x50 :a #x80) + (new 'static 'rgba :r #x1e :g #x50 :b #x50 :a #x80) + (new 'static 'rgba :r #x1f :g #x50 :b #x51 :a #x80) + (new 'static 'rgba :r #x21 :g #x42 :b #x4b :a #x80) + (new 'static 'rgba :r #x21 :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x22 :g #x3d :b #x49 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x40 :b #x48 :a #x80) + (new 'static 'rgba :r #x27 :g #x4b :b #x52 :a #x80) + (new 'static 'rgba :r #x2f :g #x57 :b #x57 :a #x80) + (new 'static 'rgba :r #x32 :g #x5a :b #x55 :a #x80) + (new 'static 'rgba :r #x30 :g #x53 :b #x4a :a #x80) + (new 'static 'rgba :r #x2a :g #x4f :b #x3d :a #x80) + (new 'static 'rgba :r #x24 :g #x49 :b #x38 :a #x80) + (new 'static 'rgba :r #x21 :g #x45 :b #x31 :a #x80) + (new 'static 'rgba :r #x21 :g #x44 :b #x31 :a #x80) + (new 'static 'rgba :r #x1e :g #x43 :b #x31 :a #x80) + (new 'static 'rgba :r #x1d :g #x41 :b #x30 :a #x80) + (new 'static 'rgba :r #x1c :g #x42 :b #x30 :a #x80) + (new 'static 'rgba :r #x20 :g #x44 :b #x36 :a #x80) + (new 'static 'rgba :r #x23 :g #x4a :b #x45 :a #x80) + (new 'static 'rgba :r #x1e :g #x45 :b #x47 :a #x80) + (new 'static 'rgba :r #x27 :g #x4d :b #x4e :a #x80) + (new 'static 'rgba :r #x23 :g #x4a :b #x4b :a #x80) + (new 'static 'rgba :r #x1c :g #x46 :b #x44 :a #x80) + (new 'static 'rgba :r #x17 :g #x45 :b #x42 :a #x80) + (new 'static 'rgba :r #x11 :g #x42 :b #x3f :a #x80) + (new 'static 'rgba :r #xd :g #x3f :b #x3d :a #x80) + (new 'static 'rgba :r #xa :g #x3e :b #x3c :a #x80) + (new 'static 'rgba :r #x7 :g #x3b :b #x3b :a #x80) + (new 'static 'rgba :r #x6 :g #x38 :b #x39 :a #x80) + (new 'static 'rgba :r #x6 :g #x36 :b #x36 :a #x80) + (new 'static 'rgba :r #x7 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x6 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x1 :g #x16 :b #x23 :a #x80) + (new 'static 'rgba :r #x7 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x7 :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x4 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x9 :g #x3b :b #x38 :a #x80) + (new 'static 'rgba :r #x11 :g #x41 :b #x3f :a #x80) + (new 'static 'rgba :r #x1b :g #x47 :b #x44 :a #x80) + (new 'static 'rgba :r #x21 :g #x4c :b #x4a :a #x80) + (new 'static 'rgba :r #x28 :g #x51 :b #x4f :a #x80) + (new 'static 'rgba :r #x2c :g #x55 :b #x52 :a #x80) + (new 'static 'rgba :r #x2a :g #x52 :b #x53 :a #x80) + (new 'static 'rgba :r #x2b :g #x55 :b #x52 :a #x80) + (new 'static 'rgba :r #x29 :g #x53 :b #x52 :a #x80) + (new 'static 'rgba :r #x25 :g #x53 :b #x4f :a #x80) + (new 'static 'rgba :r #x20 :g #x52 :b #x4e :a #x80) + (new 'static 'rgba :r #x1e :g #x4f :b #x50 :a #x80) + (new 'static 'rgba :r #x20 :g #x46 :b #x4c :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x47 :a #x80) + (new 'static 'rgba :r #x25 :g #x4b :b #x51 :a #x80) + (new 'static 'rgba :r #x21 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x3e :b #x48 :a #x80) + (new 'static 'rgba :r #x28 :g #x4f :b #x52 :a #x80) + (new 'static 'rgba :r #x30 :g #x57 :b #x57 :a #x80) + (new 'static 'rgba :r #x30 :g #x55 :b #x48 :a #x80) + (new 'static 'rgba :r #x2b :g #x4e :b #x3b :a #x80) + (new 'static 'rgba :r #x25 :g #x47 :b #x35 :a #x80) + (new 'static 'rgba :r #x21 :g #x44 :b #x2c :a #x80) + (new 'static 'rgba :r #x1e :g #x3f :b #x2b :a #x80) + (new 'static 'rgba :r #x1d :g #x40 :b #x29 :a #x80) + (new 'static 'rgba :r #x1b :g #x3f :b #x2b :a #x80) + (new 'static 'rgba :r #x1c :g #x3e :b #x29 :a #x80) + (new 'static 'rgba :r #x1b :g #x3e :b #x2b :a #x80) + (new 'static 'rgba :r #x1e :g #x41 :b #x30 :a #x80) + (new 'static 'rgba :r #x27 :g #x4c :b #x45 :a #x80) + (new 'static 'rgba :r #x2b :g #x54 :b #x4f :a #x80) + (new 'static 'rgba :r #x29 :g #x51 :b #x51 :a #x80) + (new 'static 'rgba :r #x23 :g #x4b :b #x4b :a #x80) + (new 'static 'rgba :r #x1d :g #x45 :b #x47 :a #x80) + (new 'static 'rgba :r #x17 :g #x45 :b #x44 :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x40 :a #x80) + (new 'static 'rgba :r #xe :g #x41 :b #x3e :a #x80) + (new 'static 'rgba :r #xa :g #x3d :b #x3a :a #x80) + (new 'static 'rgba :r #x8 :g #x3b :b #x3b :a #x80) + (new 'static 'rgba :r #x6 :g #x3a :b #x37 :a #x80) + (new 'static 'rgba :r #x6 :g #x35 :b #x38 :a #x80) + (new 'static 'rgba :r #x6 :g #x33 :b #x35 :a #x80) + (new 'static 'rgba :r #x6 :g #x32 :b #x35 :a #x80) + (new 'static 'rgba :r #x5 :g #x28 :b #x31 :a #x80) + (new 'static 'rgba :r #x6 :g #x2c :b #x33 :a #x80) + (new 'static 'rgba :r #x6 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x5 :g #x35 :b #x38 :a #x80) + (new 'static 'rgba :r #x9 :g #x3d :b #x3b :a #x80) + (new 'static 'rgba :r #x14 :g #x44 :b #x41 :a #x80) + (new 'static 'rgba :r #x1e :g #x49 :b #x49 :a #x80) + (new 'static 'rgba :r #x24 :g #x4d :b #x4b :a #x80) + (new 'static 'rgba :r #x2b :g #x53 :b #x4f :a #x80) + (new 'static 'rgba :r #x31 :g #x57 :b #x57 :a #x80) + (new 'static 'rgba :r #x2b :g #x54 :b #x52 :a #x80) + (new 'static 'rgba :r #x2e :g #x57 :b #x55 :a #x80) + (new 'static 'rgba :r #x2b :g #x54 :b #x52 :a #x80) + (new 'static 'rgba :r #x27 :g #x54 :b #x54 :a #x80) + (new 'static 'rgba :r #x21 :g #x53 :b #x51 :a #x80) + (new 'static 'rgba :r #x1f :g #x52 :b #x52 :a #x80) + (new 'static 'rgba :r #x22 :g #x50 :b #x52 :a #x80) + (new 'static 'rgba :r #x21 :g #x3a :b #x49 :a #x80) + (new 'static 'rgba :r #x22 :g #x39 :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x21 :g #x42 :b #x4a :a #x80) + (new 'static 'rgba :r #x28 :g #x52 :b #x53 :a #x80) + (new 'static 'rgba :r #x30 :g #x57 :b #x53 :a #x80) + (new 'static 'rgba :r #x2e :g #x52 :b #x43 :a #x80) + (new 'static 'rgba :r #x27 :g #x49 :b #x37 :a #x80) + (new 'static 'rgba :r #x23 :g #x43 :b #x2d :a #x80) + (new 'static 'rgba :r #x1e :g #x40 :b #x2a :a #x80) + (new 'static 'rgba :r #x1d :g #x3e :b #x27 :a #x80) + (new 'static 'rgba :r #x1b :g #x3d :b #x24 :a #x80) + (new 'static 'rgba :r #x1a :g #x3d :b #x27 :a #x80) + (new 'static 'rgba :r #x18 :g #x3b :b #x23 :a #x80) + (new 'static 'rgba :r #x19 :g #x3d :b #x23 :a #x80) + (new 'static 'rgba :r #x1d :g #x40 :b #x2c :a #x80) + (new 'static 'rgba :r #x22 :g #x49 :b #x3f :a #x80) + (new 'static 'rgba :r #x28 :g #x52 :b #x4b :a #x80) + (new 'static 'rgba :r #x2b :g #x52 :b #x50 :a #x80) + (new 'static 'rgba :r #x25 :g #x4d :b #x4a :a #x80) + (new 'static 'rgba :r #x1f :g #x48 :b #x48 :a #x80) + (new 'static 'rgba :r #x18 :g #x44 :b #x42 :a #x80) + (new 'static 'rgba :r #x13 :g #x41 :b #x41 :a #x80) + (new 'static 'rgba :r #x11 :g #x41 :b #x41 :a #x80) + (new 'static 'rgba :r #xb :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x9 :g #x3d :b #x3b :a #x80) + (new 'static 'rgba :r #x6 :g #x3a :b #x38 :a #x80) + (new 'static 'rgba :r #x6 :g #x38 :b #x38 :a #x80) + (new 'static 'rgba :r #x7 :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x6 :g #x32 :b #x35 :a #x80) + (new 'static 'rgba :r #x6 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x7 :g #x30 :b #x36 :a #x80) + (new 'static 'rgba :r #x7 :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x6 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x9 :g #x3d :b #x39 :a #x80) + (new 'static 'rgba :r #x16 :g #x46 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x49 :b #x48 :a #x80) + (new 'static 'rgba :r #x25 :g #x4e :b #x4b :a #x80) + (new 'static 'rgba :r #x2c :g #x53 :b #x50 :a #x80) + (new 'static 'rgba :r #x35 :g #x5a :b #x59 :a #x80) + (new 'static 'rgba :r #x2f :g #x57 :b #x55 :a #x80) + (new 'static 'rgba :r #x31 :g #x59 :b #x57 :a #x80) + (new 'static 'rgba :r #x2d :g #x56 :b #x56 :a #x80) + (new 'static 'rgba :r #x27 :g #x54 :b #x54 :a #x80) + (new 'static 'rgba :r #x22 :g #x54 :b #x52 :a #x80) + (new 'static 'rgba :r #x20 :g #x52 :b #x51 :a #x80) + (new 'static 'rgba :r #x22 :g #x50 :b #x52 :a #x80) + (new 'static 'rgba :r #x21 :g #x3a :b #x49 :a #x80) + (new 'static 'rgba :r #x21 :g #x37 :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x21 :g #x3f :b #x4a :a #x80) + (new 'static 'rgba :r #x29 :g #x51 :b #x55 :a #x80) + (new 'static 'rgba :r #x2f :g #x55 :b #x4e :a #x80) + (new 'static 'rgba :r #x29 :g #x4c :b #x3c :a #x80) + (new 'static 'rgba :r #x24 :g #x45 :b #x30 :a #x80) + (new 'static 'rgba :r #x21 :g #x41 :b #x29 :a #x80) + (new 'static 'rgba :r #x1d :g #x3e :b #x26 :a #x80) + (new 'static 'rgba :r #x1b :g #x3d :b #x24 :a #x80) + (new 'static 'rgba :r #x19 :g #x3c :b #x21 :a #x80) + (new 'static 'rgba :r #x1a :g #x3c :b #x25 :a #x80) + (new 'static 'rgba :r #x1b :g #x3e :b #x26 :a #x80) + (new 'static 'rgba :r #x1c :g #x3f :b #x2a :a #x80) + (new 'static 'rgba :r #x1f :g #x42 :b #x30 :a #x80) + (new 'static 'rgba :r #x21 :g #x46 :b #x39 :a #x80) + (new 'static 'rgba :r #x27 :g #x4c :b #x45 :a #x80) + (new 'static 'rgba :r #x28 :g #x51 :b #x4b :a #x80) + (new 'static 'rgba :r #x26 :g #x4f :b #x4d :a #x80) + (new 'static 'rgba :r #x23 :g #x4b :b #x4b :a #x80) + (new 'static 'rgba :r #x1c :g #x45 :b #x46 :a #x80) + (new 'static 'rgba :r #x16 :g #x42 :b #x43 :a #x80) + (new 'static 'rgba :r #x12 :g #x42 :b #x3e :a #x80) + (new 'static 'rgba :r #xd :g #x3e :b #x3e :a #x80) + (new 'static 'rgba :r #x19 :g #x46 :b #x42 :a #x80) + (new 'static 'rgba :r #x8 :g #x3d :b #x38 :a #x80) + (new 'static 'rgba :r #x7 :g #x3a :b #x38 :a #x80) + (new 'static 'rgba :r #x6 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x6 :g #x36 :b #x35 :a #x80) + (new 'static 'rgba :r #x6 :g #x33 :b #x35 :a #x80) + (new 'static 'rgba :r #x6 :g #x33 :b #x35 :a #x80) + (new 'static 'rgba :r #x7 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x5 :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #xa :g #x3d :b #x3c :a #x80) + (new 'static 'rgba :r #x14 :g #x44 :b #x41 :a #x80) + (new 'static 'rgba :r #x1a :g #x46 :b #x43 :a #x80) + (new 'static 'rgba :r #x23 :g #x4c :b #x4a :a #x80) + (new 'static 'rgba :r #x29 :g #x51 :b #x4f :a #x80) + (new 'static 'rgba :r #x34 :g #x58 :b #x57 :a #x80) + (new 'static 'rgba :r #x34 :g #x59 :b #x56 :a #x80) + (new 'static 'rgba :r #x2e :g #x56 :b #x54 :a #x80) + (new 'static 'rgba :r #x2c :g #x56 :b #x54 :a #x80) + (new 'static 'rgba :r #x28 :g #x55 :b #x55 :a #x80) + (new 'static 'rgba :r #x21 :g #x54 :b #x52 :a #x80) + (new 'static 'rgba :r #x1f :g #x52 :b #x51 :a #x80) + (new 'static 'rgba :r #x22 :g #x4b :b #x4e :a #x80) + (new 'static 'rgba :r #x21 :g #x3b :b #x49 :a #x80) + (new 'static 'rgba :r #x21 :g #x37 :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1e :g #x3c :b #x47 :a #x80) + (new 'static 'rgba :r #x29 :g #x4c :b #x52 :a #x80) + (new 'static 'rgba :r #x30 :g #x57 :b #x50 :a #x80) + (new 'static 'rgba :r #x27 :g #x4a :b #x39 :a #x80) + (new 'static 'rgba :r #x21 :g #x42 :b #x2f :a #x80) + (new 'static 'rgba :r #x1f :g #x41 :b #x28 :a #x80) + (new 'static 'rgba :r #x1c :g #x3f :b #x29 :a #x80) + (new 'static 'rgba :r #x1d :g #x3f :b #x26 :a #x80) + (new 'static 'rgba :r #x1d :g #x40 :b #x27 :a #x80) + (new 'static 'rgba :r #x1d :g #x40 :b #x29 :a #x80) + (new 'static 'rgba :r #x1f :g #x43 :b #x31 :a #x80) + (new 'static 'rgba :r #x23 :g #x48 :b #x36 :a #x80) + (new 'static 'rgba :r #x23 :g #x48 :b #x3c :a #x80) + (new 'static 'rgba :r #x23 :g #x49 :b #x3d :a #x80) + (new 'static 'rgba :r #x23 :g #x4a :b #x40 :a #x80) + (new 'static 'rgba :r #x28 :g #x4f :b #x48 :a #x80) + (new 'static 'rgba :r #x28 :g #x4f :b #x4c :a #x80) + (new 'static 'rgba :r #x25 :g #x4c :b #x4a :a #x80) + (new 'static 'rgba :r #x20 :g #x48 :b #x48 :a #x80) + (new 'static 'rgba :r #x19 :g #x42 :b #x44 :a #x80) + (new 'static 'rgba :r #x14 :g #x40 :b #x41 :a #x80) + (new 'static 'rgba :r #xf :g #x3f :b #x3e :a #x80) + (new 'static 'rgba :r #xb :g #x3e :b #x3c :a #x80) + (new 'static 'rgba :r #xa :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x8 :g #x3c :b #x3a :a #x80) + (new 'static 'rgba :r #x6 :g #x3a :b #x39 :a #x80) + (new 'static 'rgba :r #x6 :g #x38 :b #x38 :a #x80) + (new 'static 'rgba :r #x5 :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x5 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x6 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x7 :g #x3c :b #x3a :a #x80) + (new 'static 'rgba :r #xd :g #x3f :b #x3c :a #x80) + (new 'static 'rgba :r #x15 :g #x41 :b #x41 :a #x80) + (new 'static 'rgba :r #x1a :g #x45 :b #x44 :a #x80) + (new 'static 'rgba :r #x22 :g #x4c :b #x49 :a #x80) + (new 'static 'rgba :r #x2a :g #x51 :b #x4c :a #x80) + (new 'static 'rgba :r #x2e :g #x54 :b #x51 :a #x80) + (new 'static 'rgba :r #x2e :g #x55 :b #x54 :a #x80) + (new 'static 'rgba :r #x2c :g #x54 :b #x54 :a #x80) + (new 'static 'rgba :r #x2a :g #x55 :b #x55 :a #x80) + (new 'static 'rgba :r #x25 :g #x53 :b #x53 :a #x80) + (new 'static 'rgba :r #x21 :g #x53 :b #x50 :a #x80) + (new 'static 'rgba :r #x1f :g #x52 :b #x52 :a #x80) + (new 'static 'rgba :r #x21 :g #x47 :b #x4d :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x47 :a #x80) + (new 'static 'rgba :r #x21 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1c :g #x3a :b #x44 :a #x80) + (new 'static 'rgba :r #x27 :g #x49 :b #x4e :a #x80) + (new 'static 'rgba :r #x2e :g #x55 :b #x50 :a #x80) + (new 'static 'rgba :r #x26 :g #x4a :b #x3b :a #x80) + (new 'static 'rgba :r #x22 :g #x47 :b #x32 :a #x80) + (new 'static 'rgba :r #x20 :g #x43 :b #x2c :a #x80) + (new 'static 'rgba :r #x1f :g #x42 :b #x2c :a #x80) + (new 'static 'rgba :r #x20 :g #x44 :b #x2d :a #x80) + (new 'static 'rgba :r #x20 :g #x44 :b #x30 :a #x80) + (new 'static 'rgba :r #x22 :g #x46 :b #x34 :a #x80) + (new 'static 'rgba :r #x26 :g #x49 :b #x3d :a #x80) + (new 'static 'rgba :r #x29 :g #x4f :b #x45 :a #x80) + (new 'static 'rgba :r #x28 :g #x4f :b #x45 :a #x80) + (new 'static 'rgba :r #x26 :g #x4d :b #x46 :a #x80) + (new 'static 'rgba :r #x25 :g #x4e :b #x45 :a #x80) + (new 'static 'rgba :r #x27 :g #x4f :b #x49 :a #x80) + (new 'static 'rgba :r #x27 :g #x4f :b #x4c :a #x80) + (new 'static 'rgba :r #x17 :g #x40 :b #x41 :a #x80) + (new 'static 'rgba :r #x26 :g #x4e :b #x4c :a #x80) + (new 'static 'rgba :r #x20 :g #x48 :b #x49 :a #x80) + (new 'static 'rgba :r #x1a :g #x45 :b #x41 :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x41 :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x3c :a #x80) + (new 'static 'rgba :r #xf :g #x40 :b #x3f :a #x80) + (new 'static 'rgba :r #xb :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x8 :g #x3d :b #x38 :a #x80) + (new 'static 'rgba :r #x7 :g #x3b :b #x39 :a #x80) + (new 'static 'rgba :r #x13 :g #x41 :b #x3e :a #x80) + (new 'static 'rgba :r #x6 :g #x3a :b #x3a :a #x80) + (new 'static 'rgba :r #x8 :g #x3c :b #x39 :a #x80) + (new 'static 'rgba :r #xb :g #x3d :b #x3d :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x3c :a #x80) + (new 'static 'rgba :r #x18 :g #x44 :b #x43 :a #x80) + (new 'static 'rgba :r #x1c :g #x47 :b #x43 :a #x80) + (new 'static 'rgba :r #x23 :g #x4b :b #x49 :a #x80) + (new 'static 'rgba :r #x26 :g #x4e :b #x4c :a #x80) + (new 'static 'rgba :r #x28 :g #x50 :b #x4f :a #x80) + (new 'static 'rgba :r #x29 :g #x53 :b #x50 :a #x80) + (new 'static 'rgba :r #x29 :g #x53 :b #x51 :a #x80) + (new 'static 'rgba :r #x27 :g #x53 :b #x51 :a #x80) + (new 'static 'rgba :r #x24 :g #x53 :b #x53 :a #x80) + (new 'static 'rgba :r #x1f :g #x53 :b #x4e :a #x80) + (new 'static 'rgba :r #x1f :g #x4e :b #x51 :a #x80) + (new 'static 'rgba :r #x22 :g #x46 :b #x4d :a #x80) + (new 'static 'rgba :r #x22 :g #x39 :b #x48 :a #x80) + (new 'static 'rgba :r #x21 :g #x36 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1c :g #x37 :b #x43 :a #x80) + (new 'static 'rgba :r #x25 :g #x49 :b #x4d :a #x80) + (new 'static 'rgba :r #x2d :g #x53 :b #x4d :a #x80) + (new 'static 'rgba :r #x28 :g #x4d :b #x40 :a #x80) + (new 'static 'rgba :r #x26 :g #x4a :b #x39 :a #x80) + (new 'static 'rgba :r #x25 :g #x48 :b #x37 :a #x80) + (new 'static 'rgba :r #x24 :g #x47 :b #x35 :a #x80) + (new 'static 'rgba :r #x24 :g #x47 :b #x35 :a #x80) + (new 'static 'rgba :r #x26 :g #x49 :b #x3b :a #x80) + (new 'static 'rgba :r #x27 :g #x4c :b #x3d :a #x80) + (new 'static 'rgba :r #x29 :g #x4e :b #x46 :a #x80) + (new 'static 'rgba :r #x2c :g #x52 :b #x4b :a #x80) + (new 'static 'rgba :r #x2c :g #x54 :b #x4c :a #x80) + (new 'static 'rgba :r #x2b :g #x53 :b #x4b :a #x80) + (new 'static 'rgba :r #x28 :g #x50 :b #x4c :a #x80) + (new 'static 'rgba :r #x29 :g #x50 :b #x4b :a #x80) + (new 'static 'rgba :r #x24 :g #x4c :b #x49 :a #x80) + (new 'static 'rgba :r #x22 :g #x4a :b #x49 :a #x80) + (new 'static 'rgba :r #x2b :g #x51 :b #x4e :a #x80) + (new 'static 'rgba :r #x2a :g #x50 :b #x4e :a #x80) + (new 'static 'rgba :r #x24 :g #x4c :b #x48 :a #x80) + (new 'static 'rgba :r #x1b :g #x46 :b #x45 :a #x80) + (new 'static 'rgba :r #x15 :g #x41 :b #x3e :a #x80) + (new 'static 'rgba :r #x12 :g #x40 :b #x3e :a #x80) + (new 'static 'rgba :r #xf :g #x40 :b #x3f :a #x80) + (new 'static 'rgba :r #xd :g #x3f :b #x3a :a #x80) + (new 'static 'rgba :r #xc :g #x3f :b #x3a :a #x80) + (new 'static 'rgba :r #xb :g #x3e :b #x3c :a #x80) + (new 'static 'rgba :r #xc :g #x3e :b #x3c :a #x80) + (new 'static 'rgba :r #xd :g #x3f :b #x3c :a #x80) + (new 'static 'rgba :r #x12 :g #x41 :b #x3e :a #x80) + (new 'static 'rgba :r #x15 :g #x42 :b #x41 :a #x80) + (new 'static 'rgba :r #x19 :g #x45 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x49 :b #x47 :a #x80) + (new 'static 'rgba :r #x22 :g #x4a :b #x46 :a #x80) + (new 'static 'rgba :r #x23 :g #x4b :b #x49 :a #x80) + (new 'static 'rgba :r #x26 :g #x4e :b #x4c :a #x80) + (new 'static 'rgba :r #x26 :g #x51 :b #x4d :a #x80) + (new 'static 'rgba :r #x26 :g #x51 :b #x51 :a #x80) + (new 'static 'rgba :r #x23 :g #x51 :b #x51 :a #x80) + (new 'static 'rgba :r #x21 :g #x53 :b #x4f :a #x80) + (new 'static 'rgba :r #x1e :g #x52 :b #x51 :a #x80) + (new 'static 'rgba :r #x1f :g #x4f :b #x51 :a #x80) + (new 'static 'rgba :r #x23 :g #x44 :b #x4c :a #x80) + (new 'static 'rgba :r #x22 :g #x3b :b #x48 :a #x80) + (new 'static 'rgba :r #x22 :g #x39 :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1c :g #x37 :b #x42 :a #x80) + (new 'static 'rgba :r #x24 :g #x49 :b #x4d :a #x80) + (new 'static 'rgba :r #x2d :g #x56 :b #x50 :a #x80) + (new 'static 'rgba :r #x2d :g #x53 :b #x47 :a #x80) + (new 'static 'rgba :r #x2a :g #x50 :b #x42 :a #x80) + (new 'static 'rgba :r #x28 :g #x4d :b #x40 :a #x80) + (new 'static 'rgba :r #x27 :g #x4c :b #x3d :a #x80) + (new 'static 'rgba :r #x28 :g #x4e :b #x3e :a #x80) + (new 'static 'rgba :r #x29 :g #x4e :b #x42 :a #x80) + (new 'static 'rgba :r #x2b :g #x50 :b #x47 :a #x80) + (new 'static 'rgba :r #x2a :g #x4f :b #x49 :a #x80) + (new 'static 'rgba :r #x2c :g #x54 :b #x4c :a #x80) + (new 'static 'rgba :r #x29 :g #x4f :b #x47 :a #x80) + (new 'static 'rgba :r #x2a :g #x52 :b #x50 :a #x80) + (new 'static 'rgba :r #x29 :g #x50 :b #x4b :a #x80) + (new 'static 'rgba :r #x2c :g #x53 :b #x4f :a #x80) + (new 'static 'rgba :r #x2a :g #x51 :b #x4d :a #x80) + (new 'static 'rgba :r #x28 :g #x50 :b #x4e :a #x80) + (new 'static 'rgba :r #x28 :g #x4f :b #x4c :a #x80) + (new 'static 'rgba :r #x29 :g #x50 :b #x4b :a #x80) + (new 'static 'rgba :r #x27 :g #x4e :b #x4d :a #x80) + (new 'static 'rgba :r #x22 :g #x4a :b #x49 :a #x80) + (new 'static 'rgba :r #x19 :g #x43 :b #x43 :a #x80) + (new 'static 'rgba :r #x17 :g #x42 :b #x42 :a #x80) + (new 'static 'rgba :r #x15 :g #x42 :b #x41 :a #x80) + (new 'static 'rgba :r #x13 :g #x41 :b #x41 :a #x80) + (new 'static 'rgba :r #x13 :g #x40 :b #x41 :a #x80) + (new 'static 'rgba :r #x13 :g #x41 :b #x41 :a #x80) + (new 'static 'rgba :r #x13 :g #x42 :b #x41 :a #x80) + (new 'static 'rgba :r #x14 :g #x40 :b #x41 :a #x80) + (new 'static 'rgba :r #x17 :g #x42 :b #x42 :a #x80) + (new 'static 'rgba :r #x18 :g #x44 :b #x44 :a #x80) + (new 'static 'rgba :r #x1d :g #x49 :b #x47 :a #x80) + (new 'static 'rgba :r #x25 :g #x4c :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x4a :b #x49 :a #x80) + (new 'static 'rgba :r #x23 :g #x4c :b #x49 :a #x80) + (new 'static 'rgba :r #x23 :g #x4d :b #x4a :a #x80) + (new 'static 'rgba :r #x23 :g #x4d :b #x4d :a #x80) + (new 'static 'rgba :r #x22 :g #x4f :b #x4d :a #x80) + (new 'static 'rgba :r #x1f :g #x4f :b #x4d :a #x80) + (new 'static 'rgba :r #x1c :g #x51 :b #x4f :a #x80) + (new 'static 'rgba :r #x1c :g #x51 :b #x4f :a #x80) + (new 'static 'rgba :r #x20 :g #x4a :b #x4f :a #x80) + (new 'static 'rgba :r #x23 :g #x40 :b #x4a :a #x80) + (new 'static 'rgba :r #x22 :g #x3a :b #x47 :a #x80) + (new 'static 'rgba :r #x22 :g #x39 :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1c :g #x39 :b #x43 :a #x80) + (new 'static 'rgba :r #x23 :g #x49 :b #x4d :a #x80) + (new 'static 'rgba :r #x2f :g #x59 :b #x53 :a #x80) + (new 'static 'rgba :r #x32 :g #x5a :b #x52 :a #x80) + (new 'static 'rgba :r #x2f :g #x56 :b #x4e :a #x80) + (new 'static 'rgba :r #x2d :g #x52 :b #x4c :a #x80) + (new 'static 'rgba :r #x2b :g #x51 :b #x46 :a #x80) + (new 'static 'rgba :r #x2b :g #x51 :b #x48 :a #x80) + (new 'static 'rgba :r #x2b :g #x52 :b #x4c :a #x80) + (new 'static 'rgba :r #x27 :g #x50 :b #x4c :a #x80) + (new 'static 'rgba :r #x28 :g #x4d :b #x44 :a #x80) + (new 'static 'rgba :r #x26 :g #x4d :b #x49 :a #x80) + (new 'static 'rgba :r #x29 :g #x52 :b #x4e :a #x80) + (new 'static 'rgba :r #x28 :g #x50 :b #x4e :a #x80) + (new 'static 'rgba :r #x26 :g #x4d :b #x4a :a #x80) + (new 'static 'rgba :r #x28 :g #x50 :b #x4d :a #x80) + (new 'static 'rgba :r #x2c :g #x53 :b #x50 :a #x80) + (new 'static 'rgba :r #x2b :g #x53 :b #x4d :a #x80) + (new 'static 'rgba :r #x26 :g #x50 :b #x4e :a #x80) + (new 'static 'rgba :r #x29 :g #x50 :b #x4e :a #x80) + (new 'static 'rgba :r #x2b :g #x50 :b #x4c :a #x80) + (new 'static 'rgba :r #x25 :g #x4d :b #x4a :a #x80) + (new 'static 'rgba :r #x20 :g #x46 :b #x47 :a #x80) + (new 'static 'rgba :r #x1d :g #x47 :b #x46 :a #x80) + (new 'static 'rgba :r #x1b :g #x45 :b #x44 :a #x80) + (new 'static 'rgba :r #x1a :g #x45 :b #x42 :a #x80) + (new 'static 'rgba :r #x1b :g #x44 :b #x45 :a #x80) + (new 'static 'rgba :r #x1b :g #x46 :b #x43 :a #x80) + (new 'static 'rgba :r #x1b :g #x45 :b #x45 :a #x80) + (new 'static 'rgba :r #x1b :g #x46 :b #x45 :a #x80) + (new 'static 'rgba :r #x1c :g #x46 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x4a :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x49 :b #x47 :a #x80) + (new 'static 'rgba :r #x1f :g #x49 :b #x45 :a #x80) + (new 'static 'rgba :r #x21 :g #x4a :b #x48 :a #x80) + (new 'static 'rgba :r #x21 :g #x4a :b #x4a :a #x80) + (new 'static 'rgba :r #x1f :g #x4a :b #x48 :a #x80) + (new 'static 'rgba :r #x1f :g #x4b :b #x4b :a #x80) + (new 'static 'rgba :r #x24 :g #x4f :b #x4e :a #x80) + (new 'static 'rgba :r #x1c :g #x4e :b #x4a :a #x80) + (new 'static 'rgba :r #x1a :g #x4e :b #x49 :a #x80) + (new 'static 'rgba :r #x1b :g #x4c :b #x4c :a #x80) + (new 'static 'rgba :r #x20 :g #x48 :b #x4c :a #x80) + (new 'static 'rgba :r #x23 :g #x3d :b #x4a :a #x80) + (new 'static 'rgba :r #x21 :g #x38 :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1c :g #x3a :b #x45 :a #x80) + (new 'static 'rgba :r #x24 :g #x45 :b #x4c :a #x80) + (new 'static 'rgba :r #x2e :g #x59 :b #x58 :a #x80) + (new 'static 'rgba :r #x33 :g #x5c :b #x59 :a #x80) + (new 'static 'rgba :r #x31 :g #x5a :b #x56 :a #x80) + (new 'static 'rgba :r #x30 :g #x58 :b #x53 :a #x80) + (new 'static 'rgba :r #x2c :g #x54 :b #x4e :a #x80) + (new 'static 'rgba :r #x24 :g #x4d :b #x4a :a #x80) + (new 'static 'rgba :r #x28 :g #x51 :b #x4e :a #x80) + (new 'static 'rgba :r #x22 :g #x4b :b #x49 :a #x80) + (new 'static 'rgba :r #x20 :g #x49 :b #x49 :a #x80) + (new 'static 'rgba :r #x27 :g #x4f :b #x4c :a #x80) + (new 'static 'rgba :r #x25 :g #x4d :b #x4c :a #x80) + (new 'static 'rgba :r #x23 :g #x4b :b #x48 :a #x80) + (new 'static 'rgba :r #x22 :g #x49 :b #x4a :a #x80) + (new 'static 'rgba :r #x1e :g #x48 :b #x47 :a #x80) + (new 'static 'rgba :r #x28 :g #x4f :b #x4d :a #x80) + (new 'static 'rgba :r #x29 :g #x50 :b #x4d :a #x80) + (new 'static 'rgba :r #x23 :g #x4d :b #x48 :a #x80) + (new 'static 'rgba :r #x27 :g #x4e :b #x4c :a #x80) + (new 'static 'rgba :r #x26 :g #x4e :b #x4a :a #x80) + (new 'static 'rgba :r #x28 :g #x4e :b #x4d :a #x80) + (new 'static 'rgba :r #x27 :g #x4e :b #x4b :a #x80) + (new 'static 'rgba :r #x23 :g #x4b :b #x47 :a #x80) + (new 'static 'rgba :r #x21 :g #x49 :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x47 :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x48 :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x4a :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x4a :b #x48 :a #x80) + (new 'static 'rgba :r #x22 :g #x4c :b #x4a :a #x80) + (new 'static 'rgba :r #x25 :g #x4c :b #x46 :a #x80) + (new 'static 'rgba :r #x1c :g #x47 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x49 :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x4a :b #x48 :a #x80) + (new 'static 'rgba :r #x1f :g #x49 :b #x45 :a #x80) + (new 'static 'rgba :r #x1d :g #x48 :b #x45 :a #x80) + (new 'static 'rgba :r #x1e :g #x4a :b #x47 :a #x80) + (new 'static 'rgba :r #x1b :g #x48 :b #x49 :a #x80) + (new 'static 'rgba :r #x1a :g #x4b :b #x47 :a #x80) + (new 'static 'rgba :r #x18 :g #x4d :b #x49 :a #x80) + (new 'static 'rgba :r #x18 :g #x4b :b #x4b :a #x80) + (new 'static 'rgba :r #x1b :g #x46 :b #x4a :a #x80) + (new 'static 'rgba :r #x20 :g #x41 :b #x4b :a #x80) + (new 'static 'rgba :r #x22 :g #x3c :b #x49 :a #x80) + (new 'static 'rgba :r #x21 :g #x37 :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x37 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1b :g #x39 :b #x43 :a #x80) + (new 'static 'rgba :r #x23 :g #x44 :b #x4a :a #x80) + (new 'static 'rgba :r #x2d :g #x55 :b #x57 :a #x80) + (new 'static 'rgba :r #x32 :g #x5b :b #x5a :a #x80) + (new 'static 'rgba :r #x32 :g #x5b :b #x55 :a #x80) + (new 'static 'rgba :r #x30 :g #x57 :b #x55 :a #x80) + (new 'static 'rgba :r #x2d :g #x54 :b #x50 :a #x80) + (new 'static 'rgba :r #x2b :g #x53 :b #x50 :a #x80) + (new 'static 'rgba :r #x29 :g #x52 :b #x4f :a #x80) + (new 'static 'rgba :r #x28 :g #x51 :b #x4c :a #x80) + (new 'static 'rgba :r #x26 :g #x4e :b #x4d :a #x80) + (new 'static 'rgba :r #x21 :g #x4c :b #x47 :a #x80) + (new 'static 'rgba :r #x1e :g #x47 :b #x48 :a #x80) + (new 'static 'rgba :r #x18 :g #x46 :b #x44 :a #x80) + (new 'static 'rgba :r #x23 :g #x4b :b #x49 :a #x80) + (new 'static 'rgba :r #x21 :g #x4a :b #x48 :a #x80) + (new 'static 'rgba :r #x22 :g #x4a :b #x47 :a #x80) + (new 'static 'rgba :r #x25 :g #x4c :b #x4c :a #x80) + (new 'static 'rgba :r #x27 :g #x4e :b #x4d :a #x80) + (new 'static 'rgba :r #x25 :g #x4c :b #x4c :a #x80) + (new 'static 'rgba :r #x20 :g #x47 :b #x48 :a #x80) + (new 'static 'rgba :r #x1e :g #x49 :b #x46 :a #x80) + (new 'static 'rgba :r #x26 :g #x4d :b #x4b :a #x80) + (new 'static 'rgba :r #x24 :g #x4c :b #x4a :a #x80) + (new 'static 'rgba :r #x23 :g #x4b :b #x48 :a #x80) + (new 'static 'rgba :r #x1c :g #x45 :b #x43 :a #x80) + (new 'static 'rgba :r #x24 :g #x4d :b #x49 :a #x80) + (new 'static 'rgba :r #x26 :g #x4d :b #x49 :a #x80) + (new 'static 'rgba :r #x26 :g #x4f :b #x4b :a #x80) + (new 'static 'rgba :r #x25 :g #x4e :b #x4c :a #x80) + (new 'static 'rgba :r #x1d :g #x47 :b #x48 :a #x80) + (new 'static 'rgba :r #x23 :g #x4b :b #x4a :a #x80) + (new 'static 'rgba :r #x22 :g #x4a :b #x48 :a #x80) + (new 'static 'rgba :r #x1a :g #x46 :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x48 :b #x47 :a #x80) + (new 'static 'rgba :r #x1d :g #x47 :b #x47 :a #x80) + (new 'static 'rgba :r #x1c :g #x47 :b #x47 :a #x80) + (new 'static 'rgba :r #x19 :g #x47 :b #x47 :a #x80) + (new 'static 'rgba :r #x17 :g #x4a :b #x46 :a #x80) + (new 'static 'rgba :r #x16 :g #x4b :b #x48 :a #x80) + (new 'static 'rgba :r #x17 :g #x4a :b #x4a :a #x80) + (new 'static 'rgba :r #x1c :g #x45 :b #x49 :a #x80) + (new 'static 'rgba :r #x20 :g #x40 :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x46 :a #x80) + (new 'static 'rgba :r #x26 :g #x52 :b #x54 :a #x80) + (new 'static 'rgba :r #x21 :g #x38 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1c :g #x3a :b #x44 :a #x80) + (new 'static 'rgba :r #x22 :g #x45 :b #x4b :a #x80) + (new 'static 'rgba :r #x2e :g #x56 :b #x54 :a #x80) + (new 'static 'rgba :r #x34 :g #x5d :b #x5a :a #x80) + (new 'static 'rgba :r #x32 :g #x5a :b #x55 :a #x80) + (new 'static 'rgba :r #x2f :g #x56 :b #x52 :a #x80) + (new 'static 'rgba :r #x2b :g #x53 :b #x4f :a #x80) + (new 'static 'rgba :r #x29 :g #x50 :b #x4f :a #x80) + (new 'static 'rgba :r #x24 :g #x4d :b #x49 :a #x80) + (new 'static 'rgba :r #x1b :g #x48 :b #x44 :a #x80) + (new 'static 'rgba :r #x23 :g #x4c :b #x49 :a #x80) + (new 'static 'rgba :r #x21 :g #x49 :b #x49 :a #x80) + (new 'static 'rgba :r #x1e :g #x45 :b #x46 :a #x80) + (new 'static 'rgba :r #x1e :g #x47 :b #x44 :a #x80) + (new 'static 'rgba :r #x1a :g #x46 :b #x44 :a #x80) + (new 'static 'rgba :r #x15 :g #x42 :b #x42 :a #x80) + (new 'static 'rgba :r #x1b :g #x44 :b #x45 :a #x80) + (new 'static 'rgba :r #x1c :g #x46 :b #x46 :a #x80) + (new 'static 'rgba :r #x1e :g #x47 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x48 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x47 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x47 :b #x45 :a #x80) + (new 'static 'rgba :r #x21 :g #x4a :b #x49 :a #x80) + (new 'static 'rgba :r #x1e :g #x46 :b #x47 :a #x80) + (new 'static 'rgba :r #x1e :g #x47 :b #x44 :a #x80) + (new 'static 'rgba :r #x24 :g #x4b :b #x4b :a #x80) + (new 'static 'rgba :r #x27 :g #x4f :b #x4e :a #x80) + (new 'static 'rgba :r #x2b :g #x51 :b #x50 :a #x80) + (new 'static 'rgba :r #x2b :g #x51 :b #x50 :a #x80) + (new 'static 'rgba :r #x2b :g #x52 :b #x51 :a #x80) + (new 'static 'rgba :r #x29 :g #x50 :b #x4e :a #x80) + (new 'static 'rgba :r #x23 :g #x4b :b #x4a :a #x80) + (new 'static 'rgba :r #x1d :g #x47 :b #x47 :a #x80) + (new 'static 'rgba :r #x18 :g #x43 :b #x44 :a #x80) + (new 'static 'rgba :r #x19 :g #x45 :b #x43 :a #x80) + (new 'static 'rgba :r #x1b :g #x46 :b #x43 :a #x80) + (new 'static 'rgba :r #x1c :g #x47 :b #x44 :a #x80) + (new 'static 'rgba :r #x18 :g #x46 :b #x46 :a #x80) + (new 'static 'rgba :r #x15 :g #x48 :b #x44 :a #x80) + (new 'static 'rgba :r #x14 :g #x4a :b #x47 :a #x80) + (new 'static 'rgba :r #x17 :g #x49 :b #x4b :a #x80) + (new 'static 'rgba :r #x1a :g #x45 :b #x48 :a #x80) + (new 'static 'rgba :r #x1f :g #x3f :b #x48 :a #x80) + (new 'static 'rgba :r #x1f :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x22 :g #x35 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1e :g #x3c :b #x46 :a #x80) + (new 'static 'rgba :r #x26 :g #x4a :b #x4f :a #x80) + (new 'static 'rgba :r #x30 :g #x59 :b #x58 :a #x80) + (new 'static 'rgba :r #x35 :g #x5c :b #x58 :a #x80) + (new 'static 'rgba :r #x31 :g #x59 :b #x56 :a #x80) + (new 'static 'rgba :r #x2f :g #x55 :b #x51 :a #x80) + (new 'static 'rgba :r #x32 :g #x56 :b #x52 :a #x80) + (new 'static 'rgba :r #x2b :g #x51 :b #x4d :a #x80) + (new 'static 'rgba :r #x28 :g #x4f :b #x4b :a #x80) + (new 'static 'rgba :r #x23 :g #x4c :b #x4b :a #x80) + (new 'static 'rgba :r #x22 :g #x48 :b #x49 :a #x80) + (new 'static 'rgba :r #x20 :g #x49 :b #x47 :a #x80) + (new 'static 'rgba :r #x1a :g #x45 :b #x42 :a #x80) + (new 'static 'rgba :r #x15 :g #x42 :b #x40 :a #x80) + (new 'static 'rgba :r #x15 :g #x42 :b #x41 :a #x80) + (new 'static 'rgba :r #x15 :g #x41 :b #x41 :a #x80) + (new 'static 'rgba :r #x1d :g #x47 :b #x45 :a #x80) + (new 'static 'rgba :r #x16 :g #x42 :b #x42 :a #x80) + (new 'static 'rgba :r #x18 :g #x44 :b #x42 :a #x80) + (new 'static 'rgba :r #x19 :g #x44 :b #x44 :a #x80) + (new 'static 'rgba :r #x1a :g #x45 :b #x42 :a #x80) + (new 'static 'rgba :r #x1c :g #x45 :b #x43 :a #x80) + (new 'static 'rgba :r #x1d :g #x46 :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x47 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x49 :b #x48 :a #x80) + (new 'static 'rgba :r #x22 :g #x4b :b #x48 :a #x80) + (new 'static 'rgba :r #x24 :g #x4c :b #x49 :a #x80) + (new 'static 'rgba :r #x26 :g #x4e :b #x4e :a #x80) + (new 'static 'rgba :r #x29 :g #x51 :b #x4e :a #x80) + (new 'static 'rgba :r #x27 :g #x50 :b #x4d :a #x80) + (new 'static 'rgba :r #x26 :g #x4d :b #x4e :a #x80) + (new 'static 'rgba :r #x25 :g #x4c :b #x4a :a #x80) + (new 'static 'rgba :r #x1f :g #x47 :b #x48 :a #x80) + (new 'static 'rgba :r #x18 :g #x44 :b #x42 :a #x80) + (new 'static 'rgba :r #x19 :g #x45 :b #x42 :a #x80) + (new 'static 'rgba :r #x1b :g #x46 :b #x44 :a #x80) + (new 'static 'rgba :r #x1b :g #x46 :b #x46 :a #x80) + (new 'static 'rgba :r #x19 :g #x46 :b #x47 :a #x80) + (new 'static 'rgba :r #x15 :g #x48 :b #x44 :a #x80) + (new 'static 'rgba :r #x14 :g #x48 :b #x47 :a #x80) + (new 'static 'rgba :r #x15 :g #x48 :b #x48 :a #x80) + (new 'static 'rgba :r #x1a :g #x46 :b #x48 :a #x80) + (new 'static 'rgba :r #x1f :g #x43 :b #x4a :a #x80) + (new 'static 'rgba :r #x21 :g #x3b :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x37 :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x23 :g #x46 :b #x4a :a #x80) + (new 'static 'rgba :r #x2f :g #x56 :b #x58 :a #x80) + (new 'static 'rgba :r #x34 :g #x5d :b #x5b :a #x80) + (new 'static 'rgba :r #x33 :g #x5b :b #x56 :a #x80) + (new 'static 'rgba :r #x31 :g #x58 :b #x57 :a #x80) + (new 'static 'rgba :r #x31 :g #x57 :b #x53 :a #x80) + (new 'static 'rgba :r #x33 :g #x58 :b #x55 :a #x80) + (new 'static 'rgba :r #x28 :g #x4f :b #x4d :a #x80) + (new 'static 'rgba :r #x24 :g #x4c :b #x4a :a #x80) + (new 'static 'rgba :r #x21 :g #x49 :b #x49 :a #x80) + (new 'static 'rgba :r #x1e :g #x47 :b #x46 :a #x80) + (new 'static 'rgba :r #x1c :g #x46 :b #x46 :a #x80) + (new 'static 'rgba :r #x18 :g #x45 :b #x44 :a #x80) + (new 'static 'rgba :r #x13 :g #x42 :b #x42 :a #x80) + (new 'static 'rgba :r #x12 :g #x43 :b #x41 :a #x80) + (new 'static 'rgba :r #x12 :g #x43 :b #x41 :a #x80) + (new 'static 'rgba :r #x10 :g #x40 :b #x40 :a #x80) + (new 'static 'rgba :r #x12 :g #x42 :b #x3f :a #x80) + (new 'static 'rgba :r #x15 :g #x44 :b #x43 :a #x80) + (new 'static 'rgba :r #x19 :g #x45 :b #x42 :a #x80) + (new 'static 'rgba :r #x13 :g #x42 :b #x3e :a #x80) + (new 'static 'rgba :r #x15 :g #x43 :b #x42 :a #x80) + (new 'static 'rgba :r #x19 :g #x43 :b #x44 :a #x80) + (new 'static 'rgba :r #x1b :g #x45 :b #x43 :a #x80) + (new 'static 'rgba :r #x1c :g #x46 :b #x44 :a #x80) + (new 'static 'rgba :r #x21 :g #x4a :b #x48 :a #x80) + (new 'static 'rgba :r #x1d :g #x47 :b #x45 :a #x80) + (new 'static 'rgba :r #x26 :g #x4e :b #x4b :a #x80) + (new 'static 'rgba :r #x28 :g #x50 :b #x4d :a #x80) + (new 'static 'rgba :r #x24 :g #x4d :b #x4a :a #x80) + (new 'static 'rgba :r #x25 :g #x4c :b #x4b :a #x80) + (new 'static 'rgba :r #x28 :g #x4e :b #x4f :a #x80) + (new 'static 'rgba :r #x23 :g #x4b :b #x4a :a #x80) + (new 'static 'rgba :r #x1f :g #x48 :b #x48 :a #x80) + (new 'static 'rgba :r #x1e :g #x48 :b #x45 :a #x80) + (new 'static 'rgba :r #x1b :g #x46 :b #x43 :a #x80) + (new 'static 'rgba :r #x1b :g #x45 :b #x46 :a #x80) + (new 'static 'rgba :r #x18 :g #x47 :b #x46 :a #x80) + (new 'static 'rgba :r #x18 :g #x48 :b #x46 :a #x80) + (new 'static 'rgba :r #x15 :g #x48 :b #x43 :a #x80) + (new 'static 'rgba :r #x15 :g #x4a :b #x48 :a #x80) + (new 'static 'rgba :r #x18 :g #x49 :b #x4a :a #x80) + (new 'static 'rgba :r #x1d :g #x43 :b #x4b :a #x80) + (new 'static 'rgba :r #x20 :g #x3c :b #x47 :a #x80) + (new 'static 'rgba :r #x1f :g #x38 :b #x44 :a #x80) + (new 'static 'rgba :r #x21 :g #x38 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x27 :g #x48 :b #x4e :a #x80) + (new 'static 'rgba :r #x38 :g #x60 :b #x5e :a #x80) + (new 'static 'rgba :r #x38 :g #x60 :b #x5c :a #x80) + (new 'static 'rgba :r #x36 :g #x5d :b #x5a :a #x80) + (new 'static 'rgba :r #x30 :g #x57 :b #x55 :a #x80) + (new 'static 'rgba :r #x32 :g #x58 :b #x54 :a #x80) + (new 'static 'rgba :r #x24 :g #x4e :b #x4b :a #x80) + (new 'static 'rgba :r #x26 :g #x4e :b #x4e :a #x80) + (new 'static 'rgba :r #x22 :g #x4a :b #x4b :a #x80) + (new 'static 'rgba :r #x1d :g #x48 :b #x47 :a #x80) + (new 'static 'rgba :r #x18 :g #x44 :b #x44 :a #x80) + (new 'static 'rgba :r #x15 :g #x43 :b #x43 :a #x80) + (new 'static 'rgba :r #x17 :g #x46 :b #x45 :a #x80) + (new 'static 'rgba :r #xe :g #x41 :b #x40 :a #x80) + (new 'static 'rgba :r #xe :g #x41 :b #x3d :a #x80) + (new 'static 'rgba :r #xd :g #x40 :b #x3f :a #x80) + (new 'static 'rgba :r #xc :g #x41 :b #x3f :a #x80) + (new 'static 'rgba :r #xe :g #x40 :b #x40 :a #x80) + (new 'static 'rgba :r #xf :g #x41 :b #x40 :a #x80) + (new 'static 'rgba :r #xf :g #x41 :b #x3f :a #x80) + (new 'static 'rgba :r #xf :g #x41 :b #x3d :a #x80) + (new 'static 'rgba :r #x10 :g #x41 :b #x40 :a #x80) + (new 'static 'rgba :r #x13 :g #x43 :b #x3f :a #x80) + (new 'static 'rgba :r #x17 :g #x43 :b #x43 :a #x80) + (new 'static 'rgba :r #x1a :g #x43 :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x47 :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x49 :b #x49 :a #x80) + (new 'static 'rgba :r #x1f :g #x48 :b #x45 :a #x80) + (new 'static 'rgba :r #x22 :g #x4b :b #x4a :a #x80) + (new 'static 'rgba :r #x20 :g #x4a :b #x47 :a #x80) + (new 'static 'rgba :r #x25 :g #x4c :b #x4b :a #x80) + (new 'static 'rgba :r #x23 :g #x4a :b #x4a :a #x80) + (new 'static 'rgba :r #x21 :g #x4a :b #x48 :a #x80) + (new 'static 'rgba :r #x1b :g #x46 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x49 :b #x48 :a #x80) + (new 'static 'rgba :r #x1d :g #x48 :b #x44 :a #x80) + (new 'static 'rgba :r #x1d :g #x48 :b #x46 :a #x80) + (new 'static 'rgba :r #x1b :g #x47 :b #x45 :a #x80) + (new 'static 'rgba :r #x1b :g #x49 :b #x47 :a #x80) + (new 'static 'rgba :r #x1a :g #x4a :b #x46 :a #x80) + (new 'static 'rgba :r #x18 :g #x4c :b #x49 :a #x80) + (new 'static 'rgba :r #x19 :g #x4b :b #x4b :a #x80) + (new 'static 'rgba :r #x1c :g #x49 :b #x4b :a #x80) + (new 'static 'rgba :r #x21 :g #x42 :b #x49 :a #x80) + (new 'static 'rgba :r #x20 :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x29 :g #x4a :b #x4f :a #x80) + (new 'static 'rgba :r #x38 :g #x61 :b #x5c :a #x80) + (new 'static 'rgba :r #x38 :g #x5f :b #x5a :a #x80) + (new 'static 'rgba :r #x35 :g #x5d :b #x5a :a #x80) + (new 'static 'rgba :r #x26 :g #x52 :b #x4e :a #x80) + (new 'static 'rgba :r #x2d :g #x55 :b #x51 :a #x80) + (new 'static 'rgba :r #x28 :g #x51 :b #x50 :a #x80) + (new 'static 'rgba :r #x23 :g #x4c :b #x4a :a #x80) + (new 'static 'rgba :r #x1e :g #x49 :b #x48 :a #x80) + (new 'static 'rgba :r #x18 :g #x46 :b #x43 :a #x80) + (new 'static 'rgba :r #x12 :g #x44 :b #x42 :a #x80) + (new 'static 'rgba :r #xf :g #x42 :b #x42 :a #x80) + (new 'static 'rgba :r #xc :g #x41 :b #x3f :a #x80) + (new 'static 'rgba :r #xd :g #x40 :b #x3e :a #x80) + (new 'static 'rgba :r #xe :g #x3f :b #x3f :a #x80) + (new 'static 'rgba :r #xd :g #x3c :b #x3e :a #x80) + (new 'static 'rgba :r #xc :g #x3e :b #x3d :a #x80) + (new 'static 'rgba :r #x1e :g #x4a :b #x45 :a #x80) + (new 'static 'rgba :r #xc :g #x3f :b #x40 :a #x80) + (new 'static 'rgba :r #xd :g #x41 :b #x3e :a #x80) + (new 'static 'rgba :r #xf :g #x41 :b #x40 :a #x80) + (new 'static 'rgba :r #xe :g #x41 :b #x40 :a #x80) + (new 'static 'rgba :r #x11 :g #x41 :b #x42 :a #x80) + (new 'static 'rgba :r #x15 :g #x43 :b #x43 :a #x80) + (new 'static 'rgba :r #x17 :g #x43 :b #x42 :a #x80) + (new 'static 'rgba :r #x1c :g #x46 :b #x45 :a #x80) + (new 'static 'rgba :r #x1d :g #x47 :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x48 :b #x49 :a #x80) + (new 'static 'rgba :r #x22 :g #x4b :b #x4a :a #x80) + (new 'static 'rgba :r #x24 :g #x4c :b #x4b :a #x80) + (new 'static 'rgba :r #x24 :g #x4c :b #x4b :a #x80) + (new 'static 'rgba :r #x22 :g #x49 :b #x4a :a #x80) + (new 'static 'rgba :r #x25 :g #x4c :b #x4c :a #x80) + (new 'static 'rgba :r #x22 :g #x4a :b #x4a :a #x80) + (new 'static 'rgba :r #x20 :g #x49 :b #x49 :a #x80) + (new 'static 'rgba :r #x20 :g #x4b :b #x46 :a #x80) + (new 'static 'rgba :r #x1f :g #x4b :b #x48 :a #x80) + (new 'static 'rgba :r #x1f :g #x4a :b #x48 :a #x80) + (new 'static 'rgba :r #x1f :g #x4a :b #x49 :a #x80) + (new 'static 'rgba :r #x1f :g #x4d :b #x4c :a #x80) + (new 'static 'rgba :r #x1e :g #x4f :b #x4b :a #x80) + (new 'static 'rgba :r #x1d :g #x50 :b #x4c :a #x80) + (new 'static 'rgba :r #x1c :g #x4c :b #x4e :a #x80) + (new 'static 'rgba :r #x1e :g #x46 :b #x4b :a #x80) + (new 'static 'rgba :r #x20 :g #x3c :b #x47 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x36 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x25 :g #x49 :b #x4e :a #x80) + (new 'static 'rgba :r #x2f :g #x5c :b #x5a :a #x80) + (new 'static 'rgba :r #x32 :g #x5b :b #x5a :a #x80) + (new 'static 'rgba :r #x33 :g #x5b :b #x5a :a #x80) + (new 'static 'rgba :r #x30 :g #x58 :b #x56 :a #x80) + (new 'static 'rgba :r #x29 :g #x52 :b #x4f :a #x80) + (new 'static 'rgba :r #x22 :g #x4b :b #x4c :a #x80) + (new 'static 'rgba :r #x1d :g #x49 :b #x49 :a #x80) + (new 'static 'rgba :r #x19 :g #x49 :b #x46 :a #x80) + (new 'static 'rgba :r #x15 :g #x46 :b #x45 :a #x80) + (new 'static 'rgba :r #x11 :g #x46 :b #x41 :a #x80) + (new 'static 'rgba :r #xe :g #x42 :b #x41 :a #x80) + (new 'static 'rgba :r #xe :g #x40 :b #x40 :a #x80) + (new 'static 'rgba :r #x10 :g #x3d :b #x41 :a #x80) + (new 'static 'rgba :r #x11 :g #x38 :b #x3f :a #x80) + (new 'static 'rgba :r #x11 :g #x39 :b #x3e :a #x80) + (new 'static 'rgba :r #x10 :g #x3c :b #x3e :a #x80) + (new 'static 'rgba :r #x10 :g #x3c :b #x40 :a #x80) + (new 'static 'rgba :r #xf :g #x41 :b #x3f :a #x80) + (new 'static 'rgba :r #xe :g #x40 :b #x41 :a #x80) + (new 'static 'rgba :r #xe :g #x42 :b #x3f :a #x80) + (new 'static 'rgba :r #xf :g #x43 :b #x3f :a #x80) + (new 'static 'rgba :r #x11 :g #x44 :b #x3f :a #x80) + (new 'static 'rgba :r #x14 :g #x45 :b #x42 :a #x80) + (new 'static 'rgba :r #x16 :g #x45 :b #x43 :a #x80) + (new 'static 'rgba :r #x1b :g #x46 :b #x46 :a #x80) + (new 'static 'rgba :r #x1e :g #x46 :b #x47 :a #x80) + (new 'static 'rgba :r #x21 :g #x4b :b #x4a :a #x80) + (new 'static 'rgba :r #x22 :g #x4b :b #x4a :a #x80) + (new 'static 'rgba :r #x20 :g #x4a :b #x47 :a #x80) + (new 'static 'rgba :r #x1e :g #x49 :b #x48 :a #x80) + (new 'static 'rgba :r #x24 :g #x4c :b #x4a :a #x80) + (new 'static 'rgba :r #x24 :g #x4d :b #x4b :a #x80) + (new 'static 'rgba :r #x1f :g #x48 :b #x47 :a #x80) + (new 'static 'rgba :r #x23 :g #x4c :b #x49 :a #x80) + (new 'static 'rgba :r #x21 :g #x4b :b #x48 :a #x80) + (new 'static 'rgba :r #x22 :g #x4b :b #x49 :a #x80) + (new 'static 'rgba :r #x23 :g #x4d :b #x4b :a #x80) + (new 'static 'rgba :r #x23 :g #x4e :b #x4e :a #x80) + (new 'static 'rgba :r #x24 :g #x50 :b #x4c :a #x80) + (new 'static 'rgba :r #x25 :g #x50 :b #x51 :a #x80) + (new 'static 'rgba :r #x24 :g #x52 :b #x4f :a #x80) + (new 'static 'rgba :r #x1e :g #x51 :b #x4f :a #x80) + (new 'static 'rgba :r #x1e :g #x49 :b #x4d :a #x80) + (new 'static 'rgba :r #x1f :g #x39 :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x22 :g #x46 :b #x4c :a #x80) + (new 'static 'rgba :r #x28 :g #x59 :b #x57 :a #x80) + (new 'static 'rgba :r #x29 :g #x58 :b #x54 :a #x80) + (new 'static 'rgba :r #x29 :g #x56 :b #x53 :a #x80) + (new 'static 'rgba :r #x27 :g #x53 :b #x4f :a #x80) + (new 'static 'rgba :r #x21 :g #x4e :b #x4e :a #x80) + (new 'static 'rgba :r #x1a :g #x4a :b #x48 :a #x80) + (new 'static 'rgba :r #x18 :g #x49 :b #x46 :a #x80) + (new 'static 'rgba :r #x15 :g #x48 :b #x47 :a #x80) + (new 'static 'rgba :r #x12 :g #x46 :b #x42 :a #x80) + (new 'static 'rgba :r #x11 :g #x44 :b #x44 :a #x80) + (new 'static 'rgba :r #x12 :g #x41 :b #x41 :a #x80) + (new 'static 'rgba :r #x13 :g #x38 :b #x40 :a #x80) + (new 'static 'rgba :r #x16 :g #x37 :b #x40 :a #x80) + (new 'static 'rgba :r #x16 :g #x36 :b #x3f :a #x80) + (new 'static 'rgba :r #x16 :g #x34 :b #x3e :a #x80) + (new 'static 'rgba :r #x16 :g #x39 :b #x3f :a #x80) + (new 'static 'rgba :r #x14 :g #x3a :b #x40 :a #x80) + (new 'static 'rgba :r #x13 :g #x3d :b #x41 :a #x80) + (new 'static 'rgba :r #x11 :g #x3f :b #x42 :a #x80) + (new 'static 'rgba :r #xf :g #x41 :b #x41 :a #x80) + (new 'static 'rgba :r #x10 :g #x42 :b #x43 :a #x80) + (new 'static 'rgba :r #x10 :g #x45 :b #x40 :a #x80) + (new 'static 'rgba :r #x24 :g #x4f :b #x48 :a #x80) + (new 'static 'rgba :r #x15 :g #x47 :b #x43 :a #x80) + (new 'static 'rgba :r #x19 :g #x48 :b #x45 :a #x80) + (new 'static 'rgba :r #x1c :g #x47 :b #x47 :a #x80) + (new 'static 'rgba :r #x1f :g #x4a :b #x4a :a #x80) + (new 'static 'rgba :r #x21 :g #x4b :b #x49 :a #x80) + (new 'static 'rgba :r #x22 :g #x4b :b #x4b :a #x80) + (new 'static 'rgba :r #x25 :g #x4d :b #x4b :a #x80) + (new 'static 'rgba :r #x25 :g #x4d :b #x4c :a #x80) + (new 'static 'rgba :r #x24 :g #x4c :b #x4d :a #x80) + (new 'static 'rgba :r #x25 :g #x4e :b #x4c :a #x80) + (new 'static 'rgba :r #x22 :g #x4b :b #x4b :a #x80) + (new 'static 'rgba :r #x25 :g #x4e :b #x4e :a #x80) + (new 'static 'rgba :r #x27 :g #x4f :b #x4d :a #x80) + (new 'static 'rgba :r #x27 :g #x51 :b #x4d :a #x80) + (new 'static 'rgba :r #x28 :g #x52 :b #x4f :a #x80) + (new 'static 'rgba :r #x2a :g #x54 :b #x50 :a #x80) + (new 'static 'rgba :r #x2a :g #x54 :b #x54 :a #x80) + (new 'static 'rgba :r #x29 :g #x54 :b #x54 :a #x80) + (new 'static 'rgba :r #x22 :g #x54 :b #x53 :a #x80) + (new 'static 'rgba :r #x1f :g #x4c :b #x4f :a #x80) + (new 'static 'rgba :r #x21 :g #x3c :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x21 :g #x47 :b #x4b :a #x80) + (new 'static 'rgba :r #x25 :g #x55 :b #x54 :a #x80) + (new 'static 'rgba :r #x22 :g #x54 :b #x51 :a #x80) + (new 'static 'rgba :r #x21 :g #x51 :b #x51 :a #x80) + (new 'static 'rgba :r #x1e :g #x4d :b #x4b :a #x80) + (new 'static 'rgba :r #x19 :g #x4b :b #x49 :a #x80) + (new 'static 'rgba :r #x17 :g #x4a :b #x48 :a #x80) + (new 'static 'rgba :r #x14 :g #x46 :b #x46 :a #x80) + (new 'static 'rgba :r #x14 :g #x46 :b #x43 :a #x80) + (new 'static 'rgba :r #x13 :g #x45 :b #x46 :a #x80) + (new 'static 'rgba :r #x15 :g #x3f :b #x43 :a #x80) + (new 'static 'rgba :r #x17 :g #x3c :b #x41 :a #x80) + (new 'static 'rgba :r #x19 :g #x36 :b #x41 :a #x80) + (new 'static 'rgba :r #x19 :g #x33 :b #x40 :a #x80) + (new 'static 'rgba :r #x18 :g #x32 :b #x40 :a #x80) + (new 'static 'rgba :r #x19 :g #x33 :b #x40 :a #x80) + (new 'static 'rgba :r #x19 :g #x36 :b #x42 :a #x80) + (new 'static 'rgba :r #x1a :g #x3a :b #x43 :a #x80) + (new 'static 'rgba :r #x19 :g #x3a :b #x42 :a #x80) + (new 'static 'rgba :r #x16 :g #x3f :b #x43 :a #x80) + (new 'static 'rgba :r #x14 :g #x41 :b #x44 :a #x80) + (new 'static 'rgba :r #x12 :g #x41 :b #x45 :a #x80) + (new 'static 'rgba :r #x12 :g #x46 :b #x45 :a #x80) + (new 'static 'rgba :r #x14 :g #x48 :b #x46 :a #x80) + (new 'static 'rgba :r #x15 :g #x47 :b #x47 :a #x80) + (new 'static 'rgba :r #x19 :g #x4a :b #x47 :a #x80) + (new 'static 'rgba :r #x1d :g #x4a :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x4a :b #x4a :a #x80) + (new 'static 'rgba :r #x23 :g #x4c :b #x4d :a #x80) + (new 'static 'rgba :r #x24 :g #x4c :b #x4e :a #x80) + (new 'static 'rgba :r #x25 :g #x4f :b #x4d :a #x80) + (new 'static 'rgba :r #x23 :g #x4e :b #x4c :a #x80) + (new 'static 'rgba :r #x1e :g #x49 :b #x4a :a #x80) + (new 'static 'rgba :r #x26 :g #x50 :b #x4d :a #x80) + (new 'static 'rgba :r #x28 :g #x4f :b #x50 :a #x80) + (new 'static 'rgba :r #x28 :g #x50 :b #x4e :a #x80) + (new 'static 'rgba :r #x26 :g #x4e :b #x4f :a #x80) + (new 'static 'rgba :r #x2c :g #x54 :b #x52 :a #x80) + (new 'static 'rgba :r #x2b :g #x55 :b #x51 :a #x80) + (new 'static 'rgba :r #x2d :g #x57 :b #x55 :a #x80) + (new 'static 'rgba :r #x2d :g #x59 :b #x57 :a #x80) + (new 'static 'rgba :r #x2b :g #x57 :b #x54 :a #x80) + (new 'static 'rgba :r #x24 :g #x55 :b #x52 :a #x80) + (new 'static 'rgba :r #x20 :g #x4d :b #x50 :a #x80) + (new 'static 'rgba :r #x21 :g #x3e :b #x49 :a #x80) + (new 'static 'rgba :r #x21 :g #x37 :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1e :g #x3f :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x4b :b #x50 :a #x80) + (new 'static 'rgba :r #x20 :g #x53 :b #x51 :a #x80) + (new 'static 'rgba :r #x1e :g #x52 :b #x51 :a #x80) + (new 'static 'rgba :r #x1b :g #x4f :b #x4a :a #x80) + (new 'static 'rgba :r #x18 :g #x4b :b #x48 :a #x80) + (new 'static 'rgba :r #x16 :g #x47 :b #x48 :a #x80) + (new 'static 'rgba :r #x14 :g #x44 :b #x45 :a #x80) + (new 'static 'rgba :r #x15 :g #x44 :b #x47 :a #x80) + (new 'static 'rgba :r #x17 :g #x41 :b #x45 :a #x80) + (new 'static 'rgba :r #x1a :g #x3b :b #x44 :a #x80) + (new 'static 'rgba :r #x1c :g #x44 :b #x48 :a #x80) + (new 'static 'rgba :r #x1d :g #x46 :b #x4a :a #x80) + (new 'static 'rgba :r #x1b :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x1b :g #x31 :b #x40 :a #x80) + (new 'static 'rgba :r #x1b :g #x36 :b #x41 :a #x80) + (new 'static 'rgba :r #x1c :g #x37 :b #x43 :a #x80) + (new 'static 'rgba :r #x1c :g #x39 :b #x44 :a #x80) + (new 'static 'rgba :r #x1c :g #x3a :b #x45 :a #x80) + (new 'static 'rgba :r #x1b :g #x3e :b #x45 :a #x80) + (new 'static 'rgba :r #x19 :g #x3f :b #x45 :a #x80) + (new 'static 'rgba :r #x17 :g #x40 :b #x46 :a #x80) + (new 'static 'rgba :r #x15 :g #x46 :b #x48 :a #x80) + (new 'static 'rgba :r #x14 :g #x48 :b #x46 :a #x80) + (new 'static 'rgba :r #x17 :g #x4a :b #x48 :a #x80) + (new 'static 'rgba :r #x1a :g #x4c :b #x4a :a #x80) + (new 'static 'rgba :r #x1e :g #x4d :b #x4a :a #x80) + (new 'static 'rgba :r #x21 :g #x4d :b #x4a :a #x80) + (new 'static 'rgba :r #x23 :g #x4d :b #x4c :a #x80) + (new 'static 'rgba :r #x24 :g #x4f :b #x4d :a #x80) + (new 'static 'rgba :r #x26 :g #x50 :b #x4f :a #x80) + (new 'static 'rgba :r #x24 :g #x4e :b #x4f :a #x80) + (new 'static 'rgba :r #x27 :g #x51 :b #x50 :a #x80) + (new 'static 'rgba :r #x28 :g #x50 :b #x51 :a #x80) + (new 'static 'rgba :r #x29 :g #x52 :b #x51 :a #x80) + (new 'static 'rgba :r #x29 :g #x52 :b #x52 :a #x80) + (new 'static 'rgba :r #x2d :g #x56 :b #x53 :a #x80) + (new 'static 'rgba :r #x2b :g #x55 :b #x55 :a #x80) + (new 'static 'rgba :r #x2c :g #x55 :b #x52 :a #x80) + (new 'static 'rgba :r #x30 :g #x59 :b #x58 :a #x80) + (new 'static 'rgba :r #x2f :g #x58 :b #x59 :a #x80) + (new 'static 'rgba :r #x2a :g #x57 :b #x57 :a #x80) + (new 'static 'rgba :r #x23 :g #x56 :b #x51 :a #x80) + (new 'static 'rgba :r #x21 :g #x4e :b #x51 :a #x80) + (new 'static 'rgba :r #x23 :g #x3f :b #x4a :a #x80) + (new 'static 'rgba :r #x21 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1c :g #x39 :b #x41 :a #x80) + (new 'static 'rgba :r #x1e :g #x3e :b #x47 :a #x80) + (new 'static 'rgba :r #x1f :g #x46 :b #x4c :a #x80) + (new 'static 'rgba :r #x1c :g #x4e :b #x4d :a #x80) + (new 'static 'rgba :r #x1b :g #x4e :b #x4a :a #x80) + (new 'static 'rgba :r #x19 :g #x49 :b #x4b :a #x80) + (new 'static 'rgba :r #x17 :g #x46 :b #x47 :a #x80) + (new 'static 'rgba :r #x18 :g #x43 :b #x47 :a #x80) + (new 'static 'rgba :r #x1a :g #x42 :b #x48 :a #x80) + (new 'static 'rgba :r #x1c :g #x3f :b #x46 :a #x80) + (new 'static 'rgba :r #x1c :g #x3a :b #x44 :a #x80) + (new 'static 'rgba :r #x1d :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x1d :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1e :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1e :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1e :g #x37 :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x38 :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x1e :g #x3c :b #x46 :a #x80) + (new 'static 'rgba :r #x1e :g #x3e :b #x47 :a #x80) + (new 'static 'rgba :r #x1b :g #x42 :b #x49 :a #x80) + (new 'static 'rgba :r #x18 :g #x46 :b #x4a :a #x80) + (new 'static 'rgba :r #x18 :g #x4b :b #x4b :a #x80) + (new 'static 'rgba :r #x18 :g #x4d :b #x4a :a #x80) + (new 'static 'rgba :r #x1b :g #x4f :b #x4d :a #x80) + (new 'static 'rgba :r #x1e :g #x50 :b #x4d :a #x80) + (new 'static 'rgba :r #x20 :g #x50 :b #x4d :a #x80) + (new 'static 'rgba :r #x21 :g #x50 :b #x4e :a #x80) + (new 'static 'rgba :r #x22 :g #x50 :b #x4c :a #x80) + (new 'static 'rgba :r #x24 :g #x51 :b #x4f :a #x80) + (new 'static 'rgba :r #x27 :g #x52 :b #x52 :a #x80) + (new 'static 'rgba :r #x26 :g #x52 :b #x50 :a #x80) + (new 'static 'rgba :r #x26 :g #x52 :b #x52 :a #x80) + (new 'static 'rgba :r #x28 :g #x53 :b #x53 :a #x80) + (new 'static 'rgba :r #x29 :g #x55 :b #x50 :a #x80) + (new 'static 'rgba :r #x2b :g #x56 :b #x52 :a #x80) + (new 'static 'rgba :r #x2c :g #x58 :b #x56 :a #x80) + (new 'static 'rgba :r #x2c :g #x58 :b #x55 :a #x80) + (new 'static 'rgba :r #x2e :g #x58 :b #x58 :a #x80) + (new 'static 'rgba :r #x2c :g #x59 :b #x59 :a #x80) + (new 'static 'rgba :r #x26 :g #x58 :b #x52 :a #x80) + (new 'static 'rgba :r #x22 :g #x56 :b #x52 :a #x80) + (new 'static 'rgba :r #x22 :g #x4c :b #x4f :a #x80) + (new 'static 'rgba :r #x22 :g #x3c :b #x49 :a #x80) + (new 'static 'rgba :r #x21 :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1a :g #x36 :b #x40 :a #x80) + (new 'static 'rgba :r #x1a :g #x36 :b #x40 :a #x80) + (new 'static 'rgba :r #x1c :g #x3a :b #x44 :a #x80) + (new 'static 'rgba :r #x1d :g #x44 :b #x49 :a #x80) + (new 'static 'rgba :r #x1c :g #x47 :b #x4b :a #x80) + (new 'static 'rgba :r #x1c :g #x45 :b #x48 :a #x80) + (new 'static 'rgba :r #x1c :g #x42 :b #x47 :a #x80) + (new 'static 'rgba :r #x1d :g #x40 :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x3e :b #x48 :a #x80) + (new 'static 'rgba :r #x1f :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x1e :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x1e :g #x37 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x21 :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x39 :b #x46 :a #x80) + (new 'static 'rgba :r #x1f :g #x3a :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x3f :b #x49 :a #x80) + (new 'static 'rgba :r #x1e :g #x43 :b #x4a :a #x80) + (new 'static 'rgba :r #x1d :g #x48 :b #x4d :a #x80) + (new 'static 'rgba :r #x1c :g #x4c :b #x4c :a #x80) + (new 'static 'rgba :r #x1b :g #x4f :b #x4d :a #x80) + (new 'static 'rgba :r #x1c :g #x50 :b #x4f :a #x80) + (new 'static 'rgba :r #x1e :g #x51 :b #x4f :a #x80) + (new 'static 'rgba :r #x1f :g #x52 :b #x4f :a #x80) + (new 'static 'rgba :r #x20 :g #x52 :b #x51 :a #x80) + (new 'static 'rgba :r #x21 :g #x52 :b #x51 :a #x80) + (new 'static 'rgba :r #x23 :g #x53 :b #x4f :a #x80) + (new 'static 'rgba :r #x23 :g #x53 :b #x4f :a #x80) + (new 'static 'rgba :r #x23 :g #x53 :b #x4f :a #x80) + (new 'static 'rgba :r #x24 :g #x53 :b #x51 :a #x80) + (new 'static 'rgba :r #x24 :g #x53 :b #x51 :a #x80) + (new 'static 'rgba :r #x26 :g #x55 :b #x50 :a #x80) + (new 'static 'rgba :r #x26 :g #x55 :b #x51 :a #x80) + (new 'static 'rgba :r #x26 :g #x55 :b #x53 :a #x80) + (new 'static 'rgba :r #x26 :g #x55 :b #x55 :a #x80) + (new 'static 'rgba :r #x28 :g #x56 :b #x56 :a #x80) + (new 'static 'rgba :r #x26 :g #x57 :b #x54 :a #x80) + (new 'static 'rgba :r #x22 :g #x54 :b #x55 :a #x80) + (new 'static 'rgba :r #x23 :g #x4f :b #x53 :a #x80) + (new 'static 'rgba :r #x24 :g #x41 :b #x4c :a #x80) + (new 'static 'rgba :r #x21 :g #x39 :b #x47 :a #x80) + (new 'static 'rgba :r #x22 :g #x37 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1c :g #x37 :b #x41 :a #x80) + (new 'static 'rgba :r #x1b :g #x35 :b #x41 :a #x80) + (new 'static 'rgba :r #x1b :g #x36 :b #x41 :a #x80) + (new 'static 'rgba :r #x1d :g #x3b :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x3d :b #x46 :a #x80) + (new 'static 'rgba :r #x1e :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x1e :g #x3c :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3e :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x3e :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x21 :g #x38 :b #x46 :a #x80) + (new 'static 'rgba :r #x22 :g #x39 :b #x46 :a #x80) + (new 'static 'rgba :r #x22 :g #x38 :b #x46 :a #x80) + (new 'static 'rgba :r #x22 :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x21 :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x21 :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3b :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x3e :b #x49 :a #x80) + (new 'static 'rgba :r #x21 :g #x42 :b #x4a :a #x80) + (new 'static 'rgba :r #x21 :g #x45 :b #x4c :a #x80) + (new 'static 'rgba :r #x20 :g #x48 :b #x4c :a #x80) + (new 'static 'rgba :r #x1f :g #x4a :b #x4f :a #x80) + (new 'static 'rgba :r #x1e :g #x4e :b #x51 :a #x80) + (new 'static 'rgba :r #x1f :g #x50 :b #x4f :a #x80) + (new 'static 'rgba :r #x1f :g #x51 :b #x51 :a #x80) + (new 'static 'rgba :r #x1f :g #x53 :b #x52 :a #x80) + (new 'static 'rgba :r #x20 :g #x52 :b #x52 :a #x80) + (new 'static 'rgba :r #x21 :g #x54 :b #x52 :a #x80) + (new 'static 'rgba :r #x21 :g #x52 :b #x52 :a #x80) + (new 'static 'rgba :r #x20 :g #x54 :b #x52 :a #x80) + (new 'static 'rgba :r #x21 :g #x54 :b #x50 :a #x80) + (new 'static 'rgba :r #x21 :g #x54 :b #x4f :a #x80) + (new 'static 'rgba :r #x21 :g #x54 :b #x53 :a #x80) + (new 'static 'rgba :r #x21 :g #x54 :b #x50 :a #x80) + (new 'static 'rgba :r #x20 :g #x54 :b #x51 :a #x80) + (new 'static 'rgba :r #x21 :g #x52 :b #x53 :a #x80) + (new 'static 'rgba :r #x22 :g #x51 :b #x54 :a #x80) + (new 'static 'rgba :r #x22 :g #x4f :b #x53 :a #x80) + (new 'static 'rgba :r #x23 :g #x4d :b #x51 :a #x80) + (new 'static 'rgba :r #x26 :g #x43 :b #x4d :a #x80) + (new 'static 'rgba :r #x23 :g #x3d :b #x49 :a #x80) + (new 'static 'rgba :r #x21 :g #x36 :b #x45 :a #x80) + (new 'static 'rgba :r #x21 :g #x38 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1d :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x1c :g #x36 :b #x42 :a #x80) + (new 'static 'rgba :r #x1c :g #x37 :b #x42 :a #x80) + (new 'static 'rgba :r #x1c :g #x37 :b #x42 :a #x80) + (new 'static 'rgba :r #x1d :g #x39 :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x39 :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x21 :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x21 :g #x39 :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x3c :b #x47 :a #x80) + (new 'static 'rgba :r #x21 :g #x3e :b #x48 :a #x80) + (new 'static 'rgba :r #x21 :g #x40 :b #x49 :a #x80) + (new 'static 'rgba :r #x21 :g #x42 :b #x4a :a #x80) + (new 'static 'rgba :r #x22 :g #x43 :b #x4b :a #x80) + (new 'static 'rgba :r #x22 :g #x45 :b #x4c :a #x80) + (new 'static 'rgba :r #x21 :g #x46 :b #x4d :a #x80) + (new 'static 'rgba :r #x21 :g #x4a :b #x4f :a #x80) + (new 'static 'rgba :r #x21 :g #x4b :b #x4f :a #x80) + (new 'static 'rgba :r #x21 :g #x4a :b #x4e :a #x80) + (new 'static 'rgba :r #x21 :g #x4b :b #x4e :a #x80) + (new 'static 'rgba :r #x21 :g #x47 :b #x4e :a #x80) + (new 'static 'rgba :r #x21 :g #x48 :b #x4e :a #x80) + (new 'static 'rgba :r #x21 :g #x48 :b #x4e :a #x80) + (new 'static 'rgba :r #x21 :g #x49 :b #x4f :a #x80) + (new 'static 'rgba :r #x21 :g #x4b :b #x4e :a #x80) + (new 'static 'rgba :r #x20 :g #x47 :b #x4e :a #x80) + (new 'static 'rgba :r #x20 :g #x46 :b #x4d :a #x80) + (new 'static 'rgba :r #x20 :g #x46 :b #x4c :a #x80) + (new 'static 'rgba :r #x21 :g #x45 :b #x4c :a #x80) + (new 'static 'rgba :r #x23 :g #x41 :b #x4b :a #x80) + (new 'static 'rgba :r #x22 :g #x40 :b #x4a :a #x80) + (new 'static 'rgba :r #x21 :g #x39 :b #x47 :a #x80) + (new 'static 'rgba :r #x21 :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x21 :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1d :g #x36 :b #x42 :a #x80) + (new 'static 'rgba :r #x1d :g #x38 :b #x43 :a #x80) + (new 'static 'rgba :r #x1d :g #x37 :b #x42 :a #x80) + (new 'static 'rgba :r #x1d :g #x38 :b #x42 :a #x80) + (new 'static 'rgba :r #x1d :g #x39 :b #x43 :a #x80) + (new 'static 'rgba :r #x1e :g #x3b :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x39 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x39 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x21 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x21 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3c :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x3c :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x3c :b #x47 :a #x80) + (new 'static 'rgba :r #x21 :g #x3e :b #x47 :a #x80) + (new 'static 'rgba :r #x21 :g #x3e :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x3d :b #x48 :a #x80) + (new 'static 'rgba :r #x21 :g #x3d :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x3c :b #x49 :a #x80) + (new 'static 'rgba :r #x20 :g #x3b :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x3b :b #x47 :a #x80) + (new 'static 'rgba :r #x21 :g #x3c :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x3d :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x48 :a #x80) + (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x44 :a #x80) + (new 'static 'rgba :r #x21 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1e :g #x38 :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x39 :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x39 :b #x44 :a #x80) + (new 'static 'rgba :r #x1d :g #x39 :b #x43 :a #x80) + (new 'static 'rgba :r #x1e :g #x38 :b #x43 :a #x80) + (new 'static 'rgba :r #x1e :g #x38 :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x38 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x37 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x37 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x47 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3b :b #x46 :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x45 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x38 :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x37 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x37 :b #x44 :a #x80) + (new 'static 'rgba :r #x1e :g #x37 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x43 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x36 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x46 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x46 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x45 :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x44 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x43 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x31 :b #x41 :a #x80) + (new 'static 'rgba :r #x1e :g #x32 :b #x40 :a #x80) + (new 'static 'rgba :r #x1e :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x41 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x42 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + ) + ) + ) + +(define *ocean-near-indices-village2* + (new 'static 'ocean-near-indices + :data + (new 'static 'inline-array ocean-near-index 23 + (new 'static 'ocean-near-index) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x1 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x1 + #x0 + #x0 + #x0 + #xffff + #x0 + #x0 + #x0 + #xffff + #x0 + #x0 + #x0 + #xffff + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x2 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #x0 + #x0 + #x0 + #xffff + #xffff + #x0 + #x0 + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + #x3 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #x4 + #x5 + #x6 + #xffff + #x7 + #x0 + #x0 + #xffff + #x8 + #x0 + #x0 + #xffff + #x9 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xa + #xb + #x0 + #x0 + #xc + #x0 + #x0 + #x0 + #xd + #x0 + #x0 + #x0 + #xe + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xf + #xf + #xf + #xffff + #xf + #xf + #xf + #xffff + #xffff + #x2 + #x13 + #xffff + #xffff + #x15 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xf + #xf + #x10 + #x11 + #xf + #xf + #xf + #x12 + #x0 + #x0 + #xf + #x14 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x16 + #xffff + #xffff + #x0 + #x0 + #x1d + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x17 + #x18 + #x19 + #x1a + #x0 + #x0 + #x1e + #x1f + #x0 + #x0 + #x0 + #x22 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #x1b + #x1c + #x0 + #x20 + #x21 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x23 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x24 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x25 + #x2a + #x2b + #x2c + #x2d + #xffff + #x33 + #x0 + #x34 + #xffff + #x38 + #x39 + #x3a + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x26 + #x27 + #x0 + #x2e + #x2f + #x30 + #x0 + #xffff + #x35 + #x36 + #x0 + #x3b + #x3c + #x6 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x28 + #x0 + #x0 + #x31 + #x32 + #x0 + #x0 + #x37 + #x0 + #x0 + #x0 + #x3d + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x29 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #x3e + #x3f + #x40 + #xffff + #x42 + #x0 + #x0 + #xffff + #x47 + #x48 + #x49 + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x41 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x43 + #x4a + #x4b + #x0 + #x4c + #x4e + #x4f + #x50 + #x51 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #x44 + #x45 + #x46 + #x0 + #xffff + #xffff + #x4d + #x46 + #xffff + #xffff + #xffff + #x52 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #x53 + #x54 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x0 + ) + ) + (new 'static 'ocean-near-index + :data + (new 'static 'array uint16 16 + #xffff + #xffff + #x0 + #x0 + #xffff + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + ) + ) + ) + +(define *ocean-trans-indices-village2* + (new 'static 'ocean-trans-indices + :data + (new 'static 'inline-array ocean-trans-index 2304 + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 1 :child 1) + (new 'static 'ocean-trans-index :parent 1 :child 1) + (new 'static 'ocean-trans-index :parent 1 :child 1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 1 :child 1) + (new 'static 'ocean-trans-index :parent 1 :child 1) + (new 'static 'ocean-trans-index :parent 1 :child 1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 1 :child 1) + (new 'static 'ocean-trans-index :parent 1 :child 1) + (new 'static 'ocean-trans-index :parent 1 :child 1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 1 :child 1) + (new 'static 'ocean-trans-index :parent 1 :child 1) + (new 'static 'ocean-trans-index :parent 85 :child 2) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 1 :child 1) + (new 'static 'ocean-trans-index :parent 86 :child 3) + (new 'static 'ocean-trans-index :parent 87 :child 4) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 1 :child 1) + (new 'static 'ocean-trans-index :parent 86 :child 3) + (new 'static 'ocean-trans-index :parent 7 :child 5) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 1 :child 1) + (new 'static 'ocean-trans-index :parent 86 :child 3) + (new 'static 'ocean-trans-index :child 6) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 88 :child 7) + (new 'static 'ocean-trans-index :child 8) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 89 :child 9) + (new 'static 'ocean-trans-index :parent 29 :child 10) + (new 'static 'ocean-trans-index :child 11) + (new 'static 'ocean-trans-index :parent 6 :child 12) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 81 :child 13) + (new 'static 'ocean-trans-index :parent 90 :child 14) + (new 'static 'ocean-trans-index :parent 91 :child 15) + (new 'static 'ocean-trans-index :child 16) + (new 'static 'ocean-trans-index :child 17) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 92 :child 18) + (new 'static 'ocean-trans-index :child 19) + (new 'static 'ocean-trans-index :parent 93 :child 20) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 94 :child 21) + (new 'static 'ocean-trans-index :parent 95 :child 22) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + ) + ) + ) + +(define *ocean-mid-indices-village2* + (new 'static 'ocean-mid-indices + :data + (new 'static 'array uint16 36 + #xffff + #xffff + #xffff + #x60 + #x0 + #x0 + #xffff + #xffff + #xffff + #x60 + #x0 + #x0 + #xffff + #xffff + #x61 + #x62 + #x0 + #x0 + #x63 + #x64 + #x65 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + ) + +(define *ocean-mid-masks-village2* + (new 'static 'ocean-mid-masks + :data + (new 'static 'inline-array ocean-mid-mask 102 + (new 'static 'ocean-mid-mask) + (new 'static 'ocean-mid-mask :dword #xfffffffffffffffe) + (new 'static 'ocean-mid-mask :dword #x7fffffffffffffff) + (new 'static 'ocean-mid-mask :dword #x30307070f1f1f1f) + (new 'static 'ocean-mid-mask :dword #x1010303030387ff) + (new 'static 'ocean-mid-mask :dword #x62ffff) + (new 'static 'ocean-mid-mask :dword #x1) + (new 'static 'ocean-mid-mask :dword #x1010101) + (new 'static 'ocean-mid-mask :dword #x3f1f1f1f1f0f0701) + (new 'static 'ocean-mid-mask :dword #x1f1f1f1f3f3f3f3f) + (new 'static 'ocean-mid-mask :dword #xf0f0f0f3f7fffff) + (new 'static 'ocean-mid-mask :dword #x3) + (new 'static 'ocean-mid-mask :dword #xf0f0f0f0f0f0f0f) + (new 'static 'ocean-mid-mask :dword #x303070707070f0f) + (new 'static 'ocean-mid-mask :dword #x101010303) + (new 'static 'ocean-mid-mask :dword #xfeffffffffffffff) + (new 'static 'ocean-mid-mask :dword #x7f7fffffffffffff) + (new 'static 'ocean-mid-mask :dword #x30f3f7f) + (new 'static 'ocean-mid-mask :dword #x3f1f1f0f0f090100) + (new 'static 'ocean-mid-mask :dword #x1070f1f3f7f) + (new 'static 'ocean-mid-mask :dword #xf1f1f3f3f0f0f3f) + (new 'static 'ocean-mid-mask :dword #x70f1f3f3f7f7f7f) + (new 'static 'ocean-mid-mask :dword #x8080808080f0) + (new 'static 'ocean-mid-mask :dword #x1fffffffffffff) + (new 'static 'ocean-mid-mask :dword #x10f0f9ffffffff) + (new 'static 'ocean-mid-mask :dword #x3c3fffffffffffff) + (new 'static 'ocean-mid-mask :dword #xfefeffffffffffff) + (new 'static 'ocean-mid-mask :dword #x3f7fffffffffffff) + (new 'static 'ocean-mid-mask :dword #x10303) + (new 'static 'ocean-mid-mask :dword #xfc) + (new 'static 'ocean-mid-mask :dword #x1c) + (new 'static 'ocean-mid-mask :dword #xc0e0f0f8f8fefcfc) + (new 'static 'ocean-mid-mask :dword #x3078fdfdffffff) + (new 'static 'ocean-mid-mask :dword #x10307) + (new 'static 'ocean-mid-mask :dword #xc0c0) + (new 'static 'ocean-mid-mask :dword #x3800000000000000) + (new 'static 'ocean-mid-mask :dword #xff7f7f7fffffffff) + (new 'static 'ocean-mid-mask :dword #xf0c0c0000000000) + (new 'static 'ocean-mid-mask :dword #xc000000000000000) + (new 'static 'ocean-mid-mask :dword #x300000000000000) + (new 'static 'ocean-mid-mask :dword #x30f0e0c0) + (new 'static 'ocean-mid-mask :dword #x7071f) + (new 'static 'ocean-mid-mask :dword #xff3f1f0f03010100) + (new 'static 'ocean-mid-mask :dword #x3f3f1c1800000000) + (new 'static 'ocean-mid-mask :dword #xc0e0e0c080) + (new 'static 'ocean-mid-mask :dword #xfeffffff3f3f3f1f) + (new 'static 'ocean-mid-mask :dword #xffffffff00000000) + (new 'static 'ocean-mid-mask :dword #x7f7fffffe0e0e0c0) + (new 'static 'ocean-mid-mask :dword #x3030307) + (new 'static 'ocean-mid-mask :dword #xe0e0e0e0e0e000) + (new 'static 'ocean-mid-mask :dword #x1030707070300) + (new 'static 'ocean-mid-mask :dword #xf0f0f0f0f0f1f1f) + (new 'static 'ocean-mid-mask :dword #xfffefefefefefefe) + (new 'static 'ocean-mid-mask :dword #xffff7f7f7f7f7f7f) + (new 'static 'ocean-mid-mask :dword #x301000000000000) + (new 'static 'ocean-mid-mask :dword #x7000000000000000) + (new 'static 'ocean-mid-mask :dword #x303077fffff3f7f) + (new 'static 'ocean-mid-mask :dword #xf000000000000000) + (new 'static 'ocean-mid-mask :dword #xfffefefefefeffff) + (new 'static 'ocean-mid-mask :dword #xf3fffffffffffff) + (new 'static 'ocean-mid-mask :dword #x60787f7f7f7f7fff) + (new 'static 'ocean-mid-mask :dword #x7070) + (new 'static 'ocean-mid-mask :dword #x70f0f0f07070303) + (new 'static 'ocean-mid-mask :dword #x70f8f8f8) + (new 'static 'ocean-mid-mask :dword #xe0fffff) + (new 'static 'ocean-mid-mask :dword #x30f) + (new 'static 'ocean-mid-mask :dword #xf07070707070707) + (new 'static 'ocean-mid-mask :dword #xf0f0f0e0c0800000) + (new 'static 'ocean-mid-mask :dword #xffffffffff7f7f1f) + (new 'static 'ocean-mid-mask :dword #xffe3010100000000) + (new 'static 'ocean-mid-mask :dword #x100000000000000) + (new 'static 'ocean-mid-mask :dword #xffffffffffffff7f) + (new 'static 'ocean-mid-mask :dword #xff1f1f0f07000000) + (new 'static 'ocean-mid-mask :dword #xffe0e0e000000000) + (new 'static 'ocean-mid-mask :dword #x7ffffffc18080000) + (new 'static 'ocean-mid-mask :dword #x33f3f00000000) + (new 'static 'ocean-mid-mask :dword #x83808080c0e0f0f0) + (new 'static 'ocean-mid-mask :dword #xffff1f1f0f0f0f0f) + (new 'static 'ocean-mid-mask :dword #x103070707) + (new 'static 'ocean-mid-mask :dword #xe0c000000080c080) + (new 'static 'ocean-mid-mask :dword #xe3c0808080838781) + (new 'static 'ocean-mid-mask :dword #xffffffff9f0f0f07) + (new 'static 'ocean-mid-mask :dword #x1030f0f0f070301) + (new 'static 'ocean-mid-mask :dword #xffffffffffffff00) + (new 'static 'ocean-mid-mask :dword #xfffffffffffff0f0) + (new 'static 'ocean-mid-mask :dword #xfffffffff1f1f1f0) + (new 'static 'ocean-mid-mask :dword #xfffffffff7ffffff) + (new 'static 'ocean-mid-mask :dword #xfffffffff7f7f3f1) + (new 'static 'ocean-mid-mask :dword #xfffffffff3f3f1f1) + (new 'static 'ocean-mid-mask :dword #xfffffffff0f0f1ff) + (new 'static 'ocean-mid-mask :dword #xfffffffff1f1f0f0) + (new 'static 'ocean-mid-mask :dword #xfffffffff0f1f0f0) + (new 'static 'ocean-mid-mask :dword #xfffffffffff1f1f1) + (new 'static 'ocean-mid-mask :dword #xfffffffff7f3f0f0) + (new 'static 'ocean-mid-mask :dword #xfffffffff7fffffc) + (new 'static 'ocean-mid-mask :dword #xfffffffff0f0f1f3) + (new 'static 'ocean-mid-mask :dword #x101010101010101) + (new 'static 'ocean-mid-mask :dword #x1f3fffffffffffff) + (new 'static 'ocean-mid-mask :dword #x10101010101) + (new 'static 'ocean-mid-mask :dword #xfcfcfcfcfcff) + (new 'static 'ocean-mid-mask :dword #x11ffffffffff) + (new 'static 'ocean-mid-mask :dword #x70f1f3f7f7f3f) + ) + ) + ) + +(define *ocean-near-indices-sunken* + (new 'static 'ocean-near-indices + :data + (new 'static 'inline-array ocean-near-index 1 + (new 'static 'ocean-near-index) + ) + ) + ) -(define *ocean-near-indices-sunken* (new 'static 'ocean-near-indices :data #x2580)) (define *ocean-trans-indices-sunken* (new 'static 'ocean-trans-indices)) -(define *ocean-mid-indices-sunken* (new 'static 'ocean-mid-indices)) -(define *ocean-mid-masks-sunken* (new 'static 'ocean-mid-masks :data #x100)) -(define *ocean-map-village1* (new 'static 'ocean-map - :start-corner (new 'static 'vector :x -9437184.0 :z -9437184.0 :w 1.0) - :far-color (new 'static 'vector :x 1.505882 :y 45.678432 :z 56.72157) - )) +(define *ocean-mid-indices-sunken* (new 'static 'ocean-mid-indices)) + +(define *ocean-mid-masks-sunken* + (new 'static 'ocean-mid-masks + :data + (new 'static 'inline-array ocean-mid-mask 2 + (new 'static 'ocean-mid-mask) + (new 'static 'ocean-mid-mask) + ) + ) + ) + +(define *ocean-map-village1* + (new 'static 'ocean-map + :start-corner + (new 'static 'vector :x -9437184.0 :z -9437184.0 :w 1.0) + :far-color + (new 'static 'vector :x 1.505882 :y 45.678432 :z 56.72157) + ) + ) + (set! (-> *ocean-map-village1* ocean-spheres) *ocean-spheres-village1*) (set! (-> *ocean-map-village1* ocean-colors) *ocean-colors-village1*) (set! (-> *ocean-map-village1* ocean-mid-masks) *ocean-mid-masks-village1*) @@ -9925,10 +12291,15 @@ (set! (-> *ocean-map-village1* ocean-trans-indices) *ocean-trans-indices-village1*) (set! (-> *ocean-map-village1* ocean-near-indices) *ocean-near-indices-village1*) -(define *ocean-map-village2* (new 'static 'ocean-map - :start-corner (new 'static 'vector :x -7892992.0 :z -15958016.0 :w 1.0) - :far-color (new 'static 'vector :x 31.62353 :y 50.19608 :z 66.76079) - )) +(define *ocean-map-village2* + (new 'static 'ocean-map + :start-corner + (new 'static 'vector :x -7892992.0 :z -15958016.0 :w 1.0) + :far-color + (new 'static 'vector :x 31.62353 :y 50.19608 :z 66.76079) + ) + ) + (set! (-> *ocean-map-village2* ocean-spheres) *ocean-spheres-village2*) (set! (-> *ocean-map-village2* ocean-colors) *ocean-colors-village2*) (set! (-> *ocean-map-village2* ocean-mid-masks) *ocean-mid-masks-village2*) @@ -9936,10 +12307,15 @@ (set! (-> *ocean-map-village2* ocean-trans-indices) *ocean-trans-indices-village2*) (set! (-> *ocean-map-village2* ocean-near-indices) *ocean-near-indices-village2*) -(define *ocean-map-sunken* (new 'static 'ocean-map - :start-corner (new 'static 'vector :x -7892992.0 :z -15958016.0 :w 1.0) - :far-color (new 'static 'vector :x 31.62353 :y 50.19608 :z 66.76079) - )) +(define *ocean-map-sunken* + (new 'static 'ocean-map + :start-corner + (new 'static 'vector :x -7892992.0 :z -15958016.0 :w 1.0) + :far-color + (new 'static 'vector :x 31.62353 :y 50.19608 :z 66.76079) + ) + ) + (set! (-> *ocean-map-sunken* ocean-spheres) *ocean-spheres-village2*) (set! (-> *ocean-map-sunken* ocean-colors) *ocean-colors-village2*) (set! (-> *ocean-map-sunken* ocean-mid-masks) *ocean-mid-masks-sunken*) @@ -9947,3 +12323,6 @@ (set! (-> *ocean-map-sunken* ocean-trans-indices) *ocean-trans-indices-sunken*) (set! (-> *ocean-map-sunken* ocean-near-indices) *ocean-near-indices-sunken*) + + + diff --git a/goal_src/engine/gfx/shadow/shadow-cpu.gc b/goal_src/engine/gfx/shadow/shadow-cpu.gc index 6e155eb001..fe0b98c448 100644 --- a/goal_src/engine/gfx/shadow/shadow-cpu.gc +++ b/goal_src/engine/gfx/shadow/shadow-cpu.gc @@ -7,3 +7,6 @@ ;; TODO - for video (define-extern *shadow-data* shadow-data) + +;; todo +(define *shadow-data* (new 'static 'shadow-data)) \ No newline at end of file diff --git a/goal_src/engine/gfx/texture-h.gc b/goal_src/engine/gfx/texture-h.gc index d62762957c..fd19ac5c64 100644 --- a/goal_src/engine/gfx/texture-h.gc +++ b/goal_src/engine/gfx/texture-h.gc @@ -104,7 +104,7 @@ (dummy-18 () none 18) (dummy-19 () none 19) (unload! (_type_ texture-page) int 20) - (upload-one-common! (_type_) symbol 21) + (upload-one-common! (_type_ level) symbol 21) (lookup-boot-common-id (_type_ int) int 22) ) ) diff --git a/goal_src/engine/gfx/texture.gc b/goal_src/engine/gfx/texture.gc index ad92c0556b..a016db7147 100644 --- a/goal_src/engine/gfx/texture.gc +++ b/goal_src/engine/gfx/texture.gc @@ -810,7 +810,7 @@ (none) ) -(defun upload-vram-pages ((pool texture-pool) (segment texture-pool-segment) (page texture-page) (mode int) (bucket-idx int)) +(defun upload-vram-pages ((pool texture-pool) (segment texture-pool-segment) (page texture-page) (mode int) (bucket-idx bucket-id)) "Add a dma chain to upload textures to the bucket. This will only upload chunks that aren't already there. This will automatically update the cache info in the pool for the upload. mode: -3 = don't want anything (this function does nothing) @@ -1059,7 +1059,7 @@ 0 ) -(defun upload-vram-pages-pris ((pool texture-pool) (segment texture-pool-segment) (page texture-page) (bucket-idx int) (needed-mask int)) +(defun upload-vram-pages-pris ((pool texture-pool) (segment texture-pool-segment) (page texture-page) (bucket-idx bucket-id) (needed-mask int)) "Upload the entire texture page. If the needed-mask is not set, it will not upload those chunks. Upload will be added to the given bucket for on-screen. The nth bit of the mask determines if the nth 16-kB chunk is needed in this upload. @@ -1312,7 +1312,7 @@ ;; in the level data, there is always code, then TFRAG texture, ;; so mark the code memory end as the start of this page. ;; (note: this may be wrong on levels with the zoomer hud texture) - (set! (-> *level* unknown-level-2 code-memory-end) (the pointer page)) + (set! (-> *level* loading-level code-memory-end) (the pointer page)) page ) @@ -1358,7 +1358,7 @@ ) ) (set! (-> *texture-pool* allocate-func) texture-page-common-allocate) - (set! (-> *level* unknown-level-2 code-memory-end) (the pointer page)) + (set! (-> *level* loading-level code-memory-end) (the pointer page)) page ) @@ -1373,7 +1373,7 @@ (set! (-> pool common-page common-id) page) ) (else - (let ((level-idx (-> *level* unknown-level-2 index))) + (let ((level-idx (-> *level* loading-level index))) ;; these will handle TFRAG. These allocators will then switch the allocator ;; to common for everything else. (cond @@ -1579,7 +1579,7 @@ (when (= tex-page-kind (tpage-kind tfrag)) ;; TFRAG (0) ;; get the texture page, bucket to add to, and an effective distance from the closest thing. (let ((tfrag-page (-> level texture-page 0)) - (tfrag-bucket (if (zero? (-> level index)) 5 12)) + (tfrag-bucket (if (zero? (-> level index)) (bucket-id tfrag-tex0) (bucket-id tfrag-tex1))) ;; not really sure how this is calculated, but it's a distance. (distance (fmin (fmin (-> level closest-object 0) (if (and (< 0.0 (-> level level-distance)) @@ -1633,7 +1633,7 @@ (if (= tex-page-kind (tpage-kind pris)) ;; PRIS (1) (let ((pris-page (-> level texture-page 1))) (if (and pris-page (nonzero? pris-page)) - (let ((pris-bucket (if (zero? (-> level index)) 48 51))) + (let ((pris-bucket (if (zero? (-> level index)) (bucket-id pris-tex0) (bucket-id pris-tex1)))) ;; just upload the whole thing always. ;; use the cache mask as requested by the level. (set! (-> level upload-size 1) @@ -1649,7 +1649,7 @@ (shrub-closest (-> level closest-object 2)) ;; I guess this is the shrub closest. ) (if (and shrub-page (nonzero? shrub-page)) - (let ((shrub-bucket (if (zero? (-> level index)) 19 25)) + (let ((shrub-bucket (if (zero? (-> level index)) (bucket-id shrub-tex0) (bucket-id shrub-tex1))) (shrub-mode (cond ((= shrub-closest 4095995904.0) -3 ;; nothing @@ -1679,7 +1679,7 @@ (alpha-closest (-> level closest-object 3)) ) (if (and alpha-page (nonzero? alpha-page)) - (let ((alpha-bucket (if (zero? (-> level index)) 31 38)) + (let ((alpha-bucket (if (zero? (-> level index)) (bucket-id alpha-tex0) (bucket-id alpha-tex1))) (alpha-mode (cond ((< 348160.0 alpha-closest) 0 ;; segment 0 @@ -1712,7 +1712,7 @@ (if (= tex-page-kind (tpage-kind water)) ;; WATER (4) (let ((water-page (-> level texture-page 4))) (if (and water-page (nonzero? water-page)) - (let ((water-bucket (if (zero? (-> level index)) 57 60))) + (let ((water-bucket (if (zero? (-> level index)) (bucket-id water-tex0) (bucket-id water-tex1)))) (set! (-> level upload-size 4) (upload-vram-pages-pris obj (-> obj segment-common) water-page water-bucket (the-as int (-> level texture-mask 8))) ) @@ -1724,7 +1724,7 @@ (none) ) -(defmethod upload-one-common! texture-pool ((obj texture-pool)) +(defmethod upload-one-common! texture-pool ((obj texture-pool) (lev level)) "Upload the first common texture page that's in in the common-page-mask." (dotimes (v1-0 32) (let ((a2-0 (-> obj common-page v1-0))) @@ -1732,7 +1732,7 @@ (nonzero? (logand (-> obj common-page-mask) (ash 1 v1-0))) ;; in the mask. ) ;; upload it! - (upload-vram-pages obj (-> obj segment-common) a2-0 -2 65) + (upload-vram-pages obj (-> obj segment-common) a2-0 -2 (bucket-id bucket-65)) (return #f) ) ) @@ -1774,7 +1774,7 @@ ;; add it (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 5 + (bucket-id tfrag-tex0) a2-0 (the-as (pointer dma-tag) a3-3) ) @@ -1807,7 +1807,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 48 + (bucket-id pris-tex0) a2-1 (the-as (pointer dma-tag) a3-7) ) @@ -1840,7 +1840,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 19 + (bucket-id shrub-tex0) a2-2 (the-as (pointer dma-tag) a3-11) ) @@ -1873,7 +1873,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 31 + (bucket-id alpha-tex0) a2-3 (the-as (pointer dma-tag) a3-15) ) @@ -1908,7 +1908,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 12 + (bucket-id tfrag-tex1) a2-4 (the-as (pointer dma-tag) a3-19) ) @@ -1941,7 +1941,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 51 + (bucket-id pris-tex1) a2-5 (the-as (pointer dma-tag) a3-23) ) @@ -1974,7 +1974,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 25 + (bucket-id shrub-tex1) a2-6 (the-as (pointer dma-tag) a3-27) ) @@ -2007,7 +2007,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 38 + (bucket-id alpha-tex1) a2-7 (the-as (pointer dma-tag) a3-31) ) @@ -2736,7 +2736,7 @@ (set! obj (the-as texture-page #f)) ) ((begin - (let ((v1-2 (-> *level* unknown-level-2))) ;; loading/linking level + (let ((v1-2 (-> *level* loading-level))) ;; loading/linking level (tex-dbg " tpage is with level ~A~%" v1-2) (when v1-2 ;; add us to the loading level's tpages diff --git a/goal_src/engine/gfx/tfrag/tfrag-h.gc b/goal_src/engine/gfx/tfrag/tfrag-h.gc index 2115333595..579710d81b 100644 --- a/goal_src/engine/gfx/tfrag/tfrag-h.gc +++ b/goal_src/engine/gfx/tfrag/tfrag-h.gc @@ -78,7 +78,7 @@ ) (deftype drawable-tree-tfrag (drawable-tree) - () + ((time-of-day-pal time-of-day-palette :offset 12)) :method-count-assert 18 :size-assert #x24 :flag-assert #x1200000024 diff --git a/goal_src/engine/gfx/vis/bsp-h.gc b/goal_src/engine/gfx/vis/bsp-h.gc index 3ee7d4083c..a285577db2 100644 --- a/goal_src/engine/gfx/vis/bsp-h.gc +++ b/goal_src/engine/gfx/vis/bsp-h.gc @@ -30,7 +30,7 @@ (unk-data-0-len int32 :offset-assert 56) (unk-data-1 pointer :offset-assert 60) (unk-data-1-len int32 :offset-assert 64) - (unk-zero-0 uint32 :offset-assert 68) + (unk-zero-0 basic :offset-assert 68) (name symbol :offset-assert 72) (nickname symbol :offset-assert 76) (vis-info level-vis-info 8 :offset-assert 80) @@ -54,7 +54,6 @@ :flag-assert #x1400000190 (:methods (relocate (_type_ kheap (pointer uint8)) none :replace 7) - (dummy-17 () none 17) (dummy-18 (_type_) none 18) (dummy-19 (_type_) none 19) ) diff --git a/goal_src/engine/level/level-h.gc b/goal_src/engine/level/level-h.gc index 073986ef4f..a110836c8f 100644 --- a/goal_src/engine/level/level-h.gc +++ b/goal_src/engine/level/level-h.gc @@ -5,6 +5,7 @@ ;; name in dgo: level-h ;; dgos: GAME, ENGINE +;; The level system is responsible for loading and managning the two levels. (defconstant LEVEL_COUNT 2) ;; there are two levels in memory! @@ -75,6 +76,8 @@ :flag-assert #x900000074 ) +;; The levels are initialized (called "login") over multiple frames. +;; The state of this process is stored in a login-state. (declare-type drawable basic) (deftype login-state (basic) ((state int32 :offset-assert 4) @@ -147,7 +150,7 @@ (add-irq-to-tex-buckets! (_type_) none 11) (unload! (_type_) _type_ 12) (bsp-name (_type_) symbol 13) - (dummy-14 (_type_ object) none 14) + (dummy-14 (_type_ object) memory-usage-block 14) (dummy-15 (_type_ vector) symbol 15) (dummy-16 (_type_) none 16) (load-continue (_type_) _type_ 17) @@ -174,8 +177,8 @@ (declare-type entity-links structure) (deftype level-group (basic) ((length int32 :offset-assert 4) - (unknown-level-1 level :offset-assert 8) - (unknown-level-2 level :offset-assert 12) ;; currently loading + (log-in-level level :offset-assert 8) ;; level currently logging in + (loading-level level :offset-assert 12) ;; currently loading (entity-link entity-links :offset-assert 16) ;; not sure what's going on here (border? basic :offset-assert 20) (vis? basic :offset-assert 24) @@ -203,7 +206,7 @@ (level-get-for-use (_type_ symbol symbol) level 11) (activate-levels! (_type_) int 12) (dummy-13 () none 13) - (dummy-14 () none 14) + (dummy-14 (_type_ object) none 14) (dummy-15 () none 15) (dummy-16 (_type_) int 16) (level-get-target-inside (_type_) level 17) @@ -222,14 +225,15 @@ (defun-extern level-update-after-load level login-state level) - +;; Initialize the level structure. This assigns DMA buckets to each level. +;; TODO: figure out exactly which buckets are used for what. (define-extern *level* level-group) (if (zero? *level*) (set! *level* (new 'static 'level-group :length 2 - :unknown-level-1 #f - :unknown-level-2 #f + :log-in-level #f + :loading-level #f :entity-link #f :border? #f :want-level #f diff --git a/goal_src/engine/level/level.gc b/goal_src/engine/level/level.gc index 5dd427d486..36be64cba9 100644 --- a/goal_src/engine/level/level.gc +++ b/goal_src/engine/level/level.gc @@ -94,7 +94,7 @@ ;; relocate bsp-header (defmethod relocate bsp-header ((obj bsp-header) (dest-heap kheap) (name (pointer uint8))) - (let ((s5-0 (-> *level* unknown-level-2))) + (let ((s5-0 (-> *level* loading-level))) (if s5-0 (cond (obj @@ -455,8 +455,8 @@ "Start loading the level. Uses 2 megabyte heaps for loading each non-bt object." (set! loading-level (-> obj heap)) - (set! (-> *level* unknown-level-2) obj) - (set! (-> *level* unknown-level-1) #f) + (set! (-> *level* loading-level) obj) + (set! (-> *level* log-in-level) #f) (set! (-> obj nickname) #f) (set! (-> obj bsp) #f) (set! (-> obj entity) #f) @@ -487,7 +487,7 @@ (set! (-> *texture-pool* allocate-func) texture-page-default-allocate) (cond ((-> obj bsp) - (set! (-> *level* unknown-level-1) (the-as level (-> obj bsp))) + (set! (-> *level* log-in-level) (the-as level (-> obj bsp))) ;; TODO ;;(login-level-textures *texture-pool* obj (-> obj bsp unk-data-1-len) (the-as (pointer texture-id) (-> obj bsp unk-data-1))) (let ((bsp (-> obj bsp))) @@ -507,7 +507,7 @@ (else (level-status-set! obj 'inactive) (set! loading-level global) - (set! (-> *level* unknown-level-2) (-> *level* level-default)) + (set! (-> *level* loading-level) (-> *level* level-default)) ) ) obj @@ -701,8 +701,8 @@ (dummy-24 loaded-level) (set! (-> loaded-level status) 'loaded) (set! loading-level global) - (set! (-> *level* unknown-level-2) (-> *level* level-default)) - (set! (-> *level* unknown-level-1) #f) + (set! (-> *level* loading-level) (-> *level* level-default)) + (set! (-> *level* log-in-level) #f) 0 ;;(.mfc0 v1-154 Count) ;;(- v1-154 initial-timer) @@ -716,12 +716,12 @@ (case (-> obj status) (('loaded) (protect (loading-level - (-> *level* unknown-level-2) - (-> *level* unknown-level-1) + (-> *level* loading-level) + (-> *level* log-in-level) ) (set! loading-level (-> obj heap)) - (set! (-> *level* unknown-level-1) (the-as level (-> obj bsp))) - (set! (-> *level* unknown-level-2) obj) + (set! (-> *level* log-in-level) (the-as level (-> obj bsp))) + (set! (-> *level* loading-level) obj) ;; (dummy-18 (-> obj bsp)) TODO (set! (-> obj status) 'alive) ;; (dummy-15 *game-info*) TODO @@ -767,8 +767,8 @@ ) ) ) - (if (= (-> *level* unknown-level-1) (-> obj bsp)) - (set! (-> *level* unknown-level-1) #f) + (if (= (-> *level* log-in-level) (-> obj bsp)) + (set! (-> *level* log-in-level) #f) ) obj ) @@ -849,10 +849,10 @@ ) (set! (-> obj code-memory-start) (the pointer 0)) (set! (-> obj code-memory-end) (the pointer 0)) - (when (= (-> *level* unknown-level-2) obj) + (when (= (-> *level* loading-level) obj) (set! loading-level global) - (set! (-> *level* unknown-level-2) (-> *level* level-default)) - (set! (-> *level* unknown-level-1) #f) + (set! (-> *level* loading-level) (-> *level* level-default)) + (set! (-> *level* log-in-level) #f) ) ) obj @@ -1206,7 +1206,7 @@ ;; temp (format #t "(play ~A ~A) has been called!~%" use-vis arg1) (format 0 "(play ~A ~A) has been called!~%" use-vis arg1) - (kernel-shutdown) + ;;(kernel-shutdown) (let ((startup-level (case *kernel-boot-message* (('play) @@ -1589,7 +1589,7 @@ (when (zero? (-> *level* level0 art-group)) (let ((lev-group *level*)) (set! (-> lev-group vis?) #f) - (set! (-> lev-group unknown-level-2) (-> lev-group level-default)) + (set! (-> lev-group loading-level) (-> lev-group level-default)) (set! (-> lev-group level0 art-group) (new 'global 'load-dir-art-group 50 (-> lev-group level0))) (set! (-> lev-group level0 foreground-draw-engine 0) (new 'global 'engine 'draw 280)) (set! (-> lev-group level0 foreground-draw-engine 1) (new 'global 'engine 'draw 280)) diff --git a/goal_src/engine/load/file-io.gc b/goal_src/engine/load/file-io.gc index 16e0b8ccb9..8306d39e46 100644 --- a/goal_src/engine/load/file-io.gc +++ b/goal_src/engine/load/file-io.gc @@ -161,54 +161,55 @@ "Check if the version and kind in the info is valid. The version-override can specify a non-default version, or set to 0 for the default version" (let* ((expected-version - (if (zero? version-override) - (let ((v1-0 kind)) - (cond - ((or (= v1-0 (file-kind tpage)) (= v1-0 (file-kind dir-tpage))) - TPAGE_FILE_VERSION - ) - ((= kind (file-kind level-bt)) - LEVEL_BT_FILE_VERSION - ) - ((= v1-0 (file-kind art-group)) - ART_GROUP_FILE_VERSION - ) - ) - ) - version-override - ) - ) - (v1-1 kind) - (kind-name (cond - ((= v1-1 (file-kind tpage)) - "texture-page" + ((zero? version-override) + (case kind + (((file-kind tpage) (file-kind dir-tpage)) + 7 + ) + (((file-kind level-bt)) + 30 + ) + (((file-kind art-group)) + 6 + ) + ) ) - ((= kind (file-kind level-bt)) - "bsp-header" - ) - ((= v1-1 (file-kind art-group)) - "art-group" + (else + version-override ) ) ) + (v1-1 kind) + (kind-name (cond + ((= v1-1 (file-kind tpage)) + "texture-page" + ) + ((= v1-1 (file-kind level-bt)) + "bsp-header" + ) + ((= v1-1 (file-kind art-group)) + "art-group" + ) + ) + ) ) (cond ((not (name= (the-as basic (-> info file-type value)) kind-name)) (format 0 "ERROR: file ~A is of type ~S but needs to be ~S.~%" - (-> info file-name) - (-> info file-type) - kind-name - ) + (-> info file-name) + (-> info file-type) + kind-name + ) #f ) ((!= expected-version (-> info major-version)) (format 0 "ERROR: file ~A is version ~D.~D, but needs to be ~D.x~%" - (-> info file-name) - (-> info major-version) - (-> info minor-version) - expected-version - ) + (-> info file-name) + (-> info major-version) + (-> info minor-version) + expected-version + ) #f ) (else diff --git a/goal_src/engine/target/joint-mod-h.gc b/goal_src/engine/target/joint-mod-h.gc index da45d149cb..fd9f113d36 100644 --- a/goal_src/engine/target/joint-mod-h.gc +++ b/goal_src/engine/target/joint-mod-h.gc @@ -102,41 +102,39 @@ (defmethod set-mode! joint-mod ((obj joint-mod) (handler-mode joint-mod-handler-mode)) "Set up the joint-mod for the given mode. You can only pick one mode at a time." (set! (-> obj mode) handler-mode) - (let ((joint (-> obj joint)) - (mode handler-mode) - ) - (cond - ((= mode (joint-mod-handler-mode flex-blend)) + (let ((joint (-> obj joint))) + (case handler-mode + (((joint-mod-handler-mode flex-blend)) (set! (-> joint param0) #f) (set! (-> joint param1) #f) (set! (-> joint param2) #f) (set! (-> obj blend) 0.0) (set! (-> obj flex-blend) 1.0) ) - ((= mode (joint-mod-handler-mode reset)) + (((joint-mod-handler-mode reset)) (set! (-> joint param0) #f) (set! (-> joint param1) #f) (set! (-> joint param2) #f) (set! (-> obj blend) 0.0) (set! (-> obj shutting-down?) #f) ) - ((= mode (joint-mod-handler-mode look-at)) + (((joint-mod-handler-mode look-at)) (set! (-> joint param0) joint-mod-look-at-handler) (set! (-> joint param1) obj) (set! (-> joint param2) #f) ) - ((= mode (joint-mod-handler-mode world-look-at)) + (((joint-mod-handler-mode world-look-at)) (set! (-> joint param0) joint-mod-world-look-at-handler) (set! (-> joint param1) obj) (set! (-> joint param2) #f) ) - ((= mode (joint-mod-handler-mode rotate)) + (((joint-mod-handler-mode rotate)) (set! (-> joint param0) joint-mod-rotate-handler) (set! (-> joint param1) obj) (set! (-> joint param2) #f) (set! (-> obj blend) 1.0) ) - ((= mode (joint-mod-handler-mode joint-set)) + (((joint-mod-handler-mode joint-set)) (set! (-> joint param0) joint-mod-joint-set-handler) (set! (-> joint param1) obj) (set! (-> joint param2) #f) @@ -150,7 +148,7 @@ ) (set! (-> obj max-dist) (the-as float #f)) ) - ((= mode (joint-mod-handler-mode joint-set*)) + (((joint-mod-handler-mode joint-set*)) (set! (-> joint param0) joint-mod-joint-set*-handler) (set! (-> joint param1) obj) (set! (-> joint param2) #f) diff --git a/goal_src/engine/ui/credits.gc b/goal_src/engine/ui/credits.gc index 8e19d6bf15..7c9273b128 100644 --- a/goal_src/engine/ui/credits.gc +++ b/goal_src/engine/ui/credits.gc @@ -99,15 +99,13 @@ (s3-0 (lookup-text! *common-text* (the-as game-text-id s2-0) #t)) ) (when (= s2-0 3841) - (let ((v1-18 (scf-get-territory))) - (cond - ((= v1-18 1) - (set! s3-0 (lookup-text! *common-text* (game-text-id europe) #t)) - ) - ((= v1-18 2) - (set! s3-0 (lookup-text! *common-text* (game-text-id inc) #t)) - ) - ) + (case (scf-get-territory) + ((1) + (set! s3-0 (lookup-text! *common-text* (game-text-id europe) #t)) + ) + ((2) + (set! s3-0 (lookup-text! *common-text* (game-text-id inc) #t)) + ) ) ) (when s3-0 diff --git a/goal_src/engine/ui/progress-h.gc b/goal_src/engine/ui/progress-h.gc index 09f4281ab2..92cbe15957 100644 --- a/goal_src/engine/ui/progress-h.gc +++ b/goal_src/engine/ui/progress-h.gc @@ -126,7 +126,7 @@ (dummy-17 () none 17) (dummy-18 () none 18) (dummy-19 () none 19) - (dummy-20 () none 20) + (hidden? (_type_) symbol 20) (dummy-21 () none 21) (dummy-22 () none 22) (TODO-RENAME-23 (_type_ symbol symbol) none 23) @@ -176,4 +176,6 @@ (define-extern *level-task-data* (array level-tasks-info)) (define-extern *level-task-data-remap* (array int32)) (define-extern get-game-count (function int count-info)) -(define-extern activate-orb-all (function int int)) ;; maybe in hud? \ No newline at end of file +(define-extern activate-orb-all (function int int)) ;; maybe in hud? +(define-extern progress-allowed? (function symbol)) +(define-extern pause-allowed? (function symbol)) diff --git a/goal_src/engine/ui/progress/progress.gc b/goal_src/engine/ui/progress/progress.gc index 75ff34cc62..fa963f8d4b 100644 --- a/goal_src/engine/ui/progress/progress.gc +++ b/goal_src/engine/ui/progress/progress.gc @@ -8,4 +8,10 @@ (defmethod relocate game-count-info ((this game-count-info) (offset int)) "Load in the game-count-info. This is a bit of a hack." (set! *game-counts* this) - ) \ No newline at end of file + ) + +(defmethod hidden? progress ((obj progress)) + (or (not *progress-process*) + (= (-> *progress-process* 0 in-out-position) 4096) + ) + ) diff --git a/goal_src/engine/ui/text-h.gc b/goal_src/engine/ui/text-h.gc index cb588379e6..fd5327f1cd 100644 --- a/goal_src/engine/ui/text-h.gc +++ b/goal_src/engine/ui/text-h.gc @@ -220,10 +220,10 @@ ) ) -;; todo, need support for array (define *text-group-names* (new 'static 'boxed-array :type string :length 1 "common")) +;; The heap for storing text (define *common-text-heap* (new 'global 'kheap)) -;; definition for symbol *common-text*, type game-text-info +;; will store the COMMON text when it is loaded. (define *common-text* (the-as game-text-info #f)) diff --git a/goal_src/engine/ui/text.gc b/goal_src/engine/ui/text.gc index 821605ef31..af762a8bfd 100644 --- a/goal_src/engine/ui/text.gc +++ b/goal_src/engine/ui/text.gc @@ -5,9 +5,9 @@ ;; name in dgo: text ;; dgos: GAME, ENGINE -(define *game-text-word* (new 'global 'string 256 (the string '#f))) +(define *game-text-word* (new 'global 'string 128 (the string '#f))) (define *game-text-line* (new 'global 'string 256 (the string '#f))) -(define *level-text-file-load-flag* '#t) +(define *level-text-file-load-flag* #t) ;; allocate the game text heap if it isn't already allocated. (when (= 0 (-> *common-text-heap* base)) @@ -42,8 +42,34 @@ obj ) -;; todo method 8 -;; todo method 9 +(defmethod mem-usage game-text-info ((obj game-text-info) (arg0 memory-usage-block) (arg1 int)) + "Get the memory usage." + (set! (-> arg0 length) (max 81 (-> arg0 length))) + (set! (-> arg0 data 80 name) "string") + (set! (-> arg0 data 80 count) (+ (-> arg0 data 80 count) 1)) + + ;; get the size of this structure + (let ((v1-6 (asize-of obj))) + (set! (-> arg0 data 80 used) (+ (-> arg0 data 80 used) v1-6)) + (set! (-> arg0 data 80 total) + (+ (-> arg0 data 80 total) (logand -16 (+ v1-6 15))) + ) + ) + + ;; get the size of all the strings + (dotimes (s4-0 (-> obj length)) + (set! (-> arg0 length) (max 81 (-> arg0 length))) + (set! (-> arg0 data 80 name) "string") + (set! (-> arg0 data 80 count) (+ (-> arg0 data 80 count) 1)) + (let ((v1-18 (asize-of (-> obj data s4-0 text)))) + (set! (-> arg0 data 80 used) (+ (-> arg0 data 80 used) v1-18)) + (set! (-> arg0 data 80 total) + (+ (-> arg0 data 80 total) (logand -16 (+ v1-18 15))) + ) + ) + ) + obj + ) (defmethod lookup-text! game-text-info ((obj game-text-info) (arg0 game-text-id) (arg1 symbol)) "Look up text by ID. Will return the string. @@ -83,8 +109,103 @@ ) ) ) -;; todo text-is-loading + +(define text-is-loading #f) + ;; todo load-game-text-info + +(defun load-game-text-info ((txt-name string) (curr-text symbol) (heap kheap)) + "Load text, if needed." + (local-vars + (v0-2 int) + (heap-sym-heap game-text-info) + (lang int) + (load-status int) + (heap-free int) + ) + (set! heap-sym-heap (the-as game-text-info (-> curr-text value))) + (set! lang (-> *setting-control* current language)) + (set! load-status 0) + (set! heap-free (&- (-> heap top) (the-as uint (-> heap base)))) + (if (and (= (scf-get-territory) 1) (zero? lang)) + (set! lang 6) + ) + (when (or (= heap-sym-heap #f) + (!= (-> heap-sym-heap language-id) lang) + (not (string= (-> heap-sym-heap group-name) txt-name)) + ) + (let ((v1-16 heap)) + (set! (-> v1-16 current) (-> v1-16 base)) + ) + (b! #t cfg-14) + (label cfg-13) + (load-dbg "Strange error during text load.~%") + (set! v0-2 0) + (b! #t cfg-27) + (label cfg-14) + (let ((s3-0 str-load)) + (format (clear *temp-string*) "~D~S.TXT" lang txt-name) + ;; this branch is super weird. + (b! (not (s3-0 + *temp-string* + -1 + (logand -64 (&+ (-> heap current) 63)) + (&- (-> heap top) (the-as uint (-> heap current))) + ) + ) + cfg-13 + ) + ) + (label cfg-16) + (let ((v1-20 (str-load-status (the-as (pointer int32) (& load-status))))) + (cond + ((= v1-20 'error) + (format 0 "Error loading text~%") + (return 0) + ) + ((>= load-status (+ heap-free -300)) + (format 0 "Game text heap overrun!~%") + (return 0) + ) + ((= v1-20 'busy) + (begin + (nop!) + (nop!) + (nop!) + (nop!) + (nop!) + (nop!) + (goto cfg-16) + ) + ) + ) + ) + (let ((s2-1 (logand -64 (&+ (-> heap current) 63)))) + (flush-cache 0) + (let ((s3-1 link)) + (format (clear *temp-string*) "~D~S.TXT" lang txt-name) + (set! + (-> curr-text value) + (s3-1 s2-1 (-> *temp-string* data) load-status heap 0) + ) + ) + ) + (if (<= (the-as int (-> curr-text value)) 0) + (set! (-> curr-text value) (the-as object #f)) + ) + ) + (set! v0-2 0) + (label cfg-27) + v0-2 + ) + +(defun load-level-text-files ((arg0 int)) + (if (or *level-text-file-load-flag* (>= arg0 0)) + (load-game-text-info "common" '*common-text* *common-text-heap*) + ) + 0 + (none) + ) ;; todo load-level-text-files ;; todo draw-debug-text-box ;; todo set-font-color-alpha diff --git a/goal_src/kernel-defs.gc b/goal_src/kernel-defs.gc index 40a14b706b..4c411c99ac 100644 --- a/goal_src/kernel-defs.gc +++ b/goal_src/kernel-defs.gc @@ -117,7 +117,7 @@ (define-extern *debug-segment* symbol) (define-extern *enable-method-set* int) -;; *boot-video-mode* ? +(define-extern *boot-video-mode* int) (define-extern *deci-count* int) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -135,6 +135,7 @@ ;;;; kmachine - InitMachineScheme ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; put-display-env ;; syncv (define-extern sync-path (function int int none)) @@ -159,13 +160,13 @@ ;; file-stream-seek (define-extern file-stream-read (function file-stream pointer int int)) (define-extern file-stream-write (function file-stream pointer uint uint)) -;; scf-get-language +(define-extern scf-get-language (function uint)) ;; scf-get-time -;; scf-get-aspect -;; scf-get-volume -;; scf-get-territory -;; scf-get-timeout -;; scf-get-inactive-timeout +(define-extern scf-get-aspect (function uint)) +(define-extern scf-get-volume (function int)) +(define-extern scf-get-territory (function int)) +(define-extern scf-get-timeout (function int)) +(define-extern scf-get-inactive-timeout (function int)) ;; dma-to-iop (define-extern kernel-shutdown (function none)) ;; aybabtu diff --git a/goal_src/kernel/gkernel.gc b/goal_src/kernel/gkernel.gc index dd5d19f21e..a5f7334fa7 100644 --- a/goal_src/kernel/gkernel.gc +++ b/goal_src/kernel/gkernel.gc @@ -2434,12 +2434,11 @@ (set! pp obj) (let ((cur (-> pp stack-frame-top))) (while cur - (when (or - (= (-> cur type) protect-frame) - (= (-> cur type) state) - ) - ;; we're a state or protect-frame, we can exit. - ((-> (the protect-frame cur) exit)) + (case (-> cur type) + ((protect-frame state) + ;; we're a state or protect-frame, we can exit. + ((-> (the-as protect-frame cur) exit)) + ) ) (set! cur (-> cur next)) ) diff --git a/goal_src/kernel/gstate.gc b/goal_src/kernel/gstate.gc index 1c9f7fc8d3..23cb1b23e5 100644 --- a/goal_src/kernel/gstate.gc +++ b/goal_src/kernel/gstate.gc @@ -218,11 +218,10 @@ There are several ways to "go" ;; loop through current stack frames (let ((frame (-> pp stack-frame-top))) (while frame - (let ((typ (-> frame type))) - (if (or (= typ protect-frame) (= typ state)) - ;; if we got a protect-frame or a state, call exit handler - ((-> (the protect-frame frame) exit)) - ) + (case (-> frame type) + ((protect-frame state) + ((-> (the-as protect-frame frame) exit)) + ) ) (set! frame (-> frame next)) ) diff --git a/goalc/compiler/Compiler.h b/goalc/compiler/Compiler.h index 8f6ef2268d..56353295d1 100644 --- a/goalc/compiler/Compiler.h +++ b/goalc/compiler/Compiler.h @@ -281,10 +281,11 @@ class Compiler { StructureType* type, Env* env, RegVal* reg, - const Field& f); - Val* generate_inspector_for_structured_type(const goos::Object& form, - Env* env, - StructureType* type); + const Field& f, + int tab_count); + Val* generate_inspector_for_structure_type(const goos::Object& form, + Env* env, + StructureType* structure_type); Val* generate_inspector_for_bitfield_type(const goos::Object& form, Env* env, BitFieldType* type); RegVal* compile_get_method_of_type(const goos::Object& form, const TypeSpec& compile_time_type, diff --git a/goalc/compiler/compilation/Static.cpp b/goalc/compiler/compilation/Static.cpp index 62e4e17703..1d9b55a507 100644 --- a/goalc/compiler/compilation/Static.cpp +++ b/goalc/compiler/compilation/Static.cpp @@ -230,6 +230,15 @@ void Compiler::compile_static_structure_inline(const goos::Object& form, typecheck(form, TypeSpec("float"), sr.typespec()); u64 value = sr.constant_u64(); memcpy(structure->data.data() + field_offset, &value, sizeof(float)); + } else if (field_info.type.base_type() == "inline-array") { + auto sr = compile_static(field_value, env); + if (!sr.is_reference()) { + throw_compiler_error(form, "Invalid definition of field {}", field_info.field.name()); + } + typecheck(form, field_info.type, sr.typespec()); + assert(sr.reference()->get_addr_offset() == 0); + structure->add_pointer_record(field_offset, sr.reference(), + sr.reference()->get_addr_offset()); } else { diff --git a/goalc/compiler/compilation/Type.cpp b/goalc/compiler/compilation/Type.cpp index 7bebbc9497..58719ca3ec 100644 --- a/goalc/compiler/compilation/Type.cpp +++ b/goalc/compiler/compilation/Type.cpp @@ -137,58 +137,63 @@ void Compiler::generate_field_description(const goos::Object& form, StructureType* type, Env* env, RegVal* reg, - const Field& f) { + const Field& f, + int tab_count) { std::string str_template; + std::string tabs; + for (int i = 0; i < tab_count; i++) { + tabs += "~T"; + } std::vector format_args = {}; if (f.name() == "type" && f.offset() == 0) { // type return; } else if (f.is_array() && !f.is_dynamic()) { // Arrays - str_template += fmt::format("~T{}[{}] @ #x~X~%", f.name(), f.array_size()); + str_template += fmt::format("{}{}[{}] @ #x~X~%", tabs, f.name(), f.array_size()); format_args.push_back(get_field_of_structure(type, reg, f.name(), env)->to_gpr(env)); } else if (f.is_dynamic()) { // Dynamic Field - str_template += fmt::format("~T{}[0] @ #x~X~%", f.name()); + str_template += fmt::format("{}{}[0] @ #x~X~%", tabs, f.name()); format_args.push_back(get_field_of_structure(type, reg, f.name(), env)->to_gpr(env)); } else if (m_ts.tc(m_ts.make_typespec("basic"), f.type()) || m_ts.tc(m_ts.make_typespec("binteger"), f.type()) || m_ts.tc(m_ts.make_typespec("pair"), f.type())) { // basic, binteger, pair - str_template += fmt::format("~T{}: ~A~%", f.name()); + str_template += fmt::format("{}{}: ~A~%", tabs, f.name()); format_args.push_back(get_field_of_structure(type, reg, f.name(), env)->to_gpr(env)); } else if (m_ts.tc(m_ts.make_typespec("structure"), f.type())) { // Structure - str_template += fmt::format("~T{}: #<{} @ #x~X>~%", f.name(), f.type().print()); + str_template += fmt::format("{}{}: #<{} @ #x~X>~%", tabs, f.name(), f.type().print()); format_args.push_back(get_field_of_structure(type, reg, f.name(), env)->to_gpr(env)); } else if (m_ts.tc(m_ts.make_typespec("integer"), f.type())) { // Integer if (m_ts.lookup_type(f.type())->get_load_size() > 8) { - str_template += fmt::format("~T{}: ~%", f.name()); + str_template += fmt::format("{}: ~%", tabs, f.name()); } else { - str_template += fmt::format("~T{}: ~D~%", f.name()); + str_template += fmt::format("{}{}: ~D~%", tabs, f.name()); format_args.push_back(get_field_of_structure(type, reg, f.name(), env)->to_gpr(env)); } } else if (m_ts.tc(m_ts.make_typespec("float"), f.type())) { // Float - str_template += fmt::format("~T{}: ~f~%", f.name()); + str_template += fmt::format("{}{}: ~f~%", tabs, f.name()); format_args.push_back(get_field_of_structure(type, reg, f.name(), env)->to_gpr(env)); } else if (m_ts.tc(m_ts.make_typespec("pointer"), f.type())) { // Pointers - str_template += fmt::format("~T{}: #x~X~%", f.name()); + str_template += fmt::format("{}{}: #x~X~%", tabs, f.name()); format_args.push_back(get_field_of_structure(type, reg, f.name(), env)->to_gpr(env)); } else { // Otherwise, we havn't implemented it! - str_template += fmt::format("~T{}: Undefined!~%", f.name()); + str_template += fmt::format("{}{}: Undefined!~%", tabs, f.name()); } compile_format_string(form, env, str_template, format_args); } -Val* Compiler::generate_inspector_for_structured_type(const goos::Object& form, - Env* env, - StructureType* structure_type) { +Val* Compiler::generate_inspector_for_structure_type(const goos::Object& form, + Env* env, + StructureType* structure_type) { // Create a function environment to hold the code for the inspect method. The name is just for // debugging. auto method_env = std::make_unique( @@ -207,18 +212,39 @@ Val* Compiler::generate_inspector_for_structured_type(const goos::Object& form, // Inform the compiler that `input`'s value will be written to `rdi` (first arg register) method_env->emit(std::make_unique(std::vector{input})); - RegVal* type_name = nullptr; - if (dynamic_cast(structure_type)) { - type_name = get_field_of_structure(structure_type, input, "type", method_env.get()) - ->to_gpr(method_env.get()); - } else { - type_name = - compile_get_sym_obj(structure_type->get_name(), method_env.get())->to_gpr(method_env.get()); - } - compile_format_string(form, method_env.get(), "[~8x] ~A~%", {input, type_name}); + // there's a special case for children of process. + if (m_ts.fully_defined_type_exists("process") && + m_ts.tc(TypeSpec("process"), TypeSpec(structure_type->get_name()))) { + // first, call the inspect method of our parent type. + auto parent_type_name = structure_type->get_parent(); + auto parent_inspect = + compile_get_method_of_type(form, TypeSpec(parent_type_name), "inspect", method_env.get()); + std::vector args = {input}; + compile_real_function_call(form, parent_inspect, args, method_env.get(), parent_type_name); + auto parent_type_info = dynamic_cast(m_ts.lookup_type(parent_type_name)); + if (!parent_type_info) { + throw_compiler_error(form, "Got an invalid parent type in process inspect method"); + } - for (const Field& f : structure_type->fields()) { - generate_field_description(form, structure_type, method_env.get(), input, f); + for (size_t i = parent_type_info->fields().size(); i < structure_type->fields().size(); i++) { + generate_field_description(form, structure_type, method_env.get(), input, + structure_type->fields().at(i), 2); + } + + } else { + RegVal* type_name = nullptr; + if (dynamic_cast(structure_type)) { + type_name = get_field_of_structure(structure_type, input, "type", method_env.get()) + ->to_gpr(method_env.get()); + } else { + type_name = compile_get_sym_obj(structure_type->get_name(), method_env.get()) + ->to_gpr(method_env.get()); + } + compile_format_string(form, method_env.get(), "[~8x] ~A~%", {input, type_name}); + + for (const Field& f : structure_type->fields()) { + generate_field_description(form, structure_type, method_env.get(), input, f, 1); + } } method_env->emit_ir(method_env->make_gpr(input->type()), input, @@ -343,7 +369,7 @@ Val* Compiler::compile_deftype(const goos::Object& form, const goos::Object& res // Auto-generate (inspect) method auto as_structure_type = dynamic_cast(result.type_info); if (as_structure_type) { // generate the inspect method - generate_inspector_for_structured_type(form, env, as_structure_type); + generate_inspector_for_structure_type(form, env, as_structure_type); } else { auto as_bitfield_type = dynamic_cast(result.type_info); if (as_bitfield_type && as_bitfield_type->get_load_size() <= 8) { // Avoid 128-bit bitfields diff --git a/test/decompiler/reference/engine/anim/mspace-h_REF.gc b/test/decompiler/reference/engine/anim/mspace-h_REF.gc index 8f22ddd47c..3cde6b1ee5 100644 --- a/test/decompiler/reference/engine/anim/mspace-h_REF.gc +++ b/test/decompiler/reference/engine/anim/mspace-h_REF.gc @@ -69,7 +69,8 @@ ;; definition of type skeleton (deftype skeleton (inline-array-class) - () + ((bones bone :inline :dynamic :offset-assert 16) + ) :method-count-assert 9 :size-assert #x10 :flag-assert #x900000010 @@ -80,7 +81,7 @@ (format #t "[~8x] ~A~%" obj (-> obj type)) (format #t "~Tlength: ~D~%" (-> obj length)) (format #t "~Tallocated-length: ~D~%" (-> obj allocated-length)) - (format #t "~Tdata[0] @ #x~X~%" (-> obj _data)) + (format #t "~Tdata[0] @ #x~X~%" (-> obj bones)) obj ) diff --git a/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc b/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc index fd3d5409ce..c185cf2d93 100644 --- a/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc +++ b/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc @@ -726,9 +726,11 @@ (set! (-> obj event-other) #f) (set! (-> obj riders) #f) (set! (-> obj root-prim) #f) - (let ((v1-5 (-> proc type symbol))) - (if (= v1-5 'camera) - (set! (-> obj pat-ignore-mask) (the-as uint 2)) + (case (-> proc type symbol) + (('camera) + (set! (-> obj pat-ignore-mask) (the-as uint 2)) + ) + (else (set! (-> obj pat-ignore-mask) (the-as uint 1)) ) ) diff --git a/test/decompiler/reference/engine/data/art-h_REF.gc b/test/decompiler/reference/engine/data/art-h_REF.gc index f804c30b4e..dbdcc3b7a2 100644 --- a/test/decompiler/reference/engine/data/art-h_REF.gc +++ b/test/decompiler/reference/engine/data/art-h_REF.gc @@ -264,7 +264,8 @@ ;; definition of type art-mesh-anim (deftype art-mesh-anim (art-element) - () + ((data basic :dynamic :offset-assert 32) + ) :method-count-assert 13 :size-assert #x20 :flag-assert #xd00000020 diff --git a/test/decompiler/reference/engine/debug/menu_REF.gc b/test/decompiler/reference/engine/debug/menu_REF.gc index 55d6256887..9bc7cb216f 100644 --- a/test/decompiler/reference/engine/debug/menu_REF.gc +++ b/test/decompiler/reference/engine/debug/menu_REF.gc @@ -762,14 +762,6 @@ ;; WARN: Stack slot load mismatch: defined as size 4, got size 16 -;; WARN: Stack slot load mismatch: defined as size 4, got size 16 - -;; WARN: Stack slot load mismatch: defined as size 4, got size 16 - -;; WARN: Stack slot load mismatch: defined as size 4, got size 16 - -;; WARN: Stack slot load mismatch: defined as size 4, got size 16 - ;; Used lq/sq (defun debug-menu-make-from-template ((arg0 debug-menu-context) (arg1 pair)) (local-vars @@ -1084,7 +1076,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 68 + (bucket-id debug-draw1) s4-0 (the-as (pointer dma-tag) a3-1) ) @@ -1149,7 +1141,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 68 + (bucket-id debug-draw1) s5-0 (the-as (pointer dma-tag) a3-1) ) @@ -1204,7 +1196,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 68 + (bucket-id debug-draw1) s5-0 (the-as (pointer dma-tag) a3-1) ) @@ -1321,7 +1313,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 68 + (bucket-id debug-draw1) s1-0 (the-as (pointer dma-tag) a3-2) ) @@ -1361,7 +1353,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 68 + (bucket-id debug-draw1) sv-32 (the-as (pointer dma-tag) a3-3) ) diff --git a/test/decompiler/reference/engine/dma/dma-bucket_REF.gc b/test/decompiler/reference/engine/dma/dma-bucket_REF.gc index 56bb0edc41..fa8b13f8ba 100644 --- a/test/decompiler/reference/engine/dma/dma-bucket_REF.gc +++ b/test/decompiler/reference/engine/dma/dma-bucket_REF.gc @@ -39,7 +39,11 @@ ;; definition for function dma-bucket-insert-tag (defun dma-bucket-insert-tag - ((base dma-bucket) (idx int) (tag-start pointer) (tag-end (pointer dma-tag))) + ((base dma-bucket) + (idx bucket-id) + (tag-start pointer) + (tag-end (pointer dma-tag)) + ) (let ((bucket (the-as dma-bucket (+ (the-as uint base) (the-as uint (* idx 16))))) ) diff --git a/test/decompiler/reference/engine/draw/draw-node-h_REF.gc b/test/decompiler/reference/engine/draw/draw-node-h_REF.gc index 178cfec5ba..a6f7b2ab9a 100644 --- a/test/decompiler/reference/engine/draw/draw-node-h_REF.gc +++ b/test/decompiler/reference/engine/draw/draw-node-h_REF.gc @@ -25,7 +25,15 @@ obj ) -;; type drawable-inline-array-node is defined here, but it is unknown to the decompiler +;; definition of type drawable-inline-array-node +(deftype drawable-inline-array-node (drawable-inline-array) + ((data draw-node 1 :inline :offset-assert 32) + (pad uint32 :offset-assert 64) + ) + :method-count-assert 18 + :size-assert #x44 + :flag-assert #x1200000044 + ) ;; definition of type draw-node-dma (deftype draw-node-dma (structure) diff --git a/test/decompiler/reference/engine/draw/drawable-ambient-h_REF.gc b/test/decompiler/reference/engine/draw/drawable-ambient-h_REF.gc index becf8f5023..447ff3b8ee 100644 --- a/test/decompiler/reference/engine/draw/drawable-ambient-h_REF.gc +++ b/test/decompiler/reference/engine/draw/drawable-ambient-h_REF.gc @@ -97,8 +97,8 @@ ;; definition of type ambient-list (deftype ambient-list (structure) - ((num-items int32 :offset-assert 0) - (items uint32 2048 :offset-assert 4) + ((num-items int32 :offset-assert 0) + (items drawable-ambient 2048 :offset-assert 4) ) :method-count-assert 9 :size-assert #x2004 diff --git a/test/decompiler/reference/engine/draw/drawable-h_REF.gc b/test/decompiler/reference/engine/draw/drawable-h_REF.gc index 2da5a72b28..deb9f044e5 100644 --- a/test/decompiler/reference/engine/draw/drawable-h_REF.gc +++ b/test/decompiler/reference/engine/draw/drawable-h_REF.gc @@ -18,7 +18,7 @@ (dummy-14 () none 14) (dummy-15 (_type_) none 15) (dummy-16 (_type_ object object) object 16) - (dummy-17 () none 17) + (dummy-17 (_type_ sphere int ambient-list) none 17) ) ) diff --git a/test/decompiler/reference/engine/game/fact-h_REF.gc b/test/decompiler/reference/engine/game/fact-h_REF.gc index f67b73c6c2..a9b980840f 100644 --- a/test/decompiler/reference/engine/game/fact-h_REF.gc +++ b/test/decompiler/reference/engine/game/fact-h_REF.gc @@ -68,41 +68,39 @@ ;; definition for function pickup-type->string (defun pickup-type->string ((arg0 pickup-type)) - (let ((v1-0 arg0)) - (cond - ((= v1-0 (pickup-type eco-pill-random)) + (case arg0 + (((pickup-type eco-pill-random)) "eco-pill-random" ) - ((= v1-0 (pickup-type buzzer)) - "buzzer" - ) - ((= v1-0 (pickup-type eco-pill)) - "eco-pill" - ) - ((= v1-0 (pickup-type fuel-cell)) - "fuel-cell" - ) - ((= v1-0 (pickup-type money)) - "money" - ) - ((= v1-0 (pickup-type eco-green)) - "eco-green" - ) - ((= v1-0 (pickup-type eco-blue)) - "eco-blue" - ) - ((= v1-0 (pickup-type eco-red)) - "eco-red" - ) - ((= v1-0 (pickup-type eco-yellow)) - "eco-yellow" - ) - ((= v1-0 (pickup-type none)) - "none" - ) - (else - "*unknown*" - ) + (((pickup-type buzzer)) + "buzzer" + ) + (((pickup-type eco-pill)) + "eco-pill" + ) + (((pickup-type fuel-cell)) + "fuel-cell" + ) + (((pickup-type money)) + "money" + ) + (((pickup-type eco-green)) + "eco-green" + ) + (((pickup-type eco-blue)) + "eco-blue" + ) + (((pickup-type eco-red)) + "eco-red" + ) + (((pickup-type eco-yellow)) + "eco-yellow" + ) + (((pickup-type none)) + "none" + ) + (else + "*unknown*" ) ) ) diff --git a/test/decompiler/reference/engine/game/game-info-h_REF.gc b/test/decompiler/reference/engine/game/game-info-h_REF.gc index 126cf834a7..1323799562 100644 --- a/test/decompiler/reference/engine/game/game-info-h_REF.gc +++ b/test/decompiler/reference/engine/game/game-info-h_REF.gc @@ -200,8 +200,8 @@ (auto-save-status uint32 :offset-assert 280) (auto-save-card int32 :offset-assert 284) (auto-save-which int32 :offset-assert 288) - (pov-camera-handle uint64 :offset-assert 296) - (other-camera-handle uint64 :offset-assert 304) + (pov-camera-handle handle :offset-assert 296) + (other-camera-handle handle :offset-assert 304) (death-pos vector-array :offset-assert 312) (dummy basic :offset-assert 316) (auto-save-count int32 :offset-assert 320) diff --git a/test/decompiler/reference/engine/game/settings-h_REF.gc b/test/decompiler/reference/engine/game/settings-h_REF.gc index d0ac2a5d6f..a5d94931ef 100644 --- a/test/decompiler/reference/engine/game/settings-h_REF.gc +++ b/test/decompiler/reference/engine/game/settings-h_REF.gc @@ -7,7 +7,7 @@ (sfx-volume float :offset-assert 4) (music-volume float :offset-assert 8) (dialog-volume float :offset-assert 12) - (process-mask uint32 :offset-assert 16) + (process-mask process-mask :offset-assert 16) (common-page int32 :offset-assert 20) (language int64 :offset-assert 24) (screenx int32 :offset-assert 32) diff --git a/test/decompiler/reference/engine/game/settings_REF.gc b/test/decompiler/reference/engine/game/settings_REF.gc index 39ac63e377..77d01c1b88 100644 --- a/test/decompiler/reference/engine/game/settings_REF.gc +++ b/test/decompiler/reference/engine/game/settings_REF.gc @@ -7,126 +7,130 @@ (s4-0 (-> arg0 alive-list-end prev0)) ) (while (!= (the-as connectable conn) (-> arg0 alive-list)) - (let ((v1-1 (-> conn param0))) - (cond - ((= v1-1 'border-mode) + (case (-> conn param0) + (('border-mode) (set! (-> obj border-mode) (the-as symbol (-> conn param1))) ) - ((= v1-1 'allow-look-around) - (set! (-> obj allow-look-around) (the-as symbol (-> conn param1))) - ) - ((= v1-1 'ocean-off) - (set! (-> obj ocean-off) (the-as symbol (-> conn param1))) - ) - ((= v1-1 'music) - (set! (-> obj music) (the-as symbol (-> conn param1))) - ) - ((= v1-1 'process-mask) - (let ((v1-6 (-> conn param1))) - (cond - ((= (the-as symbol v1-6) 'set) - (set! - (-> obj process-mask) - (logior - (-> obj process-mask) - (the-as uint (the-as int (-> conn param3))) - ) - ) - ) - ((= v1-6 'clear) - (set! - (-> obj process-mask) - (logand - (-> obj process-mask) - (the-as uint (lognot (the-as uint (-> conn param3)))) - ) - ) - ) - ((= v1-6 'abs) - (set! + (('allow-look-around) + (set! (-> obj allow-look-around) (the-as symbol (-> conn param1))) + ) + (('ocean-off) + (set! (-> obj ocean-off) (the-as symbol (-> conn param1))) + ) + (('music) + (set! (-> obj music) (the-as symbol (-> conn param1))) + ) + (('process-mask) + (case (-> conn param1) + (('set) + (set! + (-> obj process-mask) + (logior (-> obj process-mask) (the-as uint (the-as int (-> conn param3))) ) ) ) - ) - ) - ((= v1-1 'sfx-volume) - (when - (or - (zero? - (logand - (-> *kernel-context* prevent-from-run) - (process-mask progress) - ) - ) - (let ((v1-18 (get-process conn)) - (a0-22 *progress-process*) - ) - (= v1-18 (if a0-22 - (-> a0-22 0 self) - ) - ) + (('clear) + (set! + (-> obj process-mask) + (logand + (-> obj process-mask) + (the-as uint (the-as uint (lognot (the-as uint (-> conn param3))))) ) ) - (let ((v1-20 (the-as symbol (-> conn param1)))) - (if (= v1-20 'rel) + ) + (('abs) + (set! + (-> obj process-mask) + (the-as process-mask (the-as int (-> conn param3))) + ) + ) + ) + ) + (('sfx-volume) + (when + (or + (zero? + (logand (-> *kernel-context* prevent-from-run) (process-mask progress)) + ) + (let ((v1-18 (get-process conn)) + (a0-22 *progress-process*) + ) + (= v1-18 (if a0-22 + (-> a0-22 0 self) + ) + ) + ) + ) + (case (the-as symbol (-> conn param1)) + (('rel) (set! (-> obj sfx-volume) (* (* 0.01 (the-as float (-> conn param2))) (-> obj sfx-volume)) ) - (set! (-> obj sfx-volume) (the-as float (-> conn param2))) ) + (else + (set! (-> obj sfx-volume) (the-as float (-> conn param2))) ) ) ) - ((= v1-1 'music-volume) - (let ((v1-25 (the-as symbol (-> conn param1)))) - (if (= v1-25 'rel) + ) + (('music-volume) + (case (the-as symbol (-> conn param1)) + (('rel) (set! (-> obj music-volume) (* (* 0.01 (the-as float (-> conn param2))) (-> obj music-volume)) ) - (set! (-> obj music-volume) (the-as float (-> conn param2))) ) + (else + (set! (-> obj music-volume) (the-as float (-> conn param2))) ) ) - ((= v1-1 'ambient-volume) - (let ((v1-30 (the-as symbol (-> conn param1)))) - (if (= v1-30 'rel) + ) + (('ambient-volume) + (case (the-as symbol (-> conn param1)) + (('rel) (set! (-> obj ambient-volume) (* (* 0.01 (the-as float (-> conn param2))) (-> obj ambient-volume)) ) - (set! (-> obj ambient-volume) (the-as float (-> conn param2))) ) + (else + (set! (-> obj ambient-volume) (the-as float (-> conn param2))) ) ) - ((= v1-1 'dialog-volume) - (let ((v1-35 (the-as symbol (-> conn param1)))) - (if (= v1-35 'rel) + ) + (('dialog-volume) + (case (the-as symbol (-> conn param1)) + (('rel) (set! (-> obj dialog-volume) (* (* 0.01 (the-as float (-> conn param2))) (-> obj dialog-volume)) ) - (set! (-> obj dialog-volume) (the-as float (-> conn param2))) ) + (else + (set! (-> obj dialog-volume) (the-as float (-> conn param2))) ) ) - ((= v1-1 'sfx-volume-movie) - (let ((v1-40 (the-as symbol (-> conn param1)))) - (if (= v1-40 'rel) + ) + (('sfx-volume-movie) + (case (the-as symbol (-> conn param1)) + (('rel) (set! (-> obj sfx-volume-movie) (* (* 0.01 (the-as float (-> conn param2))) (-> obj sfx-volume-movie)) ) - (set! (-> obj sfx-volume-movie) (the-as float (-> conn param2))) ) + (else + (set! (-> obj sfx-volume-movie) (the-as float (-> conn param2))) ) ) - ((= v1-1 'music-volume-movie) - (let ((v1-45 (the-as symbol (-> conn param1)))) - (if (= v1-45 'rel) + ) + (('music-volume-movie) + (case (the-as symbol (-> conn param1)) + (('rel) (set! (-> obj music-volume-movie) (* @@ -134,13 +138,15 @@ (-> obj music-volume-movie) ) ) - (set! (-> obj music-volume-movie) (the-as float (-> conn param2))) ) + (else + (set! (-> obj music-volume-movie) (the-as float (-> conn param2))) ) ) - ((= v1-1 'ambient-volume-movie) - (let ((v1-50 (the-as symbol (-> conn param1)))) - (if (= v1-50 'rel) + ) + (('ambient-volume-movie) + (case (the-as symbol (-> conn param1)) + (('rel) (set! (-> obj ambient-volume-movie) (* @@ -148,13 +154,15 @@ (-> obj ambient-volume-movie) ) ) - (set! (-> obj ambient-volume-movie) (the-as float (-> conn param2))) ) + (else + (set! (-> obj ambient-volume-movie) (the-as float (-> conn param2))) ) ) - ((= v1-1 'dialog-volume-hint) - (let ((v1-55 (the-as symbol (-> conn param1)))) - (if (= v1-55 'rel) + ) + (('dialog-volume-hint) + (case (the-as symbol (-> conn param1)) + (('rel) (set! (-> obj dialog-volume-hint) (* @@ -162,84 +170,83 @@ (-> obj dialog-volume-hint) ) ) - (set! (-> obj dialog-volume-hint) (the-as float (-> conn param2))) ) + (else + (set! (-> obj dialog-volume-hint) (the-as float (-> conn param2))) ) ) - ((= v1-1 'sound-flava) - (when (>= (the-as float (-> conn param2)) (-> obj sound-flava-priority)) - (set! (-> obj sound-flava) (the-as uint (the-as int (-> conn param3)))) - (set! (-> obj sound-flava-priority) (the-as float (-> conn param2))) - ) + ) + (('sound-flava) + (when (>= (the-as float (-> conn param2)) (-> obj sound-flava-priority)) + (set! (-> obj sound-flava) (the-as uint (the-as int (-> conn param3)))) + (set! (-> obj sound-flava-priority) (the-as float (-> conn param2))) ) - ((= v1-1 'bg-r) - (set! (-> obj bg-r) (the-as float (-> conn param2))) - ) - ((= v1-1 'bg-g) - (set! (-> obj bg-g) (the-as float (-> conn param2))) - ) - ((= v1-1 'bg-b) - (set! (-> obj bg-b) (the-as float (-> conn param2))) - ) - ((= v1-1 'bg-a) - (set! (-> obj bg-a) (the-as float (-> conn param2))) - ) - ((= v1-1 'bg-a-speed) - (set! (-> obj bg-a-speed) (the-as float (-> conn param2))) - ) - ((= v1-1 'bg-a-force) - (set! (-> obj bg-a-force) (the-as float (-> conn param2))) - ) - ((= v1-1 'language) - (set! (-> obj language) (the-as int (-> conn param3))) - ) - ((= v1-1 'vibration) - (set! (-> obj vibration) (the-as symbol (-> conn param1))) - ) - ((= v1-1 'auto-save) - (set! (-> obj auto-save) (the-as symbol (-> conn param1))) - ) - ((= v1-1 'allow-pause) - (set! (-> obj allow-pause) (the-as symbol (-> conn param1))) - ) - ((= v1-1 'allow-progress) - (set! (-> obj allow-progress) (the-as symbol (-> conn param1))) - ) - ((= v1-1 'play-hints) - (set! (-> obj play-hints) (the-as symbol (-> conn param1))) - ) - ((= v1-1 'movie) - (set! (-> obj movie) (the-as (pointer progress) (-> conn param1))) - ) - ((= v1-1 'talking) - (set! (-> obj talking) (the-as (pointer progress) (-> conn param1))) - ) - ((= v1-1 'spooling) - (set! (-> obj spooling) (the-as (pointer progress) (-> conn param1))) - ) - ((= v1-1 'hint) - (set! (-> obj hint) (the-as (pointer process) (-> conn param1))) - ) - ((= v1-1 'ambient) - (set! (-> obj ambient) (the-as (pointer progress) (-> conn param1))) - ) - ((= v1-1 'common-page) - (let ((v1-89 (-> conn param1))) - (cond - ((= (the-as symbol v1-89) 'set) - (set! - (-> obj common-page) - (logior (-> obj common-page) (the-as int (-> conn param3))) - ) + ) + (('bg-r) + (set! (-> obj bg-r) (the-as float (-> conn param2))) + ) + (('bg-g) + (set! (-> obj bg-g) (the-as float (-> conn param2))) + ) + (('bg-b) + (set! (-> obj bg-b) (the-as float (-> conn param2))) + ) + (('bg-a) + (set! (-> obj bg-a) (the-as float (-> conn param2))) + ) + (('bg-a-speed) + (set! (-> obj bg-a-speed) (the-as float (-> conn param2))) + ) + (('bg-a-force) + (set! (-> obj bg-a-force) (the-as float (-> conn param2))) + ) + (('language) + (set! (-> obj language) (the-as int (-> conn param3))) + ) + (('vibration) + (set! (-> obj vibration) (the-as symbol (-> conn param1))) + ) + (('auto-save) + (set! (-> obj auto-save) (the-as symbol (-> conn param1))) + ) + (('allow-pause) + (set! (-> obj allow-pause) (the-as symbol (-> conn param1))) + ) + (('allow-progress) + (set! (-> obj allow-progress) (the-as symbol (-> conn param1))) + ) + (('play-hints) + (set! (-> obj play-hints) (the-as symbol (-> conn param1))) + ) + (('movie) + (set! (-> obj movie) (the-as (pointer progress) (-> conn param1))) + ) + (('talking) + (set! (-> obj talking) (the-as (pointer progress) (-> conn param1))) + ) + (('spooling) + (set! (-> obj spooling) (the-as (pointer progress) (-> conn param1))) + ) + (('hint) + (set! (-> obj hint) (the-as (pointer process) (-> conn param1))) + ) + (('ambient) + (set! (-> obj ambient) (the-as (pointer progress) (-> conn param1))) + ) + (('common-page) + (case (-> conn param1) + (('set) + (set! + (-> obj common-page) + (logior (-> obj common-page) (the-as int (-> conn param3))) ) - ((= v1-89 'clear) - (set! - (-> obj common-page) - (logand - (-> obj common-page) - (the-as int (the-as uint (lognot (the-as uint (-> conn param3))))) - ) - ) + ) + (('clear) + (set! + (-> obj common-page) + (logand + (-> obj common-page) + (the-as int (the-as uint (lognot (the-as uint (-> conn param3))))) ) ) ) @@ -354,10 +361,7 @@ (set! (-> gp-0 dialog-volume-hint) (-> s5-0 dialog-volume-hint)) (set! (-> gp-0 process-mask) (-> s5-0 process-mask)) ) - (set! - (-> *kernel-context* prevent-from-run) - (the-as process-mask (-> gp-0 process-mask)) - ) + (set! (-> *kernel-context* prevent-from-run) (-> gp-0 process-mask)) gp-0 ) ) @@ -496,17 +500,15 @@ (set! (-> *level* border?) (-> gp-0 border-mode)) (set! (-> *texture-pool* common-page-mask) (-> gp-0 common-page)) (set! (-> *cpad-list* cpads 0 buzz) (-> gp-0 vibration)) - (let ((v1-64 (-> gp-0 ocean-off))) - (cond - ((= v1-64 #t) + (case (-> gp-0 ocean-off) + ((#t) (set! *ocean-off* #t) ) - ((= v1-64 'mid) - (set! *ocean-mid-off* #t) - ) - ((= v1-64 'near) - (set! *ocean-near-off* #t) - ) + (('mid) + (set! *ocean-mid-off* #t) + ) + (('near) + (set! *ocean-near-off* #t) ) ) gp-0 @@ -557,7 +559,7 @@ ) ) (set! (-> gp-0 language) (the-as int (scf-get-language))) - (set! (-> gp-0 process-mask) (the-as uint 65)) + (set! (-> gp-0 process-mask) (process-mask execute sleep)) (set! (-> gp-0 screenx) 0) (set! (-> gp-0 screeny) 0) (set! (-> gp-0 vibration) #t) @@ -574,9 +576,11 @@ (set! (-> gp-0 bg-a-speed) 8.0) (set! (-> gp-0 allow-pause) #t) (set! (-> gp-0 allow-progress) #t) - (let ((v1-27 (scf-get-aspect))) - (if (= v1-27 2) - (set! (-> gp-0 aspect-ratio) 'aspect16x9) + (case (scf-get-aspect) + ((2) + (set! (-> gp-0 aspect-ratio) 'aspect16x9) + ) + (else (set! (-> gp-0 aspect-ratio) 'aspect4x3) ) ) @@ -603,7 +607,3 @@ (set! (-> s5-0 ocean-off) (-> gp-0 ocean-off)) ) ) - - - - diff --git a/test/decompiler/reference/engine/game/task/hint-control_REF.gc b/test/decompiler/reference/engine/game/task/hint-control_REF.gc index 1468616f11..20ed15f73f 100644 --- a/test/decompiler/reference/engine/game/task/hint-control_REF.gc +++ b/test/decompiler/reference/engine/game/task/hint-control_REF.gc @@ -496,20 +496,15 @@ (when (and (!= gp-0 0) (nonzero? (-> gp-0 length))) (let ((s5-0 (-> *game-info* in-level-time a0-3))) (dotimes (s4-0 (-> gp-0 length)) - (let - ((v1-17 (get-task-status (the-as game-task (-> gp-0 s4-0 task))))) - (when - (or - (= v1-17 (task-status need-hint)) - (= v1-17 (task-status unknown)) - ) - (if (< (-> gp-0 s4-0 delay) s5-0) - (close-specific-task! - (the-as game-task (-> gp-0 s4-0 task)) - (task-status need-hint) + (case (get-task-status (the-as game-task (-> gp-0 s4-0 task))) + (((task-status need-hint) (task-status unknown)) + (if (< (-> gp-0 s4-0 delay) s5-0) + (close-specific-task! + (the-as game-task (-> gp-0 s4-0 task)) + (task-status need-hint) + ) ) ) - ) ) ) ) diff --git a/test/decompiler/reference/engine/game/task/task-control_REF.gc b/test/decompiler/reference/engine/game/task/task-control_REF.gc index 99414d8600..324fd81489 100644 --- a/test/decompiler/reference/engine/game/task/task-control_REF.gc +++ b/test/decompiler/reference/engine/game/task/task-control_REF.gc @@ -3,35 +3,33 @@ ;; definition (debug) for function task-status->string (defun-debug task-status->string ((arg0 task-status)) - (let ((v1-0 arg0)) - (cond - ((= v1-0 (task-status need-resolution)) + (case arg0 + (((task-status need-resolution)) "need-resolution" ) - ((= v1-0 (task-status need-reward-speech)) - "need-reward-speech" - ) - ((= v1-0 (task-status need-reminder)) - "need-reminder" - ) - ((= v1-0 (task-status need-reminder-a)) - "need-reminder-a" - ) - ((= v1-0 (task-status need-introduction)) - "need-introduction" - ) - ((= v1-0 (task-status need-hint)) - "need-hint" - ) - ((= v1-0 (task-status unknown)) - "unknown" - ) - ((= v1-0 (task-status invalid)) - "invalid" - ) - (else - "*unknown*" - ) + (((task-status need-reward-speech)) + "need-reward-speech" + ) + (((task-status need-reminder)) + "need-reminder" + ) + (((task-status need-reminder-a)) + "need-reminder-a" + ) + (((task-status need-introduction)) + "need-introduction" + ) + (((task-status need-hint)) + "need-hint" + ) + (((task-status unknown)) + "unknown" + ) + (((task-status invalid)) + "invalid" + ) + (else + "*unknown*" ) ) ) @@ -5490,17 +5488,17 @@ ;; definition for function task-known? (defun task-known? ((arg0 game-task)) - (let ((v1-0 (get-task-status arg0))) - (if - (or - (= v1-0 (task-status need-reward-speech)) - (= v1-0 (task-status need-introduction)) - (= v1-0 (task-status need-reminder)) - (= v1-0 (task-status need-reminder-a)) - (= v1-0 (task-status need-resolution)) - (= v1-0 (task-status invalid)) + (case (get-task-status arg0) + (((task-status need-reward-speech) + (task-status need-introduction) + (task-status need-reminder) + (task-status need-reminder-a) + (task-status need-resolution) + (task-status invalid) + ) + #t ) - #t + (else #f ) ) diff --git a/test/decompiler/reference/engine/game/video_REF.gc b/test/decompiler/reference/engine/game/video_REF.gc index e93bd5ae72..40b8bcc0de 100644 --- a/test/decompiler/reference/engine/game/video_REF.gc +++ b/test/decompiler/reference/engine/game/video_REF.gc @@ -4,9 +4,8 @@ ;; definition for function set-video-mode ;; INFO: Return type mismatch int vs none. (defun set-video-mode ((arg0 symbol)) - (let ((v1-0 arg0)) - (cond - ((= v1-0 'ntsc) + (case arg0 + (('ntsc) (set! (-> *video-parms* screen-sy) 224) (set! (-> *setting-control* default screenx) 0) (set! (-> *setting-control* default screeny) 8) @@ -18,18 +17,17 @@ (set! (-> *math-camera* y-clip) 448.0) (set! (-> *shadow-data* texoffset y) 112.5) ) - ((= v1-0 'pal) - (set! (-> *video-parms* screen-sy) 256) - (set! (-> *setting-control* default screenx) 0) - (set! (-> *setting-control* default screeny) 24) - (set! (-> *video-parms* screen-pages-high) 8) - (set! (-> *video-parms* relative-y-scale) 1.1428572) - (set! *ticks-per-frame* #x2dc6) - (set! (-> *math-camera* isometric vector 1 y) 0.4375) - (set! (-> *math-camera* y-pix) 128.0) - (set! (-> *math-camera* y-clip) 512.0) - (set! (-> *shadow-data* texoffset y) 128.5) - ) + (('pal) + (set! (-> *video-parms* screen-sy) 256) + (set! (-> *setting-control* default screenx) 0) + (set! (-> *setting-control* default screeny) 24) + (set! (-> *video-parms* screen-pages-high) 8) + (set! (-> *video-parms* relative-y-scale) 1.1428572) + (set! *ticks-per-frame* #x2dc6) + (set! (-> *math-camera* isometric vector 1 y) 0.4375) + (set! (-> *math-camera* y-pix) 128.0) + (set! (-> *math-camera* y-clip) 512.0) + (set! (-> *shadow-data* texoffset y) 128.5) ) ) (set-time-ratios *display* (-> *display* time-ratio)) @@ -70,16 +68,14 @@ ;; definition for function set-aspect-ratio ;; INFO: Return type mismatch int vs none. (defun set-aspect-ratio ((arg0 symbol)) - (let ((v1-0 arg0)) - (cond - ((= v1-0 'aspect4x3) + (case arg0 + (('aspect4x3) (set! (-> *video-parms* relative-x-scale) 1.0) (set! (-> *video-parms* relative-x-scale-reciprical) 1.0) ) - ((= v1-0 'aspect16x9) - (set! (-> *video-parms* relative-x-scale) 0.75) - (set! (-> *video-parms* relative-x-scale-reciprical) 1.3333334) - ) + (('aspect16x9) + (set! (-> *video-parms* relative-x-scale) 0.75) + (set! (-> *video-parms* relative-x-scale-reciprical) 1.3333334) ) ) (set! diff --git a/test/decompiler/reference/engine/geometry/geometry_REF.gc b/test/decompiler/reference/engine/geometry/geometry_REF.gc index deed2f32f7..d75885a9ca 100644 --- a/test/decompiler/reference/engine/geometry/geometry_REF.gc +++ b/test/decompiler/reference/engine/geometry/geometry_REF.gc @@ -1407,10 +1407,6 @@ ;; definition for function curve-closest-point ;; WARN: Stack slot offset 48 signed mismatch ;; WARN: Stack slot offset 48 signed mismatch -;; WARN: Stack slot offset 48 signed mismatch -;; WARN: Stack slot offset 48 signed mismatch -;; WARN: Stack slot offset 48 signed mismatch -;; WARN: Stack slot offset 48 signed mismatch (defun curve-closest-point ((arg0 curve) (arg1 vector) (arg2 float) (arg3 float) (arg4 int) (arg5 float)) diff --git a/test/decompiler/reference/engine/gfx/generic/generic_REF.gc b/test/decompiler/reference/engine/gfx/generic/generic_REF.gc index 31460cd91b..bd3048af6e 100644 --- a/test/decompiler/reference/engine/gfx/generic/generic_REF.gc +++ b/test/decompiler/reference/engine/gfx/generic/generic_REF.gc @@ -128,7 +128,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - s3-0 + (the-as bucket-id s3-0) s2-0 (the-as (pointer dma-tag) a3-0) ) diff --git a/test/decompiler/reference/engine/gfx/hw/display_REF.gc b/test/decompiler/reference/engine/gfx/hw/display_REF.gc index c279a51534..0c095fd9ac 100644 --- a/test/decompiler/reference/engine/gfx/hw/display_REF.gc +++ b/test/decompiler/reference/engine/gfx/hw/display_REF.gc @@ -15,20 +15,18 @@ (defmethod set-time-ratios display ((obj display) (slowdown float)) (let ((ratio (fmin 4.0 slowdown))) (set! (-> obj time-ratio) ratio) - (let ((v1-0 (get-video-mode))) - (cond - ((= v1-0 'pal) + (case (get-video-mode) + (('pal) (set! (-> obj time-adjust-ratio) (* 1.2 ratio)) (set! (-> obj seconds-per-frame) (* 0.02 ratio)) (set! (-> obj frames-per-second) (* 50.0 (/ 1.0 ratio))) (set! (-> obj time-factor) 6.0) ) - (else - (set! (-> obj time-adjust-ratio) ratio) - (set! (-> obj seconds-per-frame) (* 0.016666668 ratio)) - (set! (-> obj frames-per-second) (* 60.0 (/ 1.0 ratio))) - (set! (-> obj time-factor) 5.0) - ) + (else + (set! (-> obj time-adjust-ratio) ratio) + (set! (-> obj seconds-per-frame) (* 0.016666668 ratio)) + (set! (-> obj frames-per-second) (* 60.0 (/ 1.0 ratio))) + (set! (-> obj time-factor) 5.0) ) ) ) diff --git a/test/decompiler/reference/engine/gfx/hw/gs_REF.gc b/test/decompiler/reference/engine/gfx/hw/gs_REF.gc index 47c79d429b..bcd3da3df8 100644 --- a/test/decompiler/reference/engine/gfx/hw/gs_REF.gc +++ b/test/decompiler/reference/engine/gfx/hw/gs_REF.gc @@ -77,50 +77,48 @@ ;; definition for function psm->string (defun psm->string ((arg0 gs-psm)) - (let ((v1-0 arg0)) - (cond - ((= v1-0 (gs-psm mz16s)) + (case arg0 + (((gs-psm mz16s)) "mz16s" ) - ((= v1-0 (gs-psm mz16)) - "mz16" - ) - ((= v1-0 (gs-psm mz24)) - "mz24" - ) - ((= v1-0 (gs-psm mz32)) - "mz32" - ) - ((= v1-0 (gs-psm mt4hh)) - "mt4hh" - ) - ((= v1-0 (gs-psm mt4hl)) - "mt4hl" - ) - ((= v1-0 (gs-psm mt8h)) - "mt8h" - ) - ((= v1-0 (gs-psm mt4)) - "mt4" - ) - ((= v1-0 (gs-psm mt8)) - "mt8" - ) - ((= v1-0 (gs-psm ct16s)) - "ct16s" - ) - ((= v1-0 (gs-psm ct16)) - "ct16" - ) - ((= v1-0 (gs-psm ct24)) - "ct24" - ) - ((= v1-0 (gs-psm ct32)) - "ct32" - ) - (else - "*unknown*" - ) + (((gs-psm mz16)) + "mz16" + ) + (((gs-psm mz24)) + "mz24" + ) + (((gs-psm mz32)) + "mz32" + ) + (((gs-psm mt4hh)) + "mt4hh" + ) + (((gs-psm mt4hl)) + "mt4hl" + ) + (((gs-psm mt8h)) + "mt8h" + ) + (((gs-psm mt4)) + "mt4" + ) + (((gs-psm mt8)) + "mt8" + ) + (((gs-psm ct16s)) + "ct16s" + ) + (((gs-psm ct16)) + "ct16" + ) + (((gs-psm ct24)) + "ct24" + ) + (((gs-psm ct32)) + "ct32" + ) + (else + "*unknown*" ) ) ) diff --git a/test/decompiler/reference/engine/gfx/ocean/ocean-h_REF.gc b/test/decompiler/reference/engine/gfx/ocean/ocean-h_REF.gc index b4c9ab9974..ac1514b302 100644 --- a/test/decompiler/reference/engine/gfx/ocean/ocean-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/ocean/ocean-h_REF.gc @@ -112,6 +112,7 @@ ((mask uint8 8 :offset-assert 0) (dword uint64 :offset 0) ) + :pack-me :method-count-assert 9 :size-assert #x8 :flag-assert #x900000008 @@ -120,7 +121,7 @@ ;; definition for method 3 of type ocean-mid-mask (defmethod inspect ocean-mid-mask ((obj ocean-mid-mask)) (format #t "[~8x] ~A~%" obj 'ocean-mid-mask) - (format #t "~Tmask[8] @ #x~X~%" (-> obj mask)) + (format #t "~Tmask[8] @ #x~X~%" (&-> obj dword)) (format #t "~Tdword: #x~X~%" (-> obj dword)) obj ) @@ -143,7 +144,7 @@ ;; definition of type ocean-mid-masks (deftype ocean-mid-masks (basic) - ((data uint32 :offset-assert 4) + ((data (inline-array ocean-mid-mask) :offset-assert 4) ) :pack-me :method-count-assert 9 @@ -198,7 +199,7 @@ ;; definition of type ocean-trans-indices (deftype ocean-trans-indices (basic) - ((data uint32 2304 :offset-assert 4) + ((data ocean-trans-index 2304 :inline :offset-assert 4) ) :method-count-assert 9 :size-assert #x2404 @@ -230,7 +231,7 @@ ;; definition of type ocean-near-indices (deftype ocean-near-indices (basic) - ((data uint32 :offset-assert 4) + ((data (inline-array ocean-near-index) :offset-assert 4) ) :method-count-assert 9 :size-assert #x8 diff --git a/test/decompiler/reference/engine/gfx/texture-h_REF.gc b/test/decompiler/reference/engine/gfx/texture-h_REF.gc index a4a6cff202..5e89638eb9 100644 --- a/test/decompiler/reference/engine/gfx/texture-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/texture-h_REF.gc @@ -74,7 +74,7 @@ (dummy-18 () none 18) (dummy-19 () none 19) (unload! (_type_ texture-page) int 20) - (upload-one-common! (_type_) symbol 21) + (upload-one-common! (_type_ level) symbol 21) (lookup-boot-common-id (_type_ int) int 22) ) ) diff --git a/test/decompiler/reference/engine/gfx/texture_REF.gc b/test/decompiler/reference/engine/gfx/texture_REF.gc index 131469eb94..c896bd8458 100644 --- a/test/decompiler/reference/engine/gfx/texture_REF.gc +++ b/test/decompiler/reference/engine/gfx/texture_REF.gc @@ -1007,7 +1007,7 @@ (segment texture-pool-segment) (page texture-page) (mode int) - (bucket-idx int) + (bucket-idx bucket-id) ) (local-vars (tex-data pointer) @@ -1249,7 +1249,7 @@ ((pool texture-pool) (segment texture-pool-segment) (page texture-page) - (bucket-idx int) + (bucket-idx bucket-id) (allow-cache-mask int) ) (local-vars @@ -1445,7 +1445,7 @@ ) ) (set! (-> *texture-pool* allocate-func) texture-page-common-allocate) - (set! (-> *level* unknown-level-2 code-memory-end) (the-as pointer page)) + (set! (-> *level* loading-level code-memory-end) (the-as pointer page)) page ) @@ -1485,7 +1485,7 @@ ) ) (set! (-> *texture-pool* allocate-func) texture-page-common-allocate) - (set! (-> *level* unknown-level-2 code-memory-end) (the-as pointer page)) + (set! (-> *level* loading-level code-memory-end) (the-as pointer page)) page ) @@ -1500,7 +1500,7 @@ (set! (-> pool common-page common-id) page) ) (else - (let ((level-idx (-> *level* unknown-level-2 index))) + (let ((level-idx (-> *level* loading-level index))) (cond ((zero? level-idx) (texture-page-near-allocate-0 pool page heap mode) @@ -1771,7 +1771,13 @@ (-> level upload-size 0) (+ (-> level upload-size 0) - (upload-vram-pages obj (-> obj segment-near) tfrag-page 2 tfrag-bucket) + (upload-vram-pages + obj + (-> obj segment-near) + tfrag-page + 2 + (the-as bucket-id tfrag-bucket) + ) ) ) ) @@ -1788,7 +1794,7 @@ (-> obj segment-common) tfrag-page 0 - tfrag-bucket + (the-as bucket-id tfrag-bucket) ) ) ) @@ -1803,7 +1809,7 @@ (-> obj segment-common) tfrag-page -2 - tfrag-bucket + (the-as bucket-id tfrag-bucket) ) ) ) @@ -1828,7 +1834,7 @@ obj (-> obj segment-common) pris-page - pris-bucket + (the-as bucket-id pris-bucket) (the-as int (-> level texture-mask 7)) ) ) @@ -1869,7 +1875,7 @@ (-> obj segment-common) shrub-page shrub-mode - shrub-bucket + (the-as bucket-id shrub-bucket) ) ) ) @@ -1913,7 +1919,7 @@ (-> obj segment-common) alpha-page alpha-mode - alpha-bucket + (the-as bucket-id alpha-bucket) ) ) ) @@ -1935,7 +1941,7 @@ obj (-> obj segment-common) water-page - water-bucket + (the-as bucket-id water-bucket) (the-as int (-> level texture-mask 8)) ) ) @@ -1948,7 +1954,7 @@ ) ;; definition for method 21 of type texture-pool -(defmethod upload-one-common! texture-pool ((obj texture-pool)) +(defmethod upload-one-common! texture-pool ((obj texture-pool) (arg0 level)) (dotimes (v1-0 32) (let ((a2-0 (-> obj common-page v1-0))) (when @@ -1956,7 +1962,13 @@ (nonzero? a2-0) (nonzero? (logand (-> obj common-page-mask) (ash 1 v1-0))) ) - (upload-vram-pages obj (-> obj segment-common) a2-0 -2 65) + (upload-vram-pages + obj + (-> obj segment-common) + a2-0 + -2 + (bucket-id bucket-65) + ) (return #f) ) ) @@ -1996,7 +2008,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 5 + (bucket-id tfrag-tex0) a2-0 (the-as (pointer dma-tag) a3-3) ) @@ -2029,7 +2041,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 48 + (bucket-id pris-tex0) a2-1 (the-as (pointer dma-tag) a3-7) ) @@ -2062,7 +2074,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 19 + (bucket-id shrub-tex0) a2-2 (the-as (pointer dma-tag) a3-11) ) @@ -2095,7 +2107,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 31 + (bucket-id alpha-tex0) a2-3 (the-as (pointer dma-tag) a3-15) ) @@ -2130,7 +2142,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 12 + (bucket-id tfrag-tex1) a2-4 (the-as (pointer dma-tag) a3-19) ) @@ -2163,7 +2175,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 51 + (bucket-id pris-tex1) a2-5 (the-as (pointer dma-tag) a3-23) ) @@ -2196,7 +2208,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 25 + (bucket-id shrub-tex1) a2-6 (the-as (pointer dma-tag) a3-27) ) @@ -2229,7 +2241,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - 38 + (bucket-id alpha-tex1) a2-7 (the-as (pointer dma-tag) a3-31) ) @@ -2678,17 +2690,6 @@ ;; WARN: Stack slot offset 20 signed mismatch ;; WARN: Stack slot offset 16 signed mismatch ;; WARN: Stack slot offset 16 signed mismatch -;; WARN: Stack slot offset 20 signed mismatch -;; WARN: Stack slot offset 20 signed mismatch -;; WARN: Stack slot offset 20 signed mismatch -;; WARN: Stack slot offset 20 signed mismatch -;; WARN: Stack slot offset 16 signed mismatch -;; WARN: Stack slot offset 16 signed mismatch -;; WARN: Stack slot offset 20 signed mismatch -;; WARN: Stack slot offset 20 signed mismatch -;; WARN: Stack slot offset 20 signed mismatch -;; WARN: Stack slot offset 20 signed mismatch -;; WARN: Stack slot offset 16 signed mismatch ;; WARN: Stack slot offset 16 signed mismatch ;; INFO: Return type mismatch int vs none. (defmethod setup-font-texture! texture-pool ((obj texture-pool)) @@ -2970,7 +2971,7 @@ (set! obj (the-as texture-page #f)) ) ((begin - (let ((v1-2 (-> *level* unknown-level-2))) + (let ((v1-2 (-> *level* loading-level))) (when v1-2 (set! (-> v1-2 loaded-texture-page (-> v1-2 loaded-texture-page-count)) @@ -3259,17 +3260,19 @@ ;; definition for function adgif-shader-update! ;; INFO: Return type mismatch gs-tex1 vs none. (defun adgif-shader-update! ((arg0 adgif-shader) (arg1 texture)) - (let ((s5-0 (the int (/ 256.0 (-> arg1 uv-dist)))) - (v1-2 (-> arg0 tex1 l)) - ) - (if (= v1-2 1) - (set! - (-> arg0 tex1 k) - (+ (+ (logand (ash s5-0 (- 5 (log2 s5-0))) 31) -350) (* (log2 s5-0) 32)) - ) - (set! - (-> arg0 tex1 k) - (+ (+ (logand (ash s5-0 (- 4 (log2 s5-0))) 15) -175) (* (log2 s5-0) 16)) + (let ((s5-0 (the int (/ 256.0 (-> arg1 uv-dist))))) + (case (-> arg0 tex1 l) + ((1) + (set! + (-> arg0 tex1 k) + (+ (+ (logand (ash s5-0 (- 5 (log2 s5-0))) 31) -350) (* (log2 s5-0) 32)) + ) + ) + (else + (set! + (-> arg0 tex1 k) + (+ (+ (logand (ash s5-0 (- 4 (log2 s5-0))) 15) -175) (* (log2 s5-0) 16)) + ) ) ) ) @@ -3706,7 +3709,3 @@ ;; definition for symbol *texture-pool*, type texture-pool (define *texture-pool* (new 'global 'texture-pool)) - - - - diff --git a/test/decompiler/reference/engine/gfx/tfrag/tfrag-h_REF.gc b/test/decompiler/reference/engine/gfx/tfrag/tfrag-h_REF.gc index 806dacfed0..7d56ee9893 100644 --- a/test/decompiler/reference/engine/gfx/tfrag/tfrag-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/tfrag/tfrag-h_REF.gc @@ -64,7 +64,7 @@ (dma-level-0 uint32 :offset 32) (dma-base uint32 :offset 36) (dma-level-1 uint32 :offset 40) - (dma-qwc uint32 4 :offset-assert 44) + (dma-qwc uint32 4 :offset 44) (shader uint32 :offset 48) (num-shaders uint8 :offset 52) (num-base-colors uint8 :offset 53) @@ -135,7 +135,8 @@ ;; definition of type drawable-tree-tfrag (deftype drawable-tree-tfrag (drawable-tree) - () + ((time-of-day-pal time-of-day-palette :offset 12) + ) :method-count-assert 18 :size-assert #x24 :flag-assert #x1200000024 diff --git a/test/decompiler/reference/engine/gfx/vis/bsp-h_REF.gc b/test/decompiler/reference/engine/gfx/vis/bsp-h_REF.gc index 369f34c3aa..3592834ca7 100644 --- a/test/decompiler/reference/engine/gfx/vis/bsp-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/vis/bsp-h_REF.gc @@ -37,7 +37,7 @@ (unk-data-0-len int32 :offset-assert 56) (unk-data-1 pointer :offset-assert 60) (unk-data-1-len int32 :offset-assert 64) - (unk-zero-0 uint32 :offset-assert 68) + (unk-zero-0 basic :offset-assert 68) (name symbol :offset-assert 72) (nickname symbol :offset-assert 76) (vis-info level-vis-info 8 :offset-assert 80) diff --git a/test/decompiler/reference/engine/level/level-h_REF.gc b/test/decompiler/reference/engine/level/level-h_REF.gc index 7b33006f5a..61baaa0716 100644 --- a/test/decompiler/reference/engine/level/level-h_REF.gc +++ b/test/decompiler/reference/engine/level/level-h_REF.gc @@ -190,7 +190,7 @@ (add-irq-to-tex-buckets! (_type_) none 11) (unload! (_type_) _type_ 12) (bsp-name (_type_) symbol 13) - (dummy-14 (_type_ object) none 14) + (dummy-14 (_type_ object) memory-usage-block 14) (dummy-15 (_type_ vector) symbol 15) (dummy-16 (_type_) none 16) (load-continue (_type_) _type_ 17) @@ -269,8 +269,8 @@ ;; definition of type level-group (deftype level-group (basic) ((length int32 :offset-assert 4) - (unknown-level-1 level :offset-assert 8) - (unknown-level-2 level :offset-assert 12) + (log-in-level level :offset-assert 8) + (loading-level level :offset-assert 12) (entity-link entity-links :offset-assert 16) (border? basic :offset-assert 20) (vis? basic :offset-assert 24) @@ -295,7 +295,7 @@ (level-get-for-use (_type_ symbol symbol) level 11) (activate-levels! (_type_) int 12) (dummy-13 () none 13) - (dummy-14 () none 14) + (dummy-14 (_type_ object) none 14) (dummy-15 () none 15) (dummy-16 (_type_) int 16) (level-get-target-inside (_type_) level 17) @@ -336,8 +336,8 @@ *level* (new 'static 'level-group :length 2 - :unknown-level-1 #f - :unknown-level-2 #f + :log-in-level #f + :loading-level #f :entity-link #f :border? #f :want-level #f diff --git a/test/decompiler/reference/engine/load/file-io_REF.gc b/test/decompiler/reference/engine/load/file-io_REF.gc index db54da4a18..407e9ad403 100644 --- a/test/decompiler/reference/engine/load/file-io_REF.gc +++ b/test/decompiler/reference/engine/load/file-io_REF.gc @@ -156,20 +156,15 @@ ((info file-info) (kind file-kind) (version-override int)) (let* ((expected-version (cond ((zero? version-override) - (let ((v1-0 kind)) - (cond - ((or - (= v1-0 (file-kind tpage)) - (= v1-0 (file-kind dir-tpage)) - ) + (case kind + (((file-kind tpage) (file-kind dir-tpage)) 7 ) - ((= v1-0 (file-kind level-bt)) - 30 - ) - ((= v1-0 (file-kind art-group)) - 6 - ) + (((file-kind level-bt)) + 30 + ) + (((file-kind art-group)) + 6 ) ) ) diff --git a/test/decompiler/reference/engine/target/joint-mod-h_REF.gc b/test/decompiler/reference/engine/target/joint-mod-h_REF.gc index c9c1065de2..b89f9128c5 100644 --- a/test/decompiler/reference/engine/target/joint-mod-h_REF.gc +++ b/test/decompiler/reference/engine/target/joint-mod-h_REF.gc @@ -112,41 +112,39 @@ joint-mod ((obj joint-mod) (handler-mode joint-mod-handler-mode)) (set! (-> obj mode) handler-mode) - (let ((joint (-> obj joint)) - (mode handler-mode) - ) - (cond - ((= mode (joint-mod-handler-mode flex-blend)) - (set! (-> joint param0) #f) - (set! (-> joint param1) #f) - (set! (-> joint param2) #f) - (set! (-> obj blend) 0.0) - (set! (-> obj flex-blend) 1.0) - ) - ((= mode (joint-mod-handler-mode reset)) + (let ((joint (-> obj joint))) + (case handler-mode + (((joint-mod-handler-mode flex-blend)) + (set! (-> joint param0) #f) + (set! (-> joint param1) #f) + (set! (-> joint param2) #f) + (set! (-> obj blend) 0.0) + (set! (-> obj flex-blend) 1.0) + ) + (((joint-mod-handler-mode reset)) (set! (-> joint param0) #f) (set! (-> joint param1) #f) (set! (-> joint param2) #f) (set! (-> obj blend) 0.0) (set! (-> obj shutting-down?) #f) ) - ((= mode (joint-mod-handler-mode look-at)) + (((joint-mod-handler-mode look-at)) (set! (-> joint param0) joint-mod-look-at-handler) (set! (-> joint param1) obj) (set! (-> joint param2) #f) ) - ((= mode (joint-mod-handler-mode world-look-at)) + (((joint-mod-handler-mode world-look-at)) (set! (-> joint param0) joint-mod-world-look-at-handler) (set! (-> joint param1) obj) (set! (-> joint param2) #f) ) - ((= mode (joint-mod-handler-mode rotate)) + (((joint-mod-handler-mode rotate)) (set! (-> joint param0) joint-mod-rotate-handler) (set! (-> joint param1) obj) (set! (-> joint param2) #f) (set! (-> obj blend) 1.0) ) - ((= mode (joint-mod-handler-mode joint-set)) + (((joint-mod-handler-mode joint-set)) (set! (-> joint param0) joint-mod-joint-set-handler) (set! (-> joint param1) obj) (set! (-> joint param2) #f) @@ -160,7 +158,7 @@ ) (set! (-> obj max-dist) (the-as float #f)) ) - ((= mode (joint-mod-handler-mode joint-set*)) + (((joint-mod-handler-mode joint-set*)) (set! (-> joint param0) joint-mod-joint-set*-handler) (set! (-> joint param1) obj) (set! (-> joint param2) #f) diff --git a/test/decompiler/reference/engine/target/pat-h_REF.gc b/test/decompiler/reference/engine/target/pat-h_REF.gc index ace4daf1c3..7144b53b67 100644 --- a/test/decompiler/reference/engine/target/pat-h_REF.gc +++ b/test/decompiler/reference/engine/target/pat-h_REF.gc @@ -35,132 +35,126 @@ ;; definition (debug) for function pat-material->string (defun-debug pat-material->string ((arg0 pat-surface)) - (let ((v1-1 (-> arg0 material))) - (cond - ((= v1-1 (pat-material neutral)) + (case (-> arg0 material) + (((pat-material neutral)) "neutral" ) - ((= v1-1 (pat-material rotate)) - "rotate" - ) - ((= v1-1 (pat-material stopproj)) - "stopproj" - ) - ((= v1-1 (pat-material swamp)) - "swamp" - ) - ((= v1-1 (pat-material tube)) - "tube" - ) - ((= v1-1 (pat-material straw)) - "straw" - ) - ((= v1-1 (pat-material metal)) - "metal" - ) - ((= v1-1 (pat-material dirt)) - "dirt" - ) - ((= v1-1 (pat-material gravel)) - "gravel" - ) - ((= v1-1 (pat-material crwood)) - "crwood" - ) - ((= v1-1 (pat-material lava)) - "lava" - ) - ((= v1-1 (pat-material hotcoals)) - "hotcoals" - ) - ((= v1-1 (pat-material deepsnow)) - "deepsnow" - ) - ((= v1-1 (pat-material snow)) - "snow" - ) - ((= v1-1 (pat-material pcmetal)) - "pcmetal" - ) - ((= v1-1 (pat-material grass)) - "grass" - ) - ((= v1-1 (pat-material wood)) - "wood" - ) - ((= v1-1 (pat-material sand)) - "sand" - ) - ((= v1-1 (pat-material tar)) - "tar" - ) - ((= v1-1 (pat-material waterbottom)) - "waterbottom" - ) - ((= v1-1 (pat-material quicksand)) - "quicksand" - ) - ((= v1-1 (pat-material ice)) - "ice" - ) - ((= v1-1 (pat-material stone)) - "stone" - ) - (else - "*unknown*" - ) + (((pat-material rotate)) + "rotate" + ) + (((pat-material stopproj)) + "stopproj" + ) + (((pat-material swamp)) + "swamp" + ) + (((pat-material tube)) + "tube" + ) + (((pat-material straw)) + "straw" + ) + (((pat-material metal)) + "metal" + ) + (((pat-material dirt)) + "dirt" + ) + (((pat-material gravel)) + "gravel" + ) + (((pat-material crwood)) + "crwood" + ) + (((pat-material lava)) + "lava" + ) + (((pat-material hotcoals)) + "hotcoals" + ) + (((pat-material deepsnow)) + "deepsnow" + ) + (((pat-material snow)) + "snow" + ) + (((pat-material pcmetal)) + "pcmetal" + ) + (((pat-material grass)) + "grass" + ) + (((pat-material wood)) + "wood" + ) + (((pat-material sand)) + "sand" + ) + (((pat-material tar)) + "tar" + ) + (((pat-material waterbottom)) + "waterbottom" + ) + (((pat-material quicksand)) + "quicksand" + ) + (((pat-material ice)) + "ice" + ) + (((pat-material stone)) + "stone" + ) + (else + "*unknown*" ) ) ) ;; definition (debug) for function pat-mode->string (defun-debug pat-mode->string ((arg0 pat-surface)) - (let ((v1-1 (-> arg0 mode))) - (cond - ((= v1-1 (pat-mode obstacle)) + (case (-> arg0 mode) + (((pat-mode obstacle)) "obstacle" ) - ((= v1-1 (pat-mode wall)) - "wall" - ) - ((= v1-1 (pat-mode ground)) - "ground" - ) - (else - "*unknown*" - ) + (((pat-mode wall)) + "wall" + ) + (((pat-mode ground)) + "ground" + ) + (else + "*unknown*" ) ) ) ;; definition (debug) for function pat-event->string (defun-debug pat-event->string ((arg0 pat-surface)) - (let ((v1-1 (-> arg0 event))) - (cond - ((= v1-1 (pat-event melt)) + (case (-> arg0 event) + (((pat-event melt)) "melt" ) - ((= v1-1 (pat-event burnup)) - "burnup" - ) - ((= v1-1 (pat-event deadlyup)) - "deadlyup" - ) - ((= v1-1 (pat-event burn)) - "burn" - ) - ((= v1-1 (pat-event endlessfall)) - "endlessfall" - ) - ((= v1-1 (pat-event deadly)) - "deadly" - ) - ((= v1-1 (pat-event none)) - "none" - ) - (else - "*unknown*" - ) + (((pat-event burnup)) + "burnup" + ) + (((pat-event deadlyup)) + "deadlyup" + ) + (((pat-event burn)) + "burn" + ) + (((pat-event endlessfall)) + "endlessfall" + ) + (((pat-event deadly)) + "deadly" + ) + (((pat-event none)) + "none" + ) + (else + "*unknown*" ) ) ) diff --git a/test/decompiler/reference/engine/ui/credits_REF.gc b/test/decompiler/reference/engine/ui/credits_REF.gc index cedfe5fde0..43286e566f 100644 --- a/test/decompiler/reference/engine/ui/credits_REF.gc +++ b/test/decompiler/reference/engine/ui/credits_REF.gc @@ -124,14 +124,12 @@ (s3-0 (lookup-text! *common-text* (the-as game-text-id s2-0) #t)) ) (when (= s2-0 3841) - (let ((v1-18 (scf-get-territory))) - (cond - ((= v1-18 1) + (case (scf-get-territory) + ((1) (set! s3-0 (lookup-text! *common-text* (game-text-id europe) #t)) ) - ((= v1-18 2) - (set! s3-0 (lookup-text! *common-text* (game-text-id inc) #t)) - ) + ((2) + (set! s3-0 (lookup-text! *common-text* (game-text-id inc) #t)) ) ) ) diff --git a/test/decompiler/reference/engine/ui/progress-h_REF.gc b/test/decompiler/reference/engine/ui/progress-h_REF.gc index dbbc7954b3..7c85c1828b 100644 --- a/test/decompiler/reference/engine/ui/progress-h_REF.gc +++ b/test/decompiler/reference/engine/ui/progress-h_REF.gc @@ -181,7 +181,7 @@ (dummy-17 () none 17) (dummy-18 () none 18) (dummy-19 () none 19) - (dummy-20 () none 20) + (hidden? (_type_) symbol 20) (dummy-21 () none 21) (dummy-22 () none 22) (TODO-RENAME-23 (_type_ symbol symbol) none 23) diff --git a/test/decompiler/reference/kernel/gkernel_REF.gc b/test/decompiler/reference/kernel/gkernel_REF.gc index badd604ae2..cdb2dc810e 100644 --- a/test/decompiler/reference/kernel/gkernel_REF.gc +++ b/test/decompiler/reference/kernel/gkernel_REF.gc @@ -1347,106 +1347,101 @@ 0 ) (execute-process-tree *active-pool* (lambda ((arg0 process)) - (let ((s5-0 *kernel-context*) - (v1-0 (-> arg0 status)) - ) - (cond - ((or - (= v1-0 'waiting-to-run) - (= v1-0 'suspended) - ) - (set! (-> s5-0 current-process) arg0) - (cond - ((nonzero? - (logand - (-> arg0 mask) - (process-mask pause) - ) - ) - (set! *stdcon* *stdcon1*) - (set! *debug-draw-pauseable* #t) - ) - (else - (set! *stdcon* *stdcon0*) - (set! *debug-draw-pauseable* #f) - ) - ) - (when (-> arg0 trans-hook) - (let - ((s4-0 - (new - 'process - 'cpu-thread - arg0 - 'trans - 256 - (-> arg0 main-thread stack-top) + (let ((s5-0 *kernel-context*)) + (case (-> arg0 status) + (('waiting-to-run 'suspended) + (set! (-> s5-0 current-process) arg0) + (cond + ((nonzero? + (logand + (-> arg0 mask) + (process-mask pause) ) ) + (set! *stdcon* *stdcon1*) + (set! *debug-draw-pauseable* #t) ) - (reset-and-call - s4-0 - (-> arg0 trans-hook) - ) - (delete s4-0) - ) - (when (= (-> arg0 status) 'dead) - (set! (-> s5-0 current-process) #f) - (return 'dead) - ) - ) - (if - (nonzero? - (logand - (-> arg0 mask) - (process-mask sleep-code) + (else + (set! *stdcon* *stdcon0*) + (set! *debug-draw-pauseable* #f) ) ) - (set! (-> arg0 status) 'suspended) - ((-> arg0 main-thread resume-hook) - (-> arg0 main-thread) - ) - ) - (cond - ((= (-> arg0 status) 'dead) - (set! (-> s5-0 current-process) #f) - 'dead - ) - (else - (when (-> arg0 post-hook) - (let - ((s4-1 - (new - 'process - 'cpu-thread - arg0 - 'post - 256 - (&-> *dram-stack* 14336) - ) + (when (-> arg0 trans-hook) + (let + ((s4-0 + (new + 'process + 'cpu-thread + arg0 + 'trans + 256 + (-> arg0 main-thread stack-top) ) ) - (reset-and-call - s4-1 - (-> arg0 post-hook) - ) - (delete s4-1) ) - (when (= (-> arg0 status) 'dead) - (set! - (-> s5-0 current-process) - #f - ) - (return 'dead) + (reset-and-call + s4-0 + (-> arg0 trans-hook) ) - (set! (-> arg0 status) 'suspended) + (delete s4-0) + ) + (when (= (-> arg0 status) 'dead) + (set! (-> s5-0 current-process) #f) + (return 'dead) + ) + ) + (if + (nonzero? + (logand + (-> arg0 mask) + (process-mask sleep-code) + ) + ) + (set! (-> arg0 status) 'suspended) + ((-> arg0 main-thread resume-hook) + (-> arg0 main-thread) + ) + ) + (cond + ((= (-> arg0 status) 'dead) + (set! (-> s5-0 current-process) #f) + 'dead + ) + (else + (when (-> arg0 post-hook) + (let + ((s4-1 + (new + 'process + 'cpu-thread + arg0 + 'post + 256 + (&-> *dram-stack* 14336) + ) + ) + ) + (reset-and-call + s4-1 + (-> arg0 post-hook) + ) + (delete s4-1) + ) + (when (= (-> arg0 status) 'dead) + (set! + (-> s5-0 current-process) + #f + ) + (return 'dead) + ) + (set! (-> arg0 status) 'suspended) + ) + (set! (-> s5-0 current-process) #f) + #f ) - (set! (-> s5-0 current-process) #f) - #f ) ) - ) - ((= v1-0 'dead) + (('dead) 'dead ) ) @@ -1827,10 +1822,10 @@ (let ((s5-0 pp)) (let ((s4-0 (-> obj stack-frame-top))) (while (the-as protect-frame s4-0) - (let ((v1-5 (-> s4-0 type))) - (if (or (= v1-5 protect-frame) (= v1-5 state)) - ((-> (the-as protect-frame s4-0) exit)) - ) + (case (-> s4-0 type) + ((protect-frame state) + ((-> (the-as protect-frame s4-0) exit)) + ) ) (set! s4-0 (-> (the-as protect-frame s4-0) next)) ) diff --git a/test/decompiler/reference/kernel/gstate_REF.gc b/test/decompiler/reference/kernel/gstate_REF.gc index 974e7b85ab..0215c62611 100644 --- a/test/decompiler/reference/kernel/gstate_REF.gc +++ b/test/decompiler/reference/kernel/gstate_REF.gc @@ -89,10 +89,10 @@ (set! (-> pp state) (-> pp next-state)) (let ((s0-1 (-> pp stack-frame-top))) (while s0-1 - (let ((v1-10 (-> s0-1 type))) - (if (or (= v1-10 protect-frame) (= v1-10 state)) - ((-> (the-as protect-frame s0-1) exit)) - ) + (case (-> s0-1 type) + ((protect-frame state) + ((-> (the-as protect-frame s0-1) exit)) + ) ) (set! s0-1 (-> s0-1 next)) ) diff --git a/test/decompiler/test_FormExpressionBuild2.cpp b/test/decompiler/test_FormExpressionBuild2.cpp index 5e06e84c6b..e3baaa022d 100644 --- a/test/decompiler/test_FormExpressionBuild2.cpp +++ b/test/decompiler/test_FormExpressionBuild2.cpp @@ -1094,20 +1094,18 @@ TEST_F(FormRegressionTest, StupidFloatMove) { "(begin\n" " (let ((s5-0 (fmin 0.0 arg1)))\n" " (set! (-> arg0 time-ratio) s5-0)\n" - " (let ((v1-0 (get-video-mode)))\n" - " (cond\n" - " ((= v1-0 (quote pal))\n" + " (case (get-video-mode) \n" + " (('pal)\n" " (set! (-> arg0 time-adjust-ratio) (* 0.0 s5-0))\n" " (set! (-> arg0 seconds-per-frame) (* 0.0 s5-0))\n" " (set! (-> arg0 frames-per-second) (* 0.0 (/ 0.0 s5-0)))\n" " (set! (-> arg0 time-factor) 0.0)\n" " )\n" - " (else\n" - " (set! (-> arg0 time-adjust-ratio) s5-0)\n" - " (set! (-> arg0 seconds-per-frame) (* 0.0 s5-0))\n" - " (set! (-> arg0 frames-per-second) (* 0.0 (/ 0.0 s5-0)))\n" - " (set! (-> arg0 time-factor) 0.0)\n" - " )\n" + " (else\n" + " (set! (-> arg0 time-adjust-ratio) s5-0)\n" + " (set! (-> arg0 seconds-per-frame) (* 0.0 s5-0))\n" + " (set! (-> arg0 frames-per-second) (* 0.0 (/ 0.0 s5-0)))\n" + " (set! (-> arg0 time-factor) 0.0)\n" " )\n" " )\n" " )\n" diff --git a/test/goalc/source_templates/with_game/test-array-ref-static.gc b/test/goalc/source_templates/with_game/test-array-ref-static.gc new file mode 100644 index 0000000000..299abaf18d --- /dev/null +++ b/test/goalc/source_templates/with_game/test-array-ref-static.gc @@ -0,0 +1,27 @@ +(deftype test-elt-type (structure) + ((thing1 symbol) + (thing2 int) + ) + ) + +(deftype test-not-inline-inline-array-type (basic) + ((foo int) + (arr (inline-array test-elt-type))) + ) + +(let ((obj (new 'static 'test-not-inline-inline-array-type + :foo 12 + :arr (new 'static 'inline-array test-elt-type + 2 + (new 'static 'test-elt-type :thing1 'asdf :thing2 13) + (new 'static 'test-elt-type :thing1 'bean :thing2 14))))) + (format #t "~A ~D ~A ~D ~A ~D~%" + (-> obj type) + (-> obj foo) + (-> obj arr 0 thing1) + (-> obj arr 0 thing2) + (-> obj arr 1 thing1) + (-> obj arr 1 thing2) + ) + ) + diff --git a/test/goalc/test_with_game.cpp b/test/goalc/test_with_game.cpp index 2d508c563e..09ccf0da3e 100644 --- a/test/goalc/test_with_game.cpp +++ b/test/goalc/test_with_game.cpp @@ -627,6 +627,12 @@ TEST_F(WithGameTests, StaticArrayField) { "0\n"}); } +TEST_F(WithGameTests, ArrayRefStatic) { + runner.run_static_test(env, testCategory, "test-array-ref-static.gc", + {"test-not-inline-inline-array-type 12 asdf 13 bean 14\n" + "0\n"}); +} + TEST_F(WithGameTests, TypeReference) { runner.run_static_test(env, testCategory, "test-type-ref.gc", {"string #t basic some-unknown-type 20 0\n" diff --git a/test/offline/offline_test_main.cpp b/test/offline/offline_test_main.cpp index 0908d36ef9..8ba393cff1 100644 --- a/test/offline/offline_test_main.cpp +++ b/test/offline/offline_test_main.cpp @@ -234,6 +234,9 @@ class OfflineDecompilation : public ::testing::Test { protected: static std::unique_ptr db; static std::unique_ptr config; + + static std::unique_ptr> final_output_cache; + static void SetUpTestCase() { // global setup file_util::init_crc(); @@ -272,17 +275,22 @@ class OfflineDecompilation : public ::testing::Test { db->process_labels(); // fancy decompilation. - db->analyze_functions_ir2({}, *config); + db->analyze_functions_ir2({}, *config, true); + + final_output_cache = std::make_unique>(); } static void TearDownTestCase() { db.reset(); config.reset(); + final_output_cache.reset(); } }; std::unique_ptr OfflineDecompilation::db; std::unique_ptr OfflineDecompilation::config; +std::unique_ptr> + OfflineDecompilation::final_output_cache; /*! * Check that the most basic disassembly into files/functions/instructions has succeeded. @@ -478,15 +486,27 @@ TEST_F(OfflineDecompilation, Reference) { std::string src = db->ir2_final_out(obj_l.at(0)); - /* if (file == "gstring") { - fmt::print("{}\n", src); - }*/ - lg::info("Comparing {}...", file.first); // NOTE - currently only handles .gc files! auto reference = file_util::read_text_file(file.second.string()); + bool can_cache = true; + for (auto& func_list : obj_l.at(0).linked_data.functions_by_seg) { + for (auto& func : func_list) { + if (g_functions_to_skip_compiling.find(func.guessed_name.to_string()) != + g_functions_to_skip_compiling.end()) { + can_cache = false; + break; + } + } + } + + if (can_cache) { + EXPECT_EQ(final_output_cache->count(file.first), 0); + final_output_cache->insert({file.first, src}); + } + strip_trailing_newlines(reference); strip_trailing_newlines(src); @@ -532,10 +552,16 @@ TEST_F(OfflineDecompilation, Compile) { auto& obj_l = db->obj_files_by_name.at(file.first); ASSERT_EQ(obj_l.size(), 1); - std::string src = db->ir2_final_out(obj_l.at(0), g_functions_to_skip_compiling); - total_lines += line_count(src); - - compiler.run_full_compiler_on_string_no_save(src); + const auto& cache = final_output_cache->find(file.first); + if (cache != final_output_cache->end()) { + const auto& src = cache->second; + total_lines += line_count(src); + compiler.run_full_compiler_on_string_no_save(src); + } else { + auto src = db->ir2_final_out(obj_l.at(0), g_functions_to_skip_compiling); + total_lines += line_count(src); + compiler.run_full_compiler_on_string_no_save(src); + } } auto time = timer.getSeconds(); lg::info("Total Lines Compiled: {}. Lines/second: {:.1f}\n", total_lines, From d508c408cca43da6255f80fc539c042e71d2eae3 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 11 Jul 2021 20:36:52 +0000 Subject: [PATCH 10/63] Updated github pages site --- docs/gh-pages-proj/src/config/progress.json | 2 +- docs/index.html | 2 +- docs/js/{about.acc7b95d.js => about.63a44ad4.js} | 4 ++-- docs/js/{about.acc7b95d.js.map => about.63a44ad4.js.map} | 2 +- docs/js/{app.87be5c69.js => app.635c14bd.js} | 4 ++-- docs/js/{app.87be5c69.js.map => app.635c14bd.js.map} | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) rename docs/js/{about.acc7b95d.js => about.63a44ad4.js} (99%) rename docs/js/{about.acc7b95d.js.map => about.63a44ad4.js.map} (99%) rename docs/js/{app.87be5c69.js => app.635c14bd.js} (97%) rename docs/js/{app.87be5c69.js.map => app.635c14bd.js.map} (98%) diff --git a/docs/gh-pages-proj/src/config/progress.json b/docs/gh-pages-proj/src/config/progress.json index 4983e71e39..2e227540f5 100644 --- a/docs/gh-pages-proj/src/config/progress.json +++ b/docs/gh-pages-proj/src/config/progress.json @@ -1,7 +1,7 @@ { "jak1": { "locPercentage": { - "value": 103475, + "value": 107118, "label": "Lines of Code" } } diff --git a/docs/index.html b/docs/index.html index 07487733f9..6b96a8d434 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1 +1 @@ -OpenGOAL Tooling
\ No newline at end of file +OpenGOAL Tooling
\ No newline at end of file diff --git a/docs/js/about.acc7b95d.js b/docs/js/about.63a44ad4.js similarity index 99% rename from docs/js/about.acc7b95d.js rename to docs/js/about.63a44ad4.js index b5ecd55978..a9ec4e0e25 100644 --- a/docs/js/about.acc7b95d.js +++ b/docs/js/about.63a44ad4.js @@ -1,2 +1,2 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":103475,"label":"Lines of Code"}}}')}}]); -//# sourceMappingURL=about.acc7b95d.js.map \ No newline at end of file +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":107118,"label":"Lines of Code"}}}')}}]); +//# sourceMappingURL=about.63a44ad4.js.map \ No newline at end of file diff --git a/docs/js/about.acc7b95d.js.map b/docs/js/about.63a44ad4.js.map similarity index 99% rename from docs/js/about.acc7b95d.js.map rename to docs/js/about.63a44ad4.js.map index 637a631726..7594b634c4 100644 --- a/docs/js/about.acc7b95d.js.map +++ b/docs/js/about.63a44ad4.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?b24d","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.acc7b95d.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?b24d","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.63a44ad4.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/js/app.87be5c69.js b/docs/js/app.635c14bd.js similarity index 97% rename from docs/js/app.87be5c69.js rename to docs/js/app.635c14bd.js index cffa79e753..0436062fd8 100644 --- a/docs/js/app.87be5c69.js +++ b/docs/js/app.635c14bd.js @@ -1,2 +1,2 @@ -(function(e){function t(t){for(var n,o,i=t[0],c=t[1],l=t[2],s=0,p=[];s\n \n \n \n \n \n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?7eb4","webpack:///src/App.vue","webpack:///./src/App.vue?1160","webpack:///./src/App.vue","webpack:///./src/plugins/vuetify.js","webpack:///./src/router/index.js","webpack:///./src/main.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_h","$createElement","_c","_self","staticRenderFns","components","component","VApp","VMain","Vue","use","Vuetify","theme","dark","VueRouter","routes","path","router","base","process","config","productionTip","vuetify","render","h","App","$mount"],"mappings":"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","file":"js/app.635c14bd.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"63a44ad4\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"about\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"8d0e9591\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/jak-project/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[_c('v-main',[_c('router-view')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file From 0a9cc68a27bff2d7348ae70222b839e0250782e8 Mon Sep 17 00:00:00 2001 From: water111 <48171810+water111@users.noreply.github.com> Date: Sun, 11 Jul 2021 18:19:41 -0400 Subject: [PATCH 11/63] [decompiler] Use meters, degrees, and seconds (#689) * use meters degrees and seconds * update changelog --- common/goal_constants.h | 8 +- common/type_system/TypeSystem.cpp | 24 +- decompiler/IR2/AtomicOpTypeAnalysis.cpp | 2 +- decompiler/IR2/Form.h | 7 +- decompiler/IR2/FormExpressionAnalysis.cpp | 78 ++++- decompiler/config/all-types.gc | 278 +++++++++--------- decompiler/util/DecompilerTypeSystem.cpp | 17 ++ decompiler/util/DecompilerTypeSystem.h | 1 + decompiler/util/data_decompile.cpp | 24 ++ docs/markdown/progress-notes/changelog.md | 3 +- goal_src/engine/anim/aligner-h.gc | 18 +- goal_src/engine/anim/joint-h.gc | 2 +- goal_src/engine/camera/camera-h.gc | 32 +- goal_src/engine/camera/math-camera-h.gc | 96 +++--- goal_src/engine/collide/collide-shape-h.gc | 4 +- goal_src/engine/data/art-h.gc | 36 +-- goal_src/engine/debug/debug.gc | 2 +- goal_src/engine/game/fact-h.gc | 78 ++--- goal_src/engine/game/game-h.gc | 30 +- goal_src/engine/game/generic-obs-h.gc | 6 +- goal_src/engine/gfx/mood-h.gc | 14 +- goal_src/engine/gfx/tie/prototype-h.gc | 38 +-- goal_src/engine/gfx/water/water-h.gc | 76 ++--- goal_src/engine/level/level-h.gc | 4 +- goal_src/engine/level/level-info.gc | 52 ++-- goal_src/engine/math/transformq-h.gc | 16 +- goal_src/engine/nav/navigate-h.gc | 50 ++-- goal_src/engine/physics/dynamics-h.gc | 14 +- goal_src/engine/physics/trajectory-h.gc | 8 +- .../engine/sparticle/sparticle-launcher-h.gc | 18 +- goal_src/engine/target/joint-mod-h.gc | 38 +-- goal_src/levels/common/nav-enemy-h.gc | 102 +++---- goalc/compiler/compilation/Type.cpp | 12 + .../decompiler/reference/decompiler-macros.gc | 63 ++++ .../reference/engine/anim/aligner-h_REF.gc | 6 +- .../reference/engine/anim/joint-h_REF.gc | 2 +- .../reference/engine/camera/camera-h_REF.gc | 32 +- .../engine/camera/math-camera-h_REF.gc | 10 +- .../engine/collide/collide-shape-h_REF.gc | 4 +- .../reference/engine/data/art-h_REF.gc | 10 +- .../reference/engine/game/fact-h_REF.gc | 88 +++--- .../reference/engine/game/game-h_REF.gc | 30 +- .../engine/game/generic-obs-h_REF.gc | 6 +- .../reference/engine/gfx/mood-h_REF.gc | 4 +- .../gfx/sparticle/sparticle-launcher-h_REF.gc | 4 +- .../engine/gfx/tie/prototype-h_REF.gc | 8 +- .../reference/engine/gfx/water/water-h_REF.gc | 34 +-- .../reference/engine/level/level-h_REF.gc | 4 +- .../reference/engine/level/level-info_REF.gc | 52 ++-- .../reference/engine/math/transformq-h_REF.gc | 4 +- .../reference/engine/nav/navigate-h_REF.gc | 4 +- .../engine/physics/dynamics-h_REF.gc | 16 +- .../engine/physics/trajectory-h_REF.gc | 2 +- .../engine/target/joint-mod-h_REF.gc | 8 +- .../levels/common/nav-enemy-h_REF.gc | 102 +++---- 55 files changed, 939 insertions(+), 742 deletions(-) diff --git a/common/goal_constants.h b/common/goal_constants.h index 974e291620..81f5a46fbe 100644 --- a/common/goal_constants.h +++ b/common/goal_constants.h @@ -1,8 +1,5 @@ #pragma once -#ifndef JAK_GOAL_CONSTANTS_H -#define JAK_GOAL_CONSTANTS_H - #include "common_types.h" constexpr s32 BINTEGER_OFFSET = 0; @@ -36,4 +33,7 @@ constexpr u64 EE_MAIN_MEM_MAP = 0x2123000000; // intentionally > 32-bit to // so this should be used only for debugging. constexpr bool EE_MEM_LOW_MAP = false; -#endif // JAK_GOAL_CONSTANTS_H +constexpr double METER_LENGTH = 4096.0; +constexpr double DEGREES_PER_ROT = 65536.0; +constexpr double DEGREES_LENGTH = DEGREES_PER_ROT / 360.0; +constexpr u64 TICKS_PER_SECOND = 300.0; diff --git a/common/type_system/TypeSystem.cpp b/common/type_system/TypeSystem.cpp index 8ab18a34e2..4c06256052 100644 --- a/common/type_system/TypeSystem.cpp +++ b/common/type_system/TypeSystem.cpp @@ -965,6 +965,13 @@ void TypeSystem::add_builtin_types() { add_builtin_value_type("uinteger", "uint64", 8); add_builtin_value_type("uinteger", "uint128", 16, false, false, RegClass::INT_128); + // add special units types. + add_builtin_value_type("float", "meters", 4, false, false, RegClass::FLOAT) + ->set_runtime_type("float"); + add_builtin_value_type("float", "degrees", 4, false, false, RegClass::FLOAT) + ->set_runtime_type("float"); + add_builtin_value_type("uint64", "seconds", 8, false, false)->set_runtime_type("uint64"); + auto int_type = add_builtin_value_type("integer", "int", 8, false, true); int_type->disallow_in_runtime(); auto uint_type = add_builtin_value_type("uinteger", "uint", 8, false, false); @@ -1352,8 +1359,23 @@ bool TypeSystem::typecheck_and_throw(const TypeSpec& expected, /*! * Is actual of type expected? For base types. */ -bool TypeSystem::typecheck_base_types(const std::string& expected, +bool TypeSystem::typecheck_base_types(const std::string& input_expected, const std::string& actual) const { + std::string expected = input_expected; + + // the unit types aren't picky. + if (expected == "meters") { + expected = "float"; + } + + if (expected == "seconds") { + expected = "uint"; + } + + if (expected == "degrees") { + expected = "float"; + } + // just to make sure it exists. lookup_type_allow_partial_def(expected); diff --git a/decompiler/IR2/AtomicOpTypeAnalysis.cpp b/decompiler/IR2/AtomicOpTypeAnalysis.cpp index 2f07f8a60f..58f5c1e941 100644 --- a/decompiler/IR2/AtomicOpTypeAnalysis.cpp +++ b/decompiler/IR2/AtomicOpTypeAnalysis.cpp @@ -557,7 +557,7 @@ TP_Type SimpleExpression::get_type_int2(const TypeState& input, if (m_kind == Kind::ADD && tc(dts, TypeSpec("structure"), arg0_type) && arg1_type.is_integer_constant()) { auto type_info = dts.ts.lookup_type(arg0_type.typespec()); - if (type_info->get_size_in_memory() == arg1_type.get_integer_constant()) { + if ((u64)type_info->get_size_in_memory() == arg1_type.get_integer_constant()) { return TP_Type::make_from_ts(arg0_type.typespec()); } } diff --git a/decompiler/IR2/Form.h b/decompiler/IR2/Form.h index 0eae101166..06d36e1c1f 100644 --- a/decompiler/IR2/Form.h +++ b/decompiler/IR2/Form.h @@ -1274,6 +1274,7 @@ class ConstantFloatElement : public FormElement { FormStack& stack, std::vector* result, bool allow_side_effects) override; + float value() const { return m_value; } private: float m_value; @@ -1770,5 +1771,9 @@ GenericElement* alloc_generic_token_op(const std::string& name, const std::vector& args, FormPool& pool); Form* alloc_var_form(const RegisterAccess& var, FormPool& pool); -Form* try_cast_simplify(Form* in, const TypeSpec& new_type, FormPool& pool, const Env& env); +Form* try_cast_simplify(Form* in, + const TypeSpec& new_type, + FormPool& pool, + const Env& env, + bool tc_pass = false); } // namespace decompiler diff --git a/decompiler/IR2/FormExpressionAnalysis.cpp b/decompiler/IR2/FormExpressionAnalysis.cpp index 19edd46998..a8df31fc8e 100644 --- a/decompiler/IR2/FormExpressionAnalysis.cpp +++ b/decompiler/IR2/FormExpressionAnalysis.cpp @@ -64,14 +64,59 @@ Form* strip_pcypld_64(Form* in) { return in; } } + +std::optional get_goal_float_constant(Form* in) { + auto as_fc = in->try_as_element(); + if (as_fc) { + return as_fc->value(); + } + return {}; +} } // namespace -Form* try_cast_simplify(Form* in, const TypeSpec& new_type, FormPool& pool, const Env& env) { +Form* try_cast_simplify(Form* in, + const TypeSpec& new_type, + FormPool& pool, + const Env& env, + bool tc_pass) { auto in_as_cast = dynamic_cast(in->try_as_single_element()); if (in_as_cast && in_as_cast->type() == new_type) { return in; // no need to cast again, it already has it! } + if (new_type == TypeSpec("meters")) { + auto fc = get_goal_float_constant(in); + + if (fc) { + double div = (double)*fc / METER_LENGTH; // GOOS will use doubles here + if (div * METER_LENGTH == *fc) { + return pool.alloc_single_element_form( + nullptr, + GenericOperator::make_function( + pool.alloc_single_element_form(nullptr, "meters")), + pool.alloc_single_element_form(nullptr, div)); + } else { + lg::error("Floating point value {} could not be converted to meters.", *fc); + } + } + } + + if (new_type == TypeSpec("degrees")) { + auto fc = get_goal_float_constant(in); + if (fc) { + double div = (double)*fc / DEGREES_LENGTH; // GOOS will use doubles here + if (div * DEGREES_LENGTH == *fc) { + return pool.alloc_single_element_form( + nullptr, + GenericOperator::make_function( + pool.alloc_single_element_form(nullptr, "degrees")), + pool.alloc_single_element_form(nullptr, div)); + } else { + lg::error("Floating point value {} could not be converted to degrees.", *fc); + } + } + } + auto type_info = env.dts->ts.lookup_type(new_type); auto bitfield_info = dynamic_cast(type_info); if (bitfield_info) { @@ -91,7 +136,11 @@ Form* try_cast_simplify(Form* in, const TypeSpec& new_type, FormPool& pool, cons } } - return nullptr; + if (tc_pass) { + return in; + } else { + return nullptr; + } } bool Form::has_side_effects() { @@ -285,8 +334,12 @@ void pop_helper(const std::vector& vars, /*! * This should be used to generate all casts. */ -Form* cast_form(Form* in, const TypeSpec& new_type, FormPool& pool, const Env& env) { - auto result = try_cast_simplify(in, new_type, pool, env); +Form* cast_form(Form* in, + const TypeSpec& new_type, + FormPool& pool, + const Env& env, + bool tc_pass = false) { + auto result = try_cast_simplify(in, new_type, pool, env, tc_pass); if (result) { return result; } @@ -340,15 +393,12 @@ std::vector pop_to_forms(const std::vector& vars, return forms; } -// TODO - if we start using child classes of float/int/uint for things like degrees/meters -// we may need to adjust these. - /*! * type == float (exactly)? */ bool is_float_type(const Env& env, int my_idx, RegisterAccess var) { auto type = env.get_types_before_op(my_idx).get(var.reg()).typespec(); - return type == TypeSpec("float"); + return env.dts->ts.tc(TypeSpec("float"), type); } /*! @@ -436,6 +486,10 @@ Form* make_cast_if_needed(Form* in, if (in_type == out_type) { return in; } + + if (out_type == TypeSpec("float") && env.dts->ts.tc(TypeSpec("float"), in_type)) { + return in; + } return cast_form(in, out_type, pool, env); } @@ -548,7 +602,8 @@ void SimpleExpressionElement::update_from_stack_fpr_to_gpr(const Env& env, bool allow_side_effects) { auto src = m_expr.get_arg(0); auto src_type = env.get_types_before_op(m_my_idx).get(src.var().reg()); - if (src_type.typespec() == TypeSpec("float") || src_type.typespec() == TypeSpec("int")) { + if (env.dts->ts.tc(TypeSpec("float"), src_type.typespec()) || + src_type.typespec() == TypeSpec("int")) { // set ourself to identity. m_expr = src.as_expr(); // then go again. @@ -2229,8 +2284,9 @@ void FunctionCallElement::update_from_stack(const Env& env, } auto desired_arg_type = function_type.get_arg(arg_id); - if (!env.dts->ts.tc(desired_arg_type, actual_arg_type)) { - arg_forms.push_back(cast_form(val, desired_arg_type, pool, env)); + if (env.dts->should_attempt_cast_simplify(desired_arg_type, actual_arg_type)) { + arg_forms.push_back(cast_form(val, desired_arg_type, pool, env, + env.dts->ts.tc(desired_arg_type, actual_arg_type))); } else { arg_forms.push_back(val); } diff --git a/decompiler/config/all-types.gc b/decompiler/config/all-types.gc index 74122e1c3d..1ce871a73d 100644 --- a/decompiler/config/all-types.gc +++ b/decompiler/config/all-types.gc @@ -2166,8 +2166,8 @@ ) (deftype trsqv (trsq) - ((pause-adjust-distance float :offset 4) ;; todo meters - (nav-radius float :offset 8) ;; todo meters + ((pause-adjust-distance meters :offset 4) + (nav-radius meters :offset 8) (transv vector :inline :offset-assert 64) (rotv vector :inline :offset-assert 80) (scalev vector :inline :offset-assert 96) @@ -4779,7 +4779,7 @@ (bsp-mask uint64 :offset-assert 80) (bsphere sphere :offset-assert 88) (buzzer int32 :offset-assert 92) - (bottom-height float :offset-assert 96) ;; meters + (bottom-height meters :offset-assert 96) (run-packages pair :offset-assert 100) (prev-level basic :offset-assert 104) (next-level basic :offset-assert 108) @@ -4830,7 +4830,7 @@ (ambient entity-ambient-data-array :offset-assert 288) (closest-object float 9 :offset-assert 292) (upload-size int32 9 :offset-assert 328) - (level-distance float :offset-assert 364) ; meters + (level-distance meters :offset-assert 364) (inside-sphere? symbol :offset-assert 368) (inside-boxes? symbol :offset-assert 372) (display? symbol :offset-assert 376) @@ -4977,9 +4977,9 @@ ) (deftype math-camera (basic) - ((d float :offset-assert 4) ;; meters - (f float :offset-assert 8) ;; meters - (fov float :offset-assert 12) ;; deg + ((d meters :offset-assert 4) + (f meters :offset-assert 8) + (fov degrees :offset-assert 12) (x-ratio float :offset-assert 16) (y-ratio float :offset-assert 20) (x-pix float :offset-assert 24) @@ -4991,8 +4991,8 @@ (y-clip-ratio-in float :offset-assert 48) (y-clip-ratio-over float :offset-assert 52) (cull-info cull-info :inline :offset-assert 56) - (fog-start float :offset-assert 120) ;; meters - (fog-end float :offset-assert 124) ;; meters + (fog-start meters :offset-assert 120) + (fog-end meters :offset-assert 124) (fog-max float :offset-assert 128) (fog-min float :offset-assert 132) (reset int32 :offset-assert 136) @@ -7100,8 +7100,8 @@ (deftype mood-fog (structure) ((fog-color vector :inline :offset-assert 0) (fog-dists vector :inline :offset-assert 16) - (fog-start float :offset 16) ;; meters - (fog-end float :offset 20) ;;meters + (fog-start meters :offset 16) + (fog-end meters :offset 20) (fog-max float :offset 24) (fog-min float :offset 28) (erase-color vector :inline :offset-assert 32) @@ -7496,11 +7496,11 @@ (jgeo int32 :offset-assert 8) (janim int32 :offset-assert 12) (bounds vector :inline :offset-assert 16) - (radius float :offset 28) ;; meters + (radius meters :offset 28) (mgeo uint16 4 :offset-assert 32) (max-lod int32 :offset-assert 40) (lod-dist float 4 :offset-assert 44) - (longest-edge float :offset-assert 60) ;; meters + (longest-edge meters :offset-assert 60) (texture-level int8 :offset-assert 64) (version int8 :offset-assert 65) (shadow int8 :offset-assert 66) @@ -7515,7 +7515,7 @@ (declare-type merc-ctrl art-element) (deftype lod-group (structure) ((geo merc-ctrl :offset-assert 0) - (dist float :offset-assert 4) ;; meters + (dist meters :offset-assert 4) ) :pack-me :method-count-assert 9 @@ -7556,7 +7556,7 @@ (cur-lod int8 :offset-assert 62) (desired-lod int8 :offset-assert 63) (ripple ripple-control :offset-assert 64) - (longest-edge float :offset-assert 68) ;; meters + (longest-edge meters :offset-assert 68) (longest-edge? uint32 :offset 68) (light-index uint8 :offset-assert 72) (dummy uint8 2 :offset-assert 73) @@ -7571,7 +7571,7 @@ (shadow-ctrl shadow-control :offset-assert 96) (origin vector :inline :offset-assert 112) (bounds vector :inline :offset-assert 128) - (radius float :offset 140) ;; meters + (radius meters :offset 140) (color-mult rgbaf :inline :offset-assert 144) (color-emissive rgbaf :inline :offset-assert 160) (secondary-interp float :offset-assert 176) @@ -8942,10 +8942,10 @@ (rdists vector :inline :offset-assert 48) (next uint32 4 :offset-assert 64) (count uint16 4 :offset-assert 80) - (near-plane float :offset 32) ;; meters - (near-stiff float :offset 36) ;; meters - (mid-plane float :offset 40) ;; meters - (far-plane float :offset 44) ;; meters + (near-plane meters :offset 32) + (near-stiff meters :offset 36) + (mid-plane meters :offset 40) + (far-plane meters :offset 44) (rlength-near float :offset 48) (rlength-stiff float :offset 52) (rlength-mid float :offset 56) @@ -9059,7 +9059,7 @@ (param float 2 :offset-assert 24) (group-sub-index int16 :offset-assert 32) (group-size int16 :offset-assert 34) - (dist float :offset-assert 36) ;; meters + (dist meters :offset-assert 36) (eval-time uint32 :offset-assert 40) (inspector-amount float :offset-assert 44) ) @@ -9385,12 +9385,12 @@ (deftype dynamics (basic) ((name basic :offset-assert 4) - (gravity-max float :offset-assert 8) ;; meters - (gravity-length float :offset-assert 12) ;; meters + (gravity-max meters :offset-assert 8) + (gravity-length meters :offset-assert 12) (gravity vector :inline :offset-assert 16) (gravity-normal vector :inline :offset-assert 32) - (walk-distance float :offset-assert 48) ;; meters - (run-distance float :offset-assert 52) ;; meters + (walk-distance meters :offset-assert 48) + (run-distance meters :offset-assert 52) ) :method-count-assert 9 :size-assert #x38 @@ -9570,17 +9570,17 @@ ((eco-level-max float :offset-assert 4) (eco-single-inc float :offset-assert 8) (eco-full-inc float :offset-assert 12) - (eco-single-timeout uint64 :offset-assert 16) ; usec - (eco-full-timeout uint64 :offset-assert 24) ; usec - (dummy uint64 :offset-assert 32) ; usec + (eco-single-timeout seconds :offset-assert 16) + (eco-full-timeout seconds :offset-assert 24) + (dummy seconds :offset-assert 32) (health-max-default float :offset-assert 40) (health-single-inc float :offset-assert 44) (eco-pill-max-default float :offset-assert 48) (health-small-inc float :offset-assert 52) (buzzer-max-default float :offset-assert 56) (buzzer-single-inc float :offset-assert 60) - (suck-bounce-dist float :offset-assert 64) ; meters - (suck-suck-dist float :offset-assert 68) ; meters + (suck-bounce-dist meters :offset-assert 64) + (suck-suck-dist meters :offset-assert 68) (default-pill-inc float :offset-assert 72) ) :method-count-assert 9 @@ -9611,7 +9611,7 @@ ((eco-type int32 :offset-assert 40) (eco-level float :offset-assert 44) (eco-pickup-time uint64 :offset-assert 48) - (eco-timeout uint64 :offset-assert 56) ;; usec + (eco-timeout seconds :offset-assert 56) (health float :offset-assert 64) (health-max float :offset-assert 68) (buzzer float :offset-assert 72) @@ -9636,12 +9636,12 @@ (deftype fact-info-enemy (fact-info) ((speed float :offset-assert 40) - (idle-distance float :offset-assert 44) ; meters - (notice-top float :offset-assert 48) ; meters - (notice-bottom float :offset-assert 52) ; meters - (cam-horz float :offset-assert 56) ; meters - (cam-vert float :offset-assert 60) ; meters - (cam-notice-dist float :offset-assert 64) ; meters + (idle-distance meters :offset-assert 44) + (notice-top meters :offset-assert 48) + (notice-bottom meters :offset-assert 52) + (cam-horz meters :offset-assert 56) + (cam-vert meters :offset-assert 60) + (cam-notice-dist meters :offset-assert 64) ) :method-count-assert 12 :size-assert #x44 @@ -9678,7 +9678,7 @@ (matrix matrix 2 :inline :offset-assert 32) (transform transform 2 :inline :offset-assert 160) (delta transformq :inline :offset-assert 256) - (last-speed float :offset-assert 304);; meters + (last-speed meters :offset-assert 304) (align transformq :inline :offset 160) ) :method-count-assert 14 @@ -9801,13 +9801,13 @@ (invinc-time uint64 :offset-assert 56) (mask uint32 :offset-assert 64) (mode basic :offset-assert 68) - (shove-back float :offset-assert 72) ;; meters - (shove-up float :offset-assert 76) ;; meters - (speed float :offset-assert 80) ;; meters - (dist float :offset-assert 84) ;; meters + (shove-back meters :offset-assert 72) + (shove-up meters :offset-assert 76) + (speed meters :offset-assert 80) + (dist meters :offset-assert 84) (control float :offset-assert 88) (angle basic :offset-assert 92) - (rotate-to float :offset-assert 96) ;; deg + (rotate-to degrees :offset-assert 96) (prev-state basic :offset-assert 100) ) :method-count-assert 10 @@ -9869,7 +9869,7 @@ (deftype part-spawner (process-drawable) ((mode uint32 :offset-assert 176) (enable basic :offset-assert 180) - (radius float :offset-assert 184) ;; meters + (radius meters :offset-assert 184) (world-sphere sphere :inline :offset-assert 192) ) :heap-base #x60 @@ -9958,8 +9958,8 @@ (deftype swingpole (process) ((root basic :offset-assert 112) (dir vector :inline :offset-assert 128) - (range float :offset-assert 144) ;; meters - (edge-length float :offset-assert 148) ;; meters + (range meters :offset-assert 144) + (edge-length meters :offset-assert 148) ) :heap-base #x30 :method-count-assert 14 @@ -10251,7 +10251,7 @@ ((initial-position vector :inline :offset-assert 0) (initial-velocity vector :inline :offset-assert 16) (time float :offset-assert 32) - (gravity float :offset-assert 36) ;; meters + (gravity meters :offset-assert 36) ) :method-count-assert 16 :size-assert #x28 @@ -10341,8 +10341,8 @@ (notice-time uint64 :offset-assert 112) (flex-blend float :offset-assert 120) (blend float :offset-assert 124) - (max-dist float :offset-assert 128) ;; meters - (ignore-angle float :offset-assert 132) ;; deg + (max-dist meters :offset-assert 128) + (ignore-angle degrees :offset-assert 132) (up uint8 :offset-assert 136) (nose uint8 :offset-assert 137) (ear uint8 :offset-assert 138) @@ -10676,7 +10676,7 @@ (action uint32 :offset 40) (offense int8 :offset 44) (prim-type int8 :offset 45) - (radius float :offset 60) ;; meters + (radius meters :offset 60) ) :method-count-assert 28 :size-assert #x48 @@ -10871,7 +10871,7 @@ (ground-poly-normal vector :inline :offset-assert 368) (ground-touch-point vector :inline :offset-assert 384) (shadow-pos vector :inline :offset-assert 400) - (ground-impact-vel float :offset-assert 416) ;; meters + (ground-impact-vel meters :offset-assert 416) (surface-angle float :offset-assert 420) (poly-angle float :offset-assert 424) (touch-angle float :offset-assert 428) @@ -13176,8 +13176,8 @@ (deftype sparticle-group-item (structure) ((launcher uint32 :offset-assert 0) - (fade-after float :offset-assert 4) ;; meters - (falloff-to float :offset-assert 8) ;; meters + (fade-after meters :offset-assert 4) + (falloff-to meters :offset-assert 8) (flags uint16 :offset-assert 12) (period uint16 :offset-assert 14) (length uint16 :offset-assert 16) @@ -13397,12 +13397,12 @@ (joypad uint32 :offset-assert 8) (min-detectable-velocity float :offset-assert 12) (attack-timeout uint64 :offset-assert 16) - (default-string-max-y float :offset-assert 24) ; meters - (default-string-min-y float :offset-assert 28) ; meters - (default-string-max-z float :offset-assert 32) ; meters - (default-string-min-z float :offset-assert 36) ; meters - (default-string-push-z float :offset-assert 40) ; meters - (default-tilt-adjust float :offset-assert 44) ; deg + (default-string-max-y meters :offset-assert 24) + (default-string-min-y meters :offset-assert 28) + (default-string-max-z meters :offset-assert 32) + (default-string-min-z meters :offset-assert 36) + (default-string-push-z meters :offset-assert 40) + (default-tilt-adjust degrees :offset-assert 44) ) :method-count-assert 9 :size-assert #x30 @@ -14201,7 +14201,7 @@ (dest-pos vector :inline :offset-assert 32) (current-poly nav-poly :offset-assert 48) (next-poly nav-poly :offset-assert 52) - (len float :offset-assert 56) ;; meters + (len meters :offset-assert 56) (last-edge int8 :offset-assert 60) (terminated basic :offset-assert 64) (reached-dest basic :offset-assert 68) @@ -14357,7 +14357,7 @@ (next-poly nav-poly :offset-assert 32) (target-poly nav-poly :offset-assert 36) (portal nav-route-portal 2 :offset-assert 40) ;; guess - (nearest-y-threshold float :offset-assert 48) ;; meters + (nearest-y-threshold meters :offset-assert 48) (event-temp vector :inline :offset-assert 64) (old-travel vector :inline :offset-assert 80) (blocked-travel vector :inline :offset-assert 96) @@ -15098,7 +15098,7 @@ ;; - Unknowns -(define-extern add-debug-vector (function symbol bucket-id vector vector float rgba symbol)) +(define-extern add-debug-vector (function symbol bucket-id vector vector meters rgba symbol)) (define-extern *debug-lines* (inline-array debug-line)) (define-extern *debug-lines-trk* debug-tracking-thang) (define-extern *debug-text-3ds* (inline-array debug-text-3d)) @@ -17577,24 +17577,24 @@ (process process :offset-assert 8) (joint-index int32 :offset-assert 12) (top-y-offset float :offset-assert 16) - (ripple-size float :offset-assert 20) ; meters + (ripple-size meters :offset-assert 20) (enter-water-time uint64 :offset-assert 24) (wade-time uint64 :offset-assert 32) (on-water-time uint64 :offset-assert 40) (enter-swim-time uint64 :offset-assert 48) (swim-time uint64 :offset-assert 56) - (base-height float :offset-assert 64) ; meters - (wade-height float :offset-assert 68) ; meters - (swim-height float :offset-assert 72) ; meters - (surface-height float :offset-assert 76) ; meters - (bottom-height float :offset-assert 80) ; meters - (height float :offset-assert 84) ; meters + (base-height meters :offset-assert 64) + (wade-height meters :offset-assert 68) + (swim-height meters :offset-assert 72) + (surface-height meters :offset-assert 76) + (bottom-height meters :offset-assert 80) + (height meters :offset-assert 84) (height-offset float 4 :offset-assert 88) - (real-ocean-offset float :offset 88) ; meters - (ocean-offset float :offset 92) ; meters - (bob-offset float :offset 96) ; meters - (align-offset float :offset 100) ; meters - (swim-depth float :offset-assert 104) ; meters + (real-ocean-offset meters :offset 88) + (ocean-offset meters :offset 92) + (bob-offset meters :offset 96) + (align-offset meters :offset 100) + (swim-depth meters :offset-assert 104) (bob smush-control :inline :offset-assert 112) (volume uint64 :offset-assert 144) ;; handle? (bottom vector 2 :inline :offset-assert 160) @@ -17605,7 +17605,7 @@ (drip-wetness float :offset-assert 260) (drip-time uint64 :offset-assert 264) (drip-speed float :offset-assert 272) - (drip-height float :offset-assert 276) ; meters + (drip-height meters :offset-assert 276) (drip-mult float :offset-assert 280) ) :method-count-assert 17 @@ -17625,10 +17625,10 @@ ) (deftype water-vol (process-drawable) - ((water-height float :offset-assert 176) ;; meters - (wade-height float :offset-assert 180) ;; meters - (swim-height float :offset-assert 184) ;; meters - (bottom-height float :offset-assert 188) ;; meters + ((water-height meters :offset-assert 176) + (wade-height meters :offset-assert 180) + (swim-height meters :offset-assert 184) + (bottom-height meters :offset-assert 188) (attack-event basic :offset-assert 192) (target uint64 :offset-assert 200) (flags uint32 :offset-assert 208) @@ -17729,9 +17729,9 @@ ;; - Types (deftype camera-master-bank (basic) - ((onscreen-head-height float :offset-assert 4) ;; meters - (onscreen-foot-height float :offset-assert 8) ;; meters - (target-height float :offset-assert 12) ;; meters + ((onscreen-head-height meters :offset-assert 4) + (onscreen-foot-height meters :offset-assert 8) + (target-height meters :offset-assert 12) (up-move-to-pitch-ratio-in-air float :offset-assert 16) (down-move-to-pitch-ratio-in-air float :offset-assert 20) (up-move-to-pitch-on-ground float :offset-assert 24) @@ -17920,8 +17920,8 @@ ;; - Types (deftype cam-point-watch-bank (basic) - ((speed float :offset-assert 4) - (rot-speed float :offset-assert 8) ;; deg + ((speed float :offset-assert 4) + (rot-speed degrees :offset-assert 8) ) :method-count-assert 9 :size-assert #xc @@ -17929,8 +17929,8 @@ ) (deftype cam-free-bank (basic) - ((speed float :offset-assert 4) - (rot-speed float :offset-assert 8) ;; deg + ((speed float :offset-assert 4) + (rot-speed degrees :offset-assert 8) ) :method-count-assert 9 :size-assert #xc @@ -18769,8 +18769,8 @@ ; (flop-radius meters :offset-assert 512) ; (flop0-offset vector :inline :offset-assert 528) ; (flop1-offset vector :inline :offset-assert 544) -; (stuck-time useconds :offset-assert 560) -; (stuck-timeout useconds :offset-assert 568) +; (stuck-time seconds :offset-assert 560) +; (stuck-timeout seconds :offset-assert 568) ; (stuck-distance meters :offset-assert 576) ; (tongue-pull-speed-min float :offset-assert 580) ; (tongue-pull-speed-max float :offset-assert 584) @@ -21945,33 +21945,33 @@ (die-anim int32 :offset-assert 40) (neck-joint int32 :offset-assert 44) (player-look-at-joint int32 :offset-assert 48) - (run-travel-speed float :offset-assert 52) ; meters - (run-rotate-speed float :offset-assert 56) ; deg - (run-acceleration float :offset-assert 60) ; meters - (run-turn-time uint64 :offset-assert 64) ; seconds - (walk-travel-speed float :offset-assert 72) ; meters - (walk-rotate-speed float :offset-assert 76) ; deg - (walk-acceleration float :offset-assert 80) ; meters - (walk-turn-time uint64 :offset-assert 88) ; seconds - (attack-shove-back float :offset-assert 96) ; meters - (attack-shove-up float :offset-assert 100) ; meters - (shadow-size float :offset-assert 104) ; meters - (notice-nav-radius float :offset-assert 108) ; meters - (nav-nearest-y-threshold float :offset-assert 112) ; meters - (notice-distance float :offset-assert 116) ; meters - (proximity-notice-distance float :offset-assert 120) ; meters - (stop-chase-distance float :offset-assert 124) ; meters - (frustration-distance float :offset-assert 128) ; meters + (run-travel-speed meters :offset-assert 52) + (run-rotate-speed degrees :offset-assert 56) + (run-acceleration meters :offset-assert 60) + (run-turn-time seconds :offset-assert 64) + (walk-travel-speed meters :offset-assert 72) + (walk-rotate-speed degrees :offset-assert 76) + (walk-acceleration meters :offset-assert 80) + (walk-turn-time seconds :offset-assert 88) + (attack-shove-back meters :offset-assert 96) + (attack-shove-up meters :offset-assert 100) + (shadow-size meters :offset-assert 104) + (notice-nav-radius meters :offset-assert 108) + (nav-nearest-y-threshold meters :offset-assert 112) + (notice-distance meters :offset-assert 116) + (proximity-notice-distance meters :offset-assert 120) + (stop-chase-distance meters :offset-assert 124) + (frustration-distance meters :offset-assert 128) (frustration-time uint64 :offset-assert 136) (die-anim-hold-frame float :offset-assert 144) (jump-anim-start-frame float :offset-assert 148) (jump-land-anim-end-frame float :offset-assert 152) - (jump-height-min float :offset-assert 156) ; meters + (jump-height-min meters :offset-assert 156) (jump-height-factor float :offset-assert 160) (jump-start-anim-speed float :offset-assert 164) - (shadow-max-y float :offset-assert 168) ; meters - (shadow-min-y float :offset-assert 172) ; meters - (shadow-locus-dist float :offset-assert 176) ; meters + (shadow-max-y meters :offset-assert 168) + (shadow-min-y meters :offset-assert 172) + (shadow-locus-dist meters :offset-assert 176) (use-align basic :offset-assert 180) (draw-shadow basic :offset-assert 184) (move-to-ground basic :offset-assert 188) @@ -23956,15 +23956,15 @@ ; (deftype pelican-bank (basic) ; ((circle-speed meters :offset-assert 4) -; (dive-time useconds :offset-assert 8) -; (to-nest0-time useconds :offset-assert 16) -; (to-nest1-time useconds :offset-assert 24) -; (land-time useconds :offset-assert 32) -; (from-nest-time useconds :offset-assert 40) -; (spit-time useconds :offset-assert 48) -; (pre-spit-wait-time useconds :offset-assert 56) -; (post-spit-wait-time useconds :offset-assert 64) -; (run-away-time useconds :offset-assert 72) +; (dive-time seconds :offset-assert 8) +; (to-nest0-time seconds :offset-assert 16) +; (to-nest1-time seconds :offset-assert 24) +; (land-time seconds :offset-assert 32) +; (from-nest-time seconds :offset-assert 40) +; (spit-time seconds :offset-assert 48) +; (pre-spit-wait-time seconds :offset-assert 56) +; (post-spit-wait-time seconds :offset-assert 64) +; (run-away-time seconds :offset-assert 72) ; ) ; :method-count-assert 9 ; :size-assert #x50 @@ -30285,17 +30285,17 @@ ; ((y-offset meters :offset-assert 176) ; (y-offset-grips meters :offset-assert 180) ; (height meters :offset-assert 184) -; (turn deg :offset-assert 188) -; (tilt deg :offset-assert 192) -; (target-turn deg :offset-assert 196) -; (target-tilt deg :offset-assert 200) +; (turn degrees :offset-assert 188) +; (tilt degrees :offset-assert 192) +; (target-turn degrees :offset-assert 196) +; (target-tilt degrees :offset-assert 200) ; (base vector :inline :offset-assert 208) ; (reflector-trans vector :inline :offset-assert 224) ; (next-reflector-trans vector :inline :offset-assert 240) ; (prev-reflector-trans vector :inline :offset-assert 256) ; (old-camera-matrix matrix :inline :offset-assert 272) ; (reflector uint32 :offset-assert 336) -; (gauge-rot deg :offset-assert 340) +; (gauge-rot degrees :offset-assert 340) ; (lock-time uint64 :offset-assert 344) ; (aligned? basic :offset-assert 352) ; (raised? basic :offset-assert 356) @@ -31121,9 +31121,9 @@ ; (rot vector :inline :offset-assert 80) ; (rot-old vector :inline :offset-assert 96) ; (rotv vector :inline :offset-assert 112) -; (lean-rotx deg :offset-assert 128) -; (change-roty deg :offset-assert 132) -; (change-roty-old deg :offset-assert 136) +; (lean-rotx degrees :offset-assert 128) +; (change-roty degrees :offset-assert 132) +; (change-roty-old degrees :offset-assert 136) ; (quat vector :inline :offset-assert 144) ; (surface-y meters :offset-assert 160) ; (surface-vy meters :offset-assert 164) @@ -31140,7 +31140,7 @@ ; (hill-value float :offset-assert 268) ; (hill-ground-value float :offset-assert 272) ; (hill-offset meters :offset-assert 276) -; (hill-rotx deg :offset-assert 280) +; (hill-rotx degrees :offset-assert 280) ; (hill-boost meters :offset-assert 284) ; (bob-timer float :offset-assert 288) ; (bob-meta-timer float :offset-assert 292) @@ -31150,19 +31150,19 @@ ; (bob-period float :offset-assert 308) ; (bob-meta-time uint64 :offset-assert 312) ; (bob-hit-ground-time uint64 :offset-assert 320) -; (cur-rotx deg :offset-assert 328) -; (targ-rotx deg :offset-assert 332) +; (cur-rotx degrees :offset-assert 328) +; (targ-rotx degrees :offset-assert 332) ; (speed-rotx float :offset-assert 336) -; (mult-rotx deg :offset-assert 340) +; (mult-rotx degrees :offset-assert 340) ; (front-blade basic :offset-assert 344) -; (front-rot deg :offset-assert 348) -; (front-rotv deg :offset-assert 352) +; (front-rot degrees :offset-assert 348) +; (front-rotv degrees :offset-assert 352) ; (bottom-blade basic :offset-assert 356) -; (bottom-rot deg :offset-assert 360) +; (bottom-rot degrees :offset-assert 360) ; (front basic :offset-assert 364) -; (front-turn deg :offset-assert 368) +; (front-turn degrees :offset-assert 368) ; (tail basic :offset-assert 372) -; (tail-tilt deg :offset-assert 376) +; (tail-tilt degrees :offset-assert 376) ; (transv-max meters :offset-assert 380) ; (slide-down-time UNKNOWN 2 :offset-assert 384) ; (slide-enter-time uint64 :offset-assert 400) @@ -31207,7 +31207,7 @@ ; ) ; (deftype racer-bank (basic) -; ((slide-hold-time useconds :offset-assert 8) +; ((slide-hold-time seconds :offset-assert 8) ; (heat-max float :offset-assert 16) ; (hotcoals-heat-inc float :offset-assert 20) ; (lava-heat-inc float :offset-assert 24) @@ -31222,8 +31222,8 @@ ; (boost-curve-max meters :offset-assert 60) ; (boost-level-max meters :offset-assert 64) ; (boost-level-inc meters :offset-assert 68) -; (boost-duration useconds :offset-assert 72) -; (default-front-blade deg :offset-assert 80) +; (boost-duration seconds :offset-assert 72) +; (default-front-blade degrees :offset-assert 80) ; (yellow-projectile-speed meters :offset-assert 84) ; ) ; :method-count-assert 9 @@ -31977,7 +31977,7 @@ ; (push-velocity vector :inline :offset-assert 224) ; (home-base vector :inline :offset-assert 240) ; (dest-base vector :inline :offset-assert 256) -; (dest-rot deg :offset-assert 272) +; (dest-rot degrees :offset-assert 272) ; (enable-turn-around basic :offset-assert 276) ; (rotating basic :offset-assert 280) ; (in-pen basic :offset-assert 284) diff --git a/decompiler/util/DecompilerTypeSystem.cpp b/decompiler/util/DecompilerTypeSystem.cpp index 1065977707..bfb28cecdb 100644 --- a/decompiler/util/DecompilerTypeSystem.cpp +++ b/decompiler/util/DecompilerTypeSystem.cpp @@ -434,4 +434,21 @@ TypeSpec DecompilerTypeSystem::lookup_symbol_type(const std::string& name) const return kv->second; } } + +bool DecompilerTypeSystem::should_attempt_cast_simplify(const TypeSpec& expected, + const TypeSpec& actual) const { + if (expected == TypeSpec("meters") && actual == TypeSpec("float")) { + return true; + } + + if (expected == TypeSpec("seconds") && actual == TypeSpec("uint64")) { + return true; + } + + if (expected == TypeSpec("degrees") && actual == TypeSpec("float")) { + return true; + } + + return !ts.tc(expected, actual); +} } // namespace decompiler diff --git a/decompiler/util/DecompilerTypeSystem.h b/decompiler/util/DecompilerTypeSystem.h index d1ec31e446..03f2eb0639 100644 --- a/decompiler/util/DecompilerTypeSystem.h +++ b/decompiler/util/DecompilerTypeSystem.h @@ -43,6 +43,7 @@ class DecompilerTypeSystem { int get_format_arg_count(const std::string& str) const; int get_format_arg_count(const TP_Type& type) const; TypeSpec lookup_symbol_type(const std::string& name) const; + bool should_attempt_cast_simplify(const TypeSpec& expected, const TypeSpec& actual) const; // todo - totally eliminate this. struct { diff --git a/decompiler/util/data_decompile.cpp b/decompiler/util/data_decompile.cpp index 8b237ffffa..d31a4d4ce4 100644 --- a/decompiler/util/data_decompile.cpp +++ b/decompiler/util/data_decompile.cpp @@ -857,11 +857,35 @@ goos::Object decompile_value(const TypeSpec& type, } else { return pretty_print::to_symbol(fmt::format("{}", value)); } + } else if (type == TypeSpec("seconds")) { + assert(bytes.size() == 8); + u64 value; + memcpy(&value, bytes.data(), 8); + + // only rewrite if exact. + u64 seconds = value / TICKS_PER_SECOND; + if (seconds * TICKS_PER_SECOND == value) { + return pretty_print::to_symbol(fmt::format("(seconds {})", seconds)); + } + + return pretty_print::to_symbol(fmt::format("#x{:x}", value)); } else if (ts.tc(TypeSpec("uint64"), type)) { assert(bytes.size() == 8); u64 value; memcpy(&value, bytes.data(), 8); return pretty_print::to_symbol(fmt::format("#x{:x}", value)); + } else if (type == TypeSpec("meters")) { + assert(bytes.size() == 4); + float value; + memcpy(&value, bytes.data(), 4); + double meters = (double)value / METER_LENGTH; + return pretty_print::build_list("meters", pretty_print::float_representation(meters)); + } else if (type == TypeSpec("degrees")) { + assert(bytes.size() == 4); + float value; + memcpy(&value, bytes.data(), 4); + double degrees = (double)value / DEGREES_LENGTH; + return pretty_print::build_list("degrees", pretty_print::float_representation(degrees)); } else if (ts.tc(TypeSpec("float"), type)) { assert(bytes.size() == 4); float value; diff --git a/docs/markdown/progress-notes/changelog.md b/docs/markdown/progress-notes/changelog.md index 494ea29a28..19dadf9560 100644 --- a/docs/markdown/progress-notes/changelog.md +++ b/docs/markdown/progress-notes/changelog.md @@ -177,4 +177,5 @@ - Lambdas and methods now support `:behavior` to specify the current process type. - `defbehavior` has been added to define a global behavior. - Auto-generated inspect methods of process now start by calling the parent type's inspect, like in GOAL. -- Fields with type `(inline-array thing)` can now be set in statics. \ No newline at end of file +- Fields with type `(inline-array thing)` can now be set in statics. +- `meters`, `degrees`, and `seconds` types have been added. \ No newline at end of file diff --git a/goal_src/engine/anim/aligner-h.gc b/goal_src/engine/anim/aligner-h.gc index 134f144a53..41e6eb6a4d 100644 --- a/goal_src/engine/anim/aligner-h.gc +++ b/goal_src/engine/anim/aligner-h.gc @@ -7,15 +7,15 @@ (deftype align-control (basic) - ((flags uint32 :offset-assert 4) - (process process-drawable :offset-assert 8) - (frame-group art-joint-anim :offset-assert 12) - (frame-num float :offset-assert 16) - (matrix matrix 2 :inline :offset-assert 32) - (transform transform 2 :inline :offset-assert 160) - (delta transformq :inline :offset-assert 256) - (last-speed float :offset-assert 304);; meters - (align transformq :inline :offset 160) + ((flags uint32 :offset-assert 4) + (process process-drawable :offset-assert 8) + (frame-group art-joint-anim :offset-assert 12) + (frame-num float :offset-assert 16) + (matrix matrix 2 :inline :offset-assert 32) + (transform transform 2 :inline :offset-assert 160) + (delta transformq :inline :offset-assert 256) + (last-speed meters :offset-assert 304) + (align transformq :inline :offset 160) ) :method-count-assert 14 :size-assert #x134 diff --git a/goal_src/engine/anim/joint-h.gc b/goal_src/engine/anim/joint-h.gc index 87878901d9..5586766985 100644 --- a/goal_src/engine/anim/joint-h.gc +++ b/goal_src/engine/anim/joint-h.gc @@ -16,7 +16,7 @@ (param float 2 :offset-assert 24) (group-sub-index int16 :offset-assert 32) (group-size int16 :offset-assert 34) - (dist float :offset-assert 36) ;; meters + (dist meters :offset-assert 36) (eval-time uint32 :offset-assert 40) (inspector-amount float :offset-assert 44) ) diff --git a/goal_src/engine/camera/camera-h.gc b/goal_src/engine/camera/camera-h.gc index 0209a32012..19fc1d4e1f 100644 --- a/goal_src/engine/camera/camera-h.gc +++ b/goal_src/engine/camera/camera-h.gc @@ -7,16 +7,16 @@ ;; definition of type camera-bank (deftype camera-bank (basic) - ((collide-move-rad float :offset-assert 4) - (joypad uint32 :offset-assert 8) - (min-detectable-velocity float :offset-assert 12) - (attack-timeout uint64 :offset-assert 16) - (default-string-max-y float :offset-assert 24) - (default-string-min-y float :offset-assert 28) - (default-string-max-z float :offset-assert 32) - (default-string-min-z float :offset-assert 36) - (default-string-push-z float :offset-assert 40) - (default-tilt-adjust float :offset-assert 44) + ((collide-move-rad float :offset-assert 4) + (joypad uint32 :offset-assert 8) + (min-detectable-velocity float :offset-assert 12) + (attack-timeout uint64 :offset-assert 16) + (default-string-max-y meters :offset-assert 24) + (default-string-min-y meters :offset-assert 28) + (default-string-max-z meters :offset-assert 32) + (default-string-min-z meters :offset-assert 36) + (default-string-push-z meters :offset-assert 40) + (default-tilt-adjust degrees :offset-assert 44) ) :method-count-assert 9 :size-assert #x30 @@ -29,12 +29,12 @@ :collide-move-rad 1638.4 :min-detectable-velocity 40.96 :attack-timeout #x4b - :default-string-max-y 12288.0 - :default-string-min-y 4096.0 - :default-string-max-z 51200.0 - :default-string-min-z 20480.0 - :default-string-push-z 40960.0 - :default-tilt-adjust -1183.289 + :default-string-max-y (meters 3.0) + :default-string-min-y (meters 1.0) + :default-string-max-z (meters 12.5) + :default-string-min-z (meters 5.0) + :default-string-push-z (meters 10.0) + :default-tilt-adjust (degrees -6.5000005) ) ) diff --git a/goal_src/engine/camera/math-camera-h.gc b/goal_src/engine/camera/math-camera-h.gc index 739087b1e1..b26b00cd59 100644 --- a/goal_src/engine/camera/math-camera-h.gc +++ b/goal_src/engine/camera/math-camera-h.gc @@ -47,54 +47,54 @@ ) (deftype math-camera (basic) - ((d float :offset-assert 4) ;; meters, camera near plane - (f float :offset-assert 8) ;; meters, camera far plane - (fov float :offset-assert 12) ;; deg, field of view angle - (x-ratio float :offset-assert 16) - (y-ratio float :offset-assert 20) - (x-pix float :offset-assert 24) - (x-clip float :offset-assert 28) - (x-clip-ratio-in float :offset-assert 32) - (x-clip-ratio-over float :offset-assert 36) - (y-pix float :offset-assert 40) - (y-clip float :offset-assert 44) - (y-clip-ratio-in float :offset-assert 48) - (y-clip-ratio-over float :offset-assert 52) - (cull-info cull-info :inline :offset-assert 56) - (fog-start float :offset-assert 120) ;; meters - (fog-end float :offset-assert 124) ;; meters - (fog-max float :offset-assert 128) - (fog-min float :offset-assert 132) - (reset int32 :offset-assert 136) - (smooth-step float :offset-assert 140) - (smooth-t float :offset-assert 144) - (perspective matrix :inline :offset-assert 160) - (isometric matrix :inline :offset-assert 224) - (sprite-2d matrix :inline :offset-assert 288) - (sprite-2d-hvdf vector :inline :offset-assert 352) - (camera-rot matrix :inline :offset-assert 368) - (inv-camera-rot matrix :inline :offset-assert 432) - (inv-camera-rot-smooth matrix :inline :offset-assert 496) - (inv-camera-rot-smooth-from quaternion :inline :offset-assert 560) - (camera-temp matrix :inline :offset-assert 576) - (prev-camera-temp matrix :inline :offset-assert 640) - (hmge-scale vector :inline :offset-assert 704) - (inv-hmge-scale vector :inline :offset-assert 720) - (hvdf-off vector :inline :offset-assert 736) - (guard vector :inline :offset-assert 752) - (vis-gifs vis-gif-tag 4 :inline :offset-assert 768) - (vis-gifs-quads uint128 4 :offset 768) - (giftex vis-gif-tag :offset 768) - (gifgr vis-gif-tag :offset 784) - (giftex-trans vis-gif-tag :offset 800) - (gifgr-trans vis-gif-tag :offset 816) - (pfog0 float :offset-assert 832) - (pfog1 float :offset-assert 836) - (trans vector :inline :offset-assert 848) - (plane uint128 4 :offset-assert 864) - (guard-plane uint128 4 :offset-assert 928) - (shrub-mat matrix :inline :offset-assert 992) - (fov-correction-factor float :offset-assert 1056) + ((d meters :offset-assert 4) + (f meters :offset-assert 8) + (fov degrees :offset-assert 12) + (x-ratio float :offset-assert 16) + (y-ratio float :offset-assert 20) + (x-pix float :offset-assert 24) + (x-clip float :offset-assert 28) + (x-clip-ratio-in float :offset-assert 32) + (x-clip-ratio-over float :offset-assert 36) + (y-pix float :offset-assert 40) + (y-clip float :offset-assert 44) + (y-clip-ratio-in float :offset-assert 48) + (y-clip-ratio-over float :offset-assert 52) + (cull-info cull-info :inline :offset-assert 56) + (fog-start meters :offset-assert 120) + (fog-end meters :offset-assert 124) + (fog-max float :offset-assert 128) + (fog-min float :offset-assert 132) + (reset int32 :offset-assert 136) + (smooth-step float :offset-assert 140) + (smooth-t float :offset-assert 144) + (perspective matrix :inline :offset-assert 160) + (isometric matrix :inline :offset-assert 224) + (sprite-2d matrix :inline :offset-assert 288) + (sprite-2d-hvdf vector :inline :offset-assert 352) + (camera-rot matrix :inline :offset-assert 368) + (inv-camera-rot matrix :inline :offset-assert 432) + (inv-camera-rot-smooth matrix :inline :offset-assert 496) + (inv-camera-rot-smooth-from quaternion :inline :offset-assert 560) + (camera-temp matrix :inline :offset-assert 576) + (prev-camera-temp matrix :inline :offset-assert 640) + (hmge-scale vector :inline :offset-assert 704) + (inv-hmge-scale vector :inline :offset-assert 720) + (hvdf-off vector :inline :offset-assert 736) + (guard vector :inline :offset-assert 752) + (vis-gifs vis-gif-tag 4 :inline :offset-assert 768) + (vis-gifs-quads uint128 4 :offset 768) + (giftex vis-gif-tag :offset 768) + (gifgr vis-gif-tag :offset 784) + (giftex-trans vis-gif-tag :offset 800) + (gifgr-trans vis-gif-tag :offset 816) + (pfog0 float :offset-assert 832) + (pfog1 float :offset-assert 836) + (trans vector :inline :offset-assert 848) + (plane uint128 4 :offset-assert 864) + (guard-plane uint128 4 :offset-assert 928) + (shrub-mat matrix :inline :offset-assert 992) + (fov-correction-factor float :offset-assert 1056) ) (:methods (new (symbol type) _type_ 0) diff --git a/goal_src/engine/collide/collide-shape-h.gc b/goal_src/engine/collide/collide-shape-h.gc index db9c7449ca..3ac61960b2 100644 --- a/goal_src/engine/collide/collide-shape-h.gc +++ b/goal_src/engine/collide/collide-shape-h.gc @@ -145,7 +145,7 @@ (offense int8 :offset 44) (prim-type int8 :offset 45) ;; overlay of the local-sphere w - (radius float :offset 60) ;; meters + (radius meters :offset 60) ) :method-count-assert 28 :size-assert #x48 @@ -354,7 +354,7 @@ (ground-poly-normal vector :inline :offset-assert 368) (ground-touch-point vector :inline :offset-assert 384) (shadow-pos vector :inline :offset-assert 400) - (ground-impact-vel float :offset-assert 416) ;; meters + (ground-impact-vel meters :offset-assert 416) (surface-angle float :offset-assert 420) (poly-angle float :offset-assert 424) (touch-angle float :offset-assert 428) diff --git a/goal_src/engine/data/art-h.gc b/goal_src/engine/data/art-h.gc index e8f6143dd7..1a793e796e 100644 --- a/goal_src/engine/data/art-h.gc +++ b/goal_src/engine/data/art-h.gc @@ -201,20 +201,20 @@ ) (deftype skeleton-group (basic) - ((art-group-name basic :offset-assert 4) - (jgeo int32 :offset-assert 8) - (janim int32 :offset-assert 12) - (bounds vector :inline :offset-assert 16) - (radius float :offset 28) - (mgeo uint16 4 :offset-assert 32) - (max-lod int32 :offset-assert 40) - (lod-dist float 4 :offset-assert 44) - (longest-edge float :offset-assert 60) - (texture-level int8 :offset-assert 64) - (version int8 :offset-assert 65) - (shadow int8 :offset-assert 66) - (sort int8 :offset-assert 67) - (_pad uint8 4 :offset-assert 68) + ((art-group-name basic :offset-assert 4) + (jgeo int32 :offset-assert 8) + (janim int32 :offset-assert 12) + (bounds vector :inline :offset-assert 16) + (radius meters :offset 28) + (mgeo uint16 4 :offset-assert 32) + (max-lod int32 :offset-assert 40) + (lod-dist float 4 :offset-assert 44) + (longest-edge meters :offset-assert 60) + (texture-level int8 :offset-assert 64) + (version int8 :offset-assert 65) + (shadow int8 :offset-assert 66) + (sort int8 :offset-assert 67) + (_pad uint8 4 :offset-assert 68) ) :method-count-assert 9 :size-assert #x48 @@ -223,8 +223,8 @@ (declare-type merc-ctrl basic) (deftype lod-group (structure) - ((geo merc-ctrl :offset-assert 0) - (dist float :offset-assert 4) ;; meters + ((geo merc-ctrl :offset-assert 0) + (dist meters :offset-assert 4) ) :pack-me :method-count-assert 9 @@ -265,7 +265,7 @@ (cur-lod int8 :offset-assert 62) (desired-lod int8 :offset-assert 63) (ripple ripple-control :offset-assert 64) - (longest-edge float :offset-assert 68) ;; meters + (longest-edge meters :offset-assert 68) (longest-edge? uint32 :offset 68) (light-index uint8 :offset-assert 72) (dummy uint8 2 :offset-assert 73) @@ -280,7 +280,7 @@ (shadow-ctrl shadow-control :offset-assert 96) (origin vector :inline :offset-assert 112) (bounds vector :inline :offset-assert 128) - (radius float :offset 140) ;; meters + (radius meters :offset 140) (color-mult rgbaf :inline :offset-assert 144) (color-emissive rgbaf :inline :offset-assert 160) (secondary-interp float :offset-assert 176) diff --git a/goal_src/engine/debug/debug.gc b/goal_src/engine/debug/debug.gc index f7e01565f6..f7420e26cd 100644 --- a/goal_src/engine/debug/debug.gc +++ b/goal_src/engine/debug/debug.gc @@ -1176,7 +1176,7 @@ ) ) -(defun-debug add-debug-vector ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 vector) (arg4 float) (arg5 rgba)) +(defun-debug add-debug-vector ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 vector) (arg4 meters) (arg5 rgba)) (if (not arg0) (return #f) ) diff --git a/goal_src/engine/game/fact-h.gc b/goal_src/engine/game/fact-h.gc index 5f1c4e9c7c..b43b2dae1d 100644 --- a/goal_src/engine/game/fact-h.gc +++ b/goal_src/engine/game/fact-h.gc @@ -9,21 +9,21 @@ ;; All game code should reference *FACT-bank* to determine these parameters (deftype fact-bank (basic) - ((eco-level-max float :offset-assert 4) - (eco-single-inc float :offset-assert 8) - (eco-full-inc float :offset-assert 12) - (eco-single-timeout uint64 :offset-assert 16) ; usec - (eco-full-timeout uint64 :offset-assert 24) ; usec - (dummy uint64 :offset-assert 32) ; usec - (health-max-default float :offset-assert 40) - (health-single-inc float :offset-assert 44) - (eco-pill-max-default float :offset-assert 48) - (health-small-inc float :offset-assert 52) - (buzzer-max-default float :offset-assert 56) - (buzzer-single-inc float :offset-assert 60) - (suck-bounce-dist float :offset-assert 64) ; meters - (suck-suck-dist float :offset-assert 68) ; meters - (default-pill-inc float :offset-assert 72) + ((eco-level-max float :offset-assert 4) + (eco-single-inc float :offset-assert 8) + (eco-full-inc float :offset-assert 12) + (eco-single-timeout seconds :offset-assert 16) + (eco-full-timeout seconds :offset-assert 24) + (dummy seconds :offset-assert 32) + (health-max-default float :offset-assert 40) + (health-single-inc float :offset-assert 44) + (eco-pill-max-default float :offset-assert 48) + (health-small-inc float :offset-assert 52) + (buzzer-max-default float :offset-assert 56) + (buzzer-single-inc float :offset-assert 60) + (suck-bounce-dist meters :offset-assert 64) + (suck-suck-dist meters :offset-assert 68) + (default-pill-inc float :offset-assert 72) ) :method-count-assert 9 :size-assert #x4c @@ -101,23 +101,23 @@ ) (deftype fact-info-target (fact-info) - ((eco-type int32 :offset-assert 40) - (eco-level float :offset-assert 44) - (eco-pickup-time uint64 :offset-assert 48) - (eco-timeout uint64 :offset-assert 56) ;; usec - (health float :offset-assert 64) - (health-max float :offset-assert 68) - (buzzer float :offset-assert 72) - (buzzer-max float :offset-assert 76) - (eco-pill float :offset-assert 80) - (eco-pill-max float :offset-assert 84) - (health-pickup-time uint64 :offset-assert 88) - (eco-source uint64 :offset-assert 96) - (eco-source-time uint64 :offset-assert 104) - (money-pickup-time uint64 :offset-assert 112) - (buzzer-pickup-time uint64 :offset-assert 120) - (fuel-cell-pickup-time uint64 :offset-assert 128) - (eco-pill-pickup-time uint64 :offset-assert 136) + ((eco-type int32 :offset-assert 40) + (eco-level float :offset-assert 44) + (eco-pickup-time uint64 :offset-assert 48) + (eco-timeout seconds :offset-assert 56) + (health float :offset-assert 64) + (health-max float :offset-assert 68) + (buzzer float :offset-assert 72) + (buzzer-max float :offset-assert 76) + (eco-pill float :offset-assert 80) + (eco-pill-max float :offset-assert 84) + (health-pickup-time uint64 :offset-assert 88) + (eco-source uint64 :offset-assert 96) + (eco-source-time uint64 :offset-assert 104) + (money-pickup-time uint64 :offset-assert 112) + (buzzer-pickup-time uint64 :offset-assert 120) + (fuel-cell-pickup-time uint64 :offset-assert 128) + (eco-pill-pickup-time uint64 :offset-assert 136) ) :method-count-assert 12 :size-assert #x90 @@ -128,13 +128,13 @@ ) (deftype fact-info-enemy (fact-info) - ((speed float :offset-assert 40) - (idle-distance float :offset-assert 44) ; meters - (notice-top float :offset-assert 48) ; meters - (notice-bottom float :offset-assert 52) ; meters - (cam-horz float :offset-assert 56) ; meters - (cam-vert float :offset-assert 60) ; meters - (cam-notice-dist float :offset-assert 64) ; meters + ((speed float :offset-assert 40) + (idle-distance meters :offset-assert 44) + (notice-top meters :offset-assert 48) + (notice-bottom meters :offset-assert 52) + (cam-horz meters :offset-assert 56) + (cam-vert meters :offset-assert 60) + (cam-notice-dist meters :offset-assert 64) ) :method-count-assert 12 :size-assert #x44 diff --git a/goal_src/engine/game/game-h.gc b/goal_src/engine/game/game-h.gc index 9db75e3018..31438ff196 100644 --- a/goal_src/engine/game/game-h.gc +++ b/goal_src/engine/game/game-h.gc @@ -96,21 +96,21 @@ ) (deftype attack-info (structure) - ((trans vector :inline :offset-assert 0) - (vector vector :inline :offset-assert 16) - (intersection vector :inline :offset-assert 32) - (attacker uint64 :offset-assert 48) ;; handle - (invinc-time uint64 :offset-assert 56) - (mask uint32 :offset-assert 64) - (mode basic :offset-assert 68) - (shove-back float :offset-assert 72) ;; meters - (shove-up float :offset-assert 76) ;; meters - (speed float :offset-assert 80) ;; meters - (dist float :offset-assert 84) ;; meters - (control float :offset-assert 88) - (angle basic :offset-assert 92) - (rotate-to float :offset-assert 96) ;; deg - (prev-state basic :offset-assert 100) + ((trans vector :inline :offset-assert 0) + (vector vector :inline :offset-assert 16) + (intersection vector :inline :offset-assert 32) + (attacker uint64 :offset-assert 48) ;; handle + (invinc-time uint64 :offset-assert 56) + (mask uint32 :offset-assert 64) + (mode basic :offset-assert 68) + (shove-back meters :offset-assert 72) + (shove-up meters :offset-assert 76) + (speed meters :offset-assert 80) + (dist meters :offset-assert 84) + (control float :offset-assert 88) + (angle basic :offset-assert 92) + (rotate-to degrees :offset-assert 96) + (prev-state basic :offset-assert 100) ) :method-count-assert 10 :size-assert #x68 diff --git a/goal_src/engine/game/generic-obs-h.gc b/goal_src/engine/game/generic-obs-h.gc index 373bbfbc26..f22323a187 100644 --- a/goal_src/engine/game/generic-obs-h.gc +++ b/goal_src/engine/game/generic-obs-h.gc @@ -33,7 +33,7 @@ (deftype part-spawner (process-drawable) ((mode uint32 :offset-assert 176) (enable basic :offset-assert 180) - (radius float :offset-assert 184) ;; meters + (radius meters :offset-assert 184) (world-sphere sphere :inline :offset-assert 192) ) :heap-base #x60 @@ -122,8 +122,8 @@ (deftype swingpole (process) ((root basic :offset-assert 112) (dir vector :inline :offset-assert 128) - (range float :offset-assert 144) ;; meters - (edge-length float :offset-assert 148) ;; meters + (range meters :offset-assert 144) + (edge-length meters :offset-assert 148) ) :heap-base #x30 :method-count-assert 14 diff --git a/goal_src/engine/gfx/mood-h.gc b/goal_src/engine/gfx/mood-h.gc index 8ec5c92988..90935660a0 100644 --- a/goal_src/engine/gfx/mood-h.gc +++ b/goal_src/engine/gfx/mood-h.gc @@ -6,13 +6,13 @@ ;; dgos: GAME, ENGINE (deftype mood-fog (structure) - ((fog-color vector :inline :offset-assert 0) - (fog-dists vector :inline :offset-assert 16) - (fog-start float :offset 16) ;; meters - (fog-end float :offset 20) ;;meters - (fog-max float :offset 24) - (fog-min float :offset 28) - (erase-color vector :inline :offset-assert 32) + ((fog-color vector :inline :offset-assert 0) + (fog-dists vector :inline :offset-assert 16) + (fog-start meters :offset 16) + (fog-end meters :offset 20) + (fog-max float :offset 24) + (fog-min float :offset 28) + (erase-color vector :inline :offset-assert 32) ) :method-count-assert 9 :size-assert #x30 diff --git a/goal_src/engine/gfx/tie/prototype-h.gc b/goal_src/engine/gfx/tie/prototype-h.gc index c16c62c3d7..c8a2aa19f6 100644 --- a/goal_src/engine/gfx/tie/prototype-h.gc +++ b/goal_src/engine/gfx/tie/prototype-h.gc @@ -6,25 +6,25 @@ ;; dgos: GAME, ENGINE (deftype prototype-bucket (basic) - ((name basic :offset-assert 4) - (flags uint32 :offset-assert 8) - (in-level uint16 :offset-assert 12) - (utextures uint16 :offset-assert 14) - (geometry drawable 4 :offset-assert 16) - (dists vector :inline :offset-assert 32) - (rdists vector :inline :offset-assert 48) - (next uint32 4 :offset-assert 64) - (count uint16 4 :offset-assert 80) - (near-plane float :offset 32) - (near-stiff float :offset 36) - (mid-plane float :offset 40) - (far-plane float :offset 44) - (rlength-near float :offset 48) - (rlength-stiff float :offset 52) - (rlength-mid float :offset 56) - (stiffness float :offset 60) - (next-clear uint128 :offset 64) - (count-clear uint64 :offset 80) + ((name basic :offset-assert 4) + (flags uint32 :offset-assert 8) + (in-level uint16 :offset-assert 12) + (utextures uint16 :offset-assert 14) + (geometry drawable 4 :offset-assert 16) + (dists vector :inline :offset-assert 32) + (rdists vector :inline :offset-assert 48) + (next uint32 4 :offset-assert 64) + (count uint16 4 :offset-assert 80) + (near-plane meters :offset 32) + (near-stiff meters :offset 36) + (mid-plane meters :offset 40) + (far-plane meters :offset 44) + (rlength-near float :offset 48) + (rlength-stiff float :offset 52) + (rlength-mid float :offset 56) + (stiffness float :offset 60) + (next-clear uint128 :offset 64) + (count-clear uint64 :offset 80) ) :method-count-assert 9 :size-assert #x58 diff --git a/goal_src/engine/gfx/water/water-h.gc b/goal_src/engine/gfx/water/water-h.gc index 2da83f1299..47cdfcb711 100644 --- a/goal_src/engine/gfx/water/water-h.gc +++ b/goal_src/engine/gfx/water/water-h.gc @@ -7,40 +7,40 @@ ;; definition of type water-control (deftype water-control (basic) - ((flags uint32 :offset-assert 4) - (process process :offset-assert 8) - (joint-index int32 :offset-assert 12) - (top-y-offset float :offset-assert 16) - (ripple-size float :offset-assert 20) ; meters - (enter-water-time uint64 :offset-assert 24) - (wade-time uint64 :offset-assert 32) - (on-water-time uint64 :offset-assert 40) - (enter-swim-time uint64 :offset-assert 48) - (swim-time uint64 :offset-assert 56) - (base-height float :offset-assert 64) ; meters - (wade-height float :offset-assert 68) ; meters - (swim-height float :offset-assert 72) ; meters - (surface-height float :offset-assert 76) ; meters - (bottom-height float :offset-assert 80) ; meters - (height float :offset-assert 84) ; meters - (height-offset float 4 :offset-assert 88) - (real-ocean-offset float :offset 88) ; meters - (ocean-offset float :offset 92) ; meters - (bob-offset float :offset 96) ; meters - (align-offset float :offset 100) ; meters - (swim-depth float :offset-assert 104) ; meters - (bob smush-control :inline :offset-assert 112) - (volume uint64 :offset-assert 144) ;; handle? - (bottom vector 2 :inline :offset-assert 160) - (top vector 2 :inline :offset-assert 192) - (enter-water-pos vector :inline :offset-assert 224) - (drip-old-pos vector :inline :offset-assert 240) - (drip-joint-index int32 :offset-assert 256) - (drip-wetness float :offset-assert 260) - (drip-time uint64 :offset-assert 264) - (drip-speed float :offset-assert 272) - (drip-height float :offset-assert 276) ; meters - (drip-mult float :offset-assert 280) + ((flags uint32 :offset-assert 4) + (process process :offset-assert 8) + (joint-index int32 :offset-assert 12) + (top-y-offset float :offset-assert 16) + (ripple-size meters :offset-assert 20) + (enter-water-time uint64 :offset-assert 24) + (wade-time uint64 :offset-assert 32) + (on-water-time uint64 :offset-assert 40) + (enter-swim-time uint64 :offset-assert 48) + (swim-time uint64 :offset-assert 56) + (base-height meters :offset-assert 64) + (wade-height meters :offset-assert 68) + (swim-height meters :offset-assert 72) + (surface-height meters :offset-assert 76) + (bottom-height meters :offset-assert 80) + (height meters :offset-assert 84) + (height-offset float 4 :offset-assert 88) + (real-ocean-offset meters :offset 88) + (ocean-offset meters :offset 92) + (bob-offset meters :offset 96) + (align-offset meters :offset 100) + (swim-depth meters :offset-assert 104) + (bob smush-control :inline :offset-assert 112) + (volume uint64 :offset-assert 144) + (bottom vector 2 :inline :offset-assert 160) + (top vector 2 :inline :offset-assert 192) + (enter-water-pos vector :inline :offset-assert 224) + (drip-old-pos vector :inline :offset-assert 240) + (drip-joint-index int32 :offset-assert 256) + (drip-wetness float :offset-assert 260) + (drip-time uint64 :offset-assert 264) + (drip-speed float :offset-assert 272) + (drip-height meters :offset-assert 276) + (drip-mult float :offset-assert 280) ) :method-count-assert 17 :size-assert #x11c @@ -86,10 +86,10 @@ ) (deftype water-vol (process-drawable) - ((water-height float :offset-assert 176) - (wade-height float :offset-assert 180) - (swim-height float :offset-assert 184) - (bottom-height float :offset-assert 188) + ((water-height meters :offset-assert 176) + (wade-height meters :offset-assert 180) + (swim-height meters :offset-assert 184) + (bottom-height meters :offset-assert 188) (attack-event basic :offset-assert 192) (target uint64 :offset-assert 200) (flags uint32 :offset-assert 208) diff --git a/goal_src/engine/level/level-h.gc b/goal_src/engine/level/level-h.gc index a110836c8f..b90367860a 100644 --- a/goal_src/engine/level/level-h.gc +++ b/goal_src/engine/level/level-h.gc @@ -65,7 +65,7 @@ (bsp-mask uint64 :offset-assert 80) ;; ?? (bsphere sphere :offset-assert 88) ;; boundings sphere of level? (buzzer int32 :offset-assert 92) ;; which task is the scout fly? - (bottom-height float :offset-assert 96) ;; meters + (bottom-height meters :offset-assert 96) (run-packages pair :offset-assert 100) ;; possibly unused? (prev-level basic :offset-assert 104) (next-level basic :offset-assert 108) @@ -118,7 +118,7 @@ (ambient entity-ambient-data-array :offset-assert 288) (closest-object float 9 :offset-assert 292) (upload-size int32 9 :offset-assert 328) - (level-distance float :offset-assert 364) ; meters + (level-distance meters :offset-assert 364) (inside-sphere? symbol :offset-assert 368) (inside-boxes? symbol :offset-assert 372) (display? symbol :offset-assert 376) diff --git a/goal_src/engine/level/level-info.gc b/goal_src/engine/level/level-info.gc index 8b391e3682..2fea2e14d0 100644 --- a/goal_src/engine/level/level-info.gc +++ b/goal_src/engine/level/level-info.gc @@ -107,7 +107,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x -5079040.0 :z 4055040.0 :w 1024000.0) :buzzer 95 - :bottom-height -466944.0 + :bottom-height (meters -114.0) :run-packages '("common" "villagep") :wait-for-load #f ) @@ -228,7 +228,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x -444416.0 :y 133120.0 :z 360448.0 :w 843776.0) :buzzer 75 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #t ) @@ -273,7 +273,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x -819200.0 :z -1556480.0 :w 1474560.0) :buzzer 20 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #t ) @@ -318,7 +318,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x 1474560.0 :y 2519040.0 :z -983040.0 :w 2457600.0) :buzzer 7 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #t ) @@ -361,7 +361,7 @@ :alt-load-commands '() :bsphere (new 'static 'sphere :x 1486848.0 :y -1269760.0 :z -1064960.0 :w 1228800.0) :buzzer 7 - :bottom-height -327680.0 + :bottom-height (meters -80.0) :run-packages '("common" "jungle") :wait-for-load #f ) @@ -527,7 +527,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :z 4096000.0 :w 1269760.0) :buzzer 28 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #f ) @@ -585,7 +585,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x 419840.0 :y 151552.0 :z -3006464.0 :w 2048000.0) :buzzer 68 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #t ) @@ -658,7 +658,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x 1392640.0 :y 81920.0 :z -6770688.0 :w 696320.0) :buzzer 76 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #t ) @@ -744,7 +744,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x 2867200.0 :y -2048000.0 :z -6553600.0 :w 2048000.0) :buzzer 49 - :bottom-height -2048000.0 + :bottom-height (meters -500.0) :run-packages '("common") :wait-for-load #f ) @@ -802,7 +802,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x 2867200.0 :y -2048000.0 :z -6553600.0 :w 2048000.0) :buzzer 49 - :bottom-height -2048000.0 + :bottom-height (meters -500.0) :run-packages '("common" "sunken") :wait-for-load #f ) @@ -979,7 +979,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x 1986560.0 :z -8417280.0 :w 1003520.0) :buzzer 43 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #t ) @@ -1024,7 +1024,7 @@ :bsphere (new 'static 'sphere :x -753664.0 :y 131072.0 :z -6569984.0 :w 974848.0) :buzzer 57 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #t ) @@ -1096,7 +1096,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x 2334720.0 :y 180224.0 :z -10653696.0 :w 3653632.0) :buzzer 88 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #t ) @@ -1170,7 +1170,7 @@ :bsphere (new 'static 'sphere :x 4571136.0 :y 389120.0 :z -14323712.0 :w 409600.0) :buzzer 77 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #f ) @@ -1327,7 +1327,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x 3072000.0 :y 1142784.0 :z -14028800.0 :w 1290240.0) :buzzer 65 - :bottom-height 524288.0 + :bottom-height (meters 128.0) :run-packages '("common") :wait-for-load #f ) @@ -1399,7 +1399,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x 4517888.0 :y 114688.0 :z -12484608.0 :w 655360.0) :buzzer 85 - :bottom-height -245760.0 + :bottom-height (meters -60.0) :run-packages '("common") :wait-for-load #f ) @@ -1443,7 +1443,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x 3620864.0 :y 266240.0 :z -11935744.0 :w 368640.0) :buzzer 85 - :bottom-height -245760.0 + :bottom-height (meters -60.0) :run-packages '("common" "maincave") :wait-for-load #t ) @@ -1502,7 +1502,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x 5529600.0 :y 81920.0 :z -11468800.0 :w 512000.0) :buzzer 85 - :bottom-height -245760.0 + :bottom-height (meters -60.0) :run-packages '("common" "maincave") :wait-for-load #t ) @@ -1592,7 +1592,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x 8806400.0 :y 131072.0 :z -15564800.0 :w 3174400.0) :buzzer 90 - :bottom-height -286720.0 + :bottom-height (meters -70.0) :run-packages '("common") :wait-for-load #t ) @@ -1773,7 +1773,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x 11436032.0 :y -462848.0 :z -19750912.0 :w 1228800.0) :buzzer 91 - :bottom-height -466944.0 + :bottom-height (meters -114.0) :run-packages '("common") :wait-for-load #t ) @@ -1837,7 +1837,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x 11837440.0 :y 2129920.0 :z -19578880.0 :w 778240.0) :buzzer 91 - :bottom-height -466944.0 + :bottom-height (meters -114.0) :run-packages '("common") :wait-for-load #f ) @@ -1865,7 +1865,7 @@ :alt-load-commands '() :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere) - :bottom-height -40960000000.0 + :bottom-height (meters -10000000.0) :run-packages '("common") :wait-for-load #f ) @@ -1909,7 +1909,7 @@ :alt-load-commands '() :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere) - :bottom-height -40960000000.0 + :bottom-height (meters -10000000.0) :run-packages '("common") :wait-for-load #f ) @@ -1953,7 +1953,7 @@ :alt-load-commands '() :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x -40960.0 :z 40960.0 :w 1126400.0) - :bottom-height -40960000000.0 + :bottom-height (meters -10000000.0) :run-packages '("common") :wait-for-load #f ) @@ -1996,7 +1996,7 @@ :alt-load-commands '() :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :w 167772160000.0) - :bottom-height -40960000000.0 + :bottom-height (meters -10000000.0) :run-packages '() :wait-for-load #t ) @@ -2024,7 +2024,7 @@ :alt-load-commands '() :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :w 167772160000.0) - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '() :wait-for-load #t ) diff --git a/goal_src/engine/math/transformq-h.gc b/goal_src/engine/math/transformq-h.gc index 4989383ae1..398c079dfb 100644 --- a/goal_src/engine/math/transformq-h.gc +++ b/goal_src/engine/math/transformq-h.gc @@ -28,14 +28,14 @@ ;; Representing a translate/rotate/scale with a quaternion and a velocity. ;; definition of type trsqv (deftype trsqv (trsq) - ((pause-adjust-distance float :offset 4) - (nav-radius float :offset 8) - (transv vector :inline :offset-assert 64) - (rotv vector :inline :offset-assert 80) - (scalev vector :inline :offset-assert 96) - (dir-targ quaternion :inline :offset-assert 112) - (angle-change-time uint64 :offset-assert 128) - (old-y-angle-diff float :offset-assert 136) + ((pause-adjust-distance meters :offset 4) + (nav-radius meters :offset 8) + (transv vector :inline :offset-assert 64) + (rotv vector :inline :offset-assert 80) + (scalev vector :inline :offset-assert 96) + (dir-targ quaternion :inline :offset-assert 112) + (angle-change-time uint64 :offset-assert 128) + (old-y-angle-diff float :offset-assert 136) ) :method-count-assert 28 :size-assert #x8c diff --git a/goal_src/engine/nav/navigate-h.gc b/goal_src/engine/nav/navigate-h.gc index 6861bb4f3b..48d1a2df07 100644 --- a/goal_src/engine/nav/navigate-h.gc +++ b/goal_src/engine/nav/navigate-h.gc @@ -40,17 +40,17 @@ ) (deftype nav-ray (structure) - ((current-pos vector :inline :offset-assert 0) - (dir vector :inline :offset-assert 16) - (dest-pos vector :inline :offset-assert 32) - (current-poly nav-poly :offset-assert 48) - (next-poly nav-poly :offset-assert 52) - (len float :offset-assert 56) - (last-edge int8 :offset-assert 60) - (terminated basic :offset-assert 64) - (reached-dest basic :offset-assert 68) - (hit-boundary basic :offset-assert 72) - (hit-gap basic :offset-assert 76) + ((current-pos vector :inline :offset-assert 0) + (dir vector :inline :offset-assert 16) + (dest-pos vector :inline :offset-assert 32) + (current-poly nav-poly :offset-assert 48) + (next-poly nav-poly :offset-assert 52) + (len meters :offset-assert 56) + (last-edge int8 :offset-assert 60) + (terminated basic :offset-assert 64) + (reached-dest basic :offset-assert 68) + (hit-boundary basic :offset-assert 72) + (hit-gap basic :offset-assert 76) ) :method-count-assert 9 :size-assert #x50 @@ -194,20 +194,20 @@ ) (deftype nav-control (basic) - ((flags nav-control-flags :offset-assert 4) - (process basic :offset-assert 8) - (shape collide-shape :offset-assert 12) - (mesh nav-mesh :offset-assert 16) - (gap-event basic :offset-assert 20) - (block-event basic :offset-assert 24) - (current-poly nav-poly :offset-assert 28) - (next-poly nav-poly :offset-assert 32) - (target-poly nav-poly :offset-assert 36) - (portal nav-route-portal 2 :offset-assert 40) - (nearest-y-threshold float :offset-assert 48) - (event-temp vector :inline :offset-assert 64) - (old-travel vector :inline :offset-assert 80) - (blocked-travel vector :inline :offset-assert 96) + ((flags nav-control-flags :offset-assert 4) + (process basic :offset-assert 8) + (shape collide-shape :offset-assert 12) + (mesh nav-mesh :offset-assert 16) + (gap-event basic :offset-assert 20) + (block-event basic :offset-assert 24) + (current-poly nav-poly :offset-assert 28) + (next-poly nav-poly :offset-assert 32) + (target-poly nav-poly :offset-assert 36) + (portal nav-route-portal 2 :offset-assert 40) + (nearest-y-threshold meters :offset-assert 48) + (event-temp vector :inline :offset-assert 64) + (old-travel vector :inline :offset-assert 80) + (blocked-travel vector :inline :offset-assert 96) (prev-pos vector :inline :offset-assert 112) (extra-nav-sphere vector :inline :offset-assert 128) (travel vector :inline :offset-assert 144) diff --git a/goal_src/engine/physics/dynamics-h.gc b/goal_src/engine/physics/dynamics-h.gc index 699c67f43c..d1568e63ca 100644 --- a/goal_src/engine/physics/dynamics-h.gc +++ b/goal_src/engine/physics/dynamics-h.gc @@ -6,13 +6,13 @@ ;; dgos: GAME, ENGINE (deftype dynamics (basic) - ((name basic :offset-assert 4) - (gravity-max float :offset-assert 8) ;; meters - (gravity-length float :offset-assert 12) ;; meters - (gravity vector :inline :offset-assert 16) - (gravity-normal vector :inline :offset-assert 32) - (walk-distance float :offset-assert 48) ;; meters - (run-distance float :offset-assert 52) ;; meters + ((name basic :offset-assert 4) + (gravity-max meters :offset-assert 8) + (gravity-length meters :offset-assert 12) + (gravity vector :inline :offset-assert 16) + (gravity-normal vector :inline :offset-assert 32) + (walk-distance meters :offset-assert 48) + (run-distance meters :offset-assert 52) ) :method-count-assert 9 :size-assert #x38 diff --git a/goal_src/engine/physics/trajectory-h.gc b/goal_src/engine/physics/trajectory-h.gc index bfa313d51b..566d3deef5 100644 --- a/goal_src/engine/physics/trajectory-h.gc +++ b/goal_src/engine/physics/trajectory-h.gc @@ -7,10 +7,10 @@ ;; definition of type trajectory (deftype trajectory (structure) - ((initial-position vector :inline :offset-assert 0) - (initial-velocity vector :inline :offset-assert 16) - (time float :offset-assert 32) - (gravity float :offset-assert 36) + ((initial-position vector :inline :offset-assert 0) + (initial-velocity vector :inline :offset-assert 16) + (time float :offset-assert 32) + (gravity meters :offset-assert 36) ) :method-count-assert 16 :size-assert #x28 diff --git a/goal_src/engine/sparticle/sparticle-launcher-h.gc b/goal_src/engine/sparticle/sparticle-launcher-h.gc index 834eb18272..9a322de7d9 100644 --- a/goal_src/engine/sparticle/sparticle-launcher-h.gc +++ b/goal_src/engine/sparticle/sparticle-launcher-h.gc @@ -36,15 +36,15 @@ ) (deftype sparticle-group-item (structure) - ((launcher uint32 :offset-assert 0) - (fade-after float :offset-assert 4) - (falloff-to float :offset-assert 8) - (flags uint16 :offset-assert 12) - (period uint16 :offset-assert 14) - (length uint16 :offset-assert 16) - (offset uint16 :offset-assert 18) - (hour-mask uint32 :offset-assert 20) - (binding uint32 :offset-assert 24) + ((launcher uint32 :offset-assert 0) + (fade-after meters :offset-assert 4) + (falloff-to meters :offset-assert 8) + (flags uint16 :offset-assert 12) + (period uint16 :offset-assert 14) + (length uint16 :offset-assert 16) + (offset uint16 :offset-assert 18) + (hour-mask uint32 :offset-assert 20) + (binding uint32 :offset-assert 24) ) :method-count-assert 9 :size-assert #x1c diff --git a/goal_src/engine/target/joint-mod-h.gc b/goal_src/engine/target/joint-mod-h.gc index fd9f113d36..2a2f2c1bd1 100644 --- a/goal_src/engine/target/joint-mod-h.gc +++ b/goal_src/engine/target/joint-mod-h.gc @@ -32,25 +32,25 @@ ;; Although the mode is a bitfield, it appears that multiple kinds of mods cannot be ;; activated at the same time. (deftype joint-mod (basic) - ((mode joint-mod-handler-mode :offset-assert 4) - (process process-drawable :offset-assert 8) - (joint cspace :offset-assert 12) - (target vector :inline :offset-assert 16) - (twist vector :inline :offset-assert 32) - (twist-max vector :inline :offset-assert 48) - (trans vector :inline :offset-assert 64) - (quat quaternion :inline :offset-assert 80) - (scale vector :inline :offset-assert 96) - (notice-time uint64 :offset-assert 112) - (flex-blend float :offset-assert 120) - (blend float :offset-assert 124) - (max-dist float :offset-assert 128) - (ignore-angle float :offset-assert 132) - (up uint8 :offset-assert 136) - (nose uint8 :offset-assert 137) - (ear uint8 :offset-assert 138) - (shutting-down? basic :offset-assert 140) - (parented-scale? basic :offset 128) + ((mode joint-mod-handler-mode :offset-assert 4) + (process process-drawable :offset-assert 8) + (joint cspace :offset-assert 12) + (target vector :inline :offset-assert 16) + (twist vector :inline :offset-assert 32) + (twist-max vector :inline :offset-assert 48) + (trans vector :inline :offset-assert 64) + (quat quaternion :inline :offset-assert 80) + (scale vector :inline :offset-assert 96) + (notice-time uint64 :offset-assert 112) + (flex-blend float :offset-assert 120) + (blend float :offset-assert 124) + (max-dist meters :offset-assert 128) + (ignore-angle degrees :offset-assert 132) + (up uint8 :offset-assert 136) + (nose uint8 :offset-assert 137) + (ear uint8 :offset-assert 138) + (shutting-down? basic :offset-assert 140) + (parented-scale? basic :offset 128) ) :method-count-assert 16 :size-assert #x90 diff --git a/goal_src/levels/common/nav-enemy-h.gc b/goal_src/levels/common/nav-enemy-h.gc index acaaa6f39d..f597872312 100644 --- a/goal_src/levels/common/nav-enemy-h.gc +++ b/goal_src/levels/common/nav-enemy-h.gc @@ -7,57 +7,57 @@ ;; definition of type nav-enemy-info (deftype nav-enemy-info (basic) - ((idle-anim int32 :offset-assert 4) - (walk-anim int32 :offset-assert 8) - (turn-anim int32 :offset-assert 12) - (notice-anim int32 :offset-assert 16) - (run-anim int32 :offset-assert 20) - (jump-anim int32 :offset-assert 24) - (jump-land-anim int32 :offset-assert 28) - (victory-anim int32 :offset-assert 32) - (taunt-anim int32 :offset-assert 36) - (die-anim int32 :offset-assert 40) - (neck-joint int32 :offset-assert 44) - (player-look-at-joint int32 :offset-assert 48) - (run-travel-speed float :offset-assert 52) - (run-rotate-speed float :offset-assert 56) - (run-acceleration float :offset-assert 60) - (run-turn-time uint64 :offset-assert 64) - (walk-travel-speed float :offset-assert 72) - (walk-rotate-speed float :offset-assert 76) - (walk-acceleration float :offset-assert 80) - (walk-turn-time uint64 :offset-assert 88) - (attack-shove-back float :offset-assert 96) - (attack-shove-up float :offset-assert 100) - (shadow-size float :offset-assert 104) - (notice-nav-radius float :offset-assert 108) - (nav-nearest-y-threshold float :offset-assert 112) - (notice-distance float :offset-assert 116) - (proximity-notice-distance float :offset-assert 120) - (stop-chase-distance float :offset-assert 124) - (frustration-distance float :offset-assert 128) - (frustration-time uint64 :offset-assert 136) - (die-anim-hold-frame float :offset-assert 144) - (jump-anim-start-frame float :offset-assert 148) - (jump-land-anim-end-frame float :offset-assert 152) - (jump-height-min float :offset-assert 156) - (jump-height-factor float :offset-assert 160) - (jump-start-anim-speed float :offset-assert 164) - (shadow-max-y float :offset-assert 168) - (shadow-min-y float :offset-assert 172) - (shadow-locus-dist float :offset-assert 176) - (use-align basic :offset-assert 180) - (draw-shadow basic :offset-assert 184) - (move-to-ground basic :offset-assert 188) - (hover-if-no-ground basic :offset-assert 192) - (use-momentum basic :offset-assert 196) - (use-flee basic :offset-assert 200) - (use-proximity-notice basic :offset-assert 204) - (use-jump-blocked basic :offset-assert 208) - (use-jump-patrol basic :offset-assert 212) - (gnd-collide-with uint64 :offset-assert 216) - (debug-draw-neck basic :offset-assert 224) - (debug-draw-jump basic :offset-assert 228) + ((idle-anim int32 :offset-assert 4) + (walk-anim int32 :offset-assert 8) + (turn-anim int32 :offset-assert 12) + (notice-anim int32 :offset-assert 16) + (run-anim int32 :offset-assert 20) + (jump-anim int32 :offset-assert 24) + (jump-land-anim int32 :offset-assert 28) + (victory-anim int32 :offset-assert 32) + (taunt-anim int32 :offset-assert 36) + (die-anim int32 :offset-assert 40) + (neck-joint int32 :offset-assert 44) + (player-look-at-joint int32 :offset-assert 48) + (run-travel-speed meters :offset-assert 52) + (run-rotate-speed degrees :offset-assert 56) + (run-acceleration meters :offset-assert 60) + (run-turn-time seconds :offset-assert 64) + (walk-travel-speed meters :offset-assert 72) + (walk-rotate-speed degrees :offset-assert 76) + (walk-acceleration meters :offset-assert 80) + (walk-turn-time seconds :offset-assert 88) + (attack-shove-back meters :offset-assert 96) + (attack-shove-up meters :offset-assert 100) + (shadow-size meters :offset-assert 104) + (notice-nav-radius meters :offset-assert 108) + (nav-nearest-y-threshold meters :offset-assert 112) + (notice-distance meters :offset-assert 116) + (proximity-notice-distance meters :offset-assert 120) + (stop-chase-distance meters :offset-assert 124) + (frustration-distance meters :offset-assert 128) + (frustration-time uint64 :offset-assert 136) + (die-anim-hold-frame float :offset-assert 144) + (jump-anim-start-frame float :offset-assert 148) + (jump-land-anim-end-frame float :offset-assert 152) + (jump-height-min meters :offset-assert 156) + (jump-height-factor float :offset-assert 160) + (jump-start-anim-speed float :offset-assert 164) + (shadow-max-y meters :offset-assert 168) + (shadow-min-y meters :offset-assert 172) + (shadow-locus-dist meters :offset-assert 176) + (use-align basic :offset-assert 180) + (draw-shadow basic :offset-assert 184) + (move-to-ground basic :offset-assert 188) + (hover-if-no-ground basic :offset-assert 192) + (use-momentum basic :offset-assert 196) + (use-flee basic :offset-assert 200) + (use-proximity-notice basic :offset-assert 204) + (use-jump-blocked basic :offset-assert 208) + (use-jump-patrol basic :offset-assert 212) + (gnd-collide-with uint64 :offset-assert 216) + (debug-draw-neck basic :offset-assert 224) + (debug-draw-jump basic :offset-assert 228) ) :method-count-assert 9 :size-assert #xe8 diff --git a/goalc/compiler/compilation/Type.cpp b/goalc/compiler/compilation/Type.cpp index 58719ca3ec..b617eeb0ab 100644 --- a/goalc/compiler/compilation/Type.cpp +++ b/goalc/compiler/compilation/Type.cpp @@ -166,6 +166,10 @@ void Compiler::generate_field_description(const goos::Object& form, // Structure str_template += fmt::format("{}{}: #<{} @ #x~X>~%", tabs, f.name(), f.type().print()); format_args.push_back(get_field_of_structure(type, reg, f.name(), env)->to_gpr(env)); + } else if (f.type() == TypeSpec("seconds")) { + // seconds + str_template += fmt::format("{}{}: (seconds ~e)~%", tabs, f.name()); + format_args.push_back(get_field_of_structure(type, reg, f.name(), env)->to_gpr(env)); } else if (m_ts.tc(m_ts.make_typespec("integer"), f.type())) { // Integer if (m_ts.lookup_type(f.type())->get_load_size() > 8) { @@ -175,6 +179,14 @@ void Compiler::generate_field_description(const goos::Object& form, format_args.push_back(get_field_of_structure(type, reg, f.name(), env)->to_gpr(env)); } + } else if (f.type() == TypeSpec("meters")) { + // meters + str_template += fmt::format("{}{}: (meters ~m)~%", tabs, f.name()); + format_args.push_back(get_field_of_structure(type, reg, f.name(), env)->to_gpr(env)); + } else if (f.type() == TypeSpec("degrees")) { + // degrees + str_template += fmt::format("{}{}: (degrees ~r)~%", tabs, f.name()); + format_args.push_back(get_field_of_structure(type, reg, f.name(), env)->to_gpr(env)); } else if (m_ts.tc(m_ts.make_typespec("float"), f.type())) { // Float str_template += fmt::format("{}{}: ~f~%", tabs, f.name()); diff --git a/test/decompiler/reference/decompiler-macros.gc b/test/decompiler/reference/decompiler-macros.gc index b89a5bdbd0..ed281abd9f 100644 --- a/test/decompiler/reference/decompiler-macros.gc +++ b/test/decompiler/reference/decompiler-macros.gc @@ -127,3 +127,66 @@ ) ) ) + + +(defglobalconstant METER_LENGTH 4096.0) + +(defmacro meters (x) + "Convert number to meters. + If the input is a constant float or integer, the result will be a + compile time constant float. Otherwise, it will not be constant." + + ;; we don't have enough constant propagation for the compiler to figure this out. + (cond + ((float? x) + (* METER_LENGTH x) + ) + ((integer? x) + (* METER_LENGTH x) + ) + (#t + `(* METER_LENGTH ,x) + ) + ) + ) + +(defglobalconstant DEGREES_PER_ROT 65536.0) + +(defmacro degrees (x) + "Convert number to degrees unit. + Will keep a constant float/int constant." + (cond + ((or (float? x) (integer? x)) + (* DEGREES_PER_ROT (/ (+ 0.0 x) 360.0)) + ) + (#t + `(* (/ (the float ,x) 360.0) + DEGREES_PER_ROT + ) + ) + ) + ) + +(defglobalconstant TICKS_PER_SECOND 300) ;; 5 t/frame @ 60fps, 6 t/frame @ 50fps + +(defmacro seconds (x) + "Convert number to seconds unit." + (cond + ((float? x) + (* 1.0 TICKS_PER_SECOND x) + ) + ((integer? x) + (* TICKS_PER_SECOND x) + ) + (#t + `(* 1.0 TICKS_PER_SECOND ,x) + ) + ) + ) + +;; maybe rename to "velocity"? +(defmacro vel-tick (vel) + "turn a velocity value into a per-tick value" + `(* (/ 1.0 ,TICKS_PER_SECOND) ,vel) + ) + diff --git a/test/decompiler/reference/engine/anim/aligner-h_REF.gc b/test/decompiler/reference/engine/anim/aligner-h_REF.gc index a671ec63b3..adfa6b29ac 100644 --- a/test/decompiler/reference/engine/anim/aligner-h_REF.gc +++ b/test/decompiler/reference/engine/anim/aligner-h_REF.gc @@ -10,7 +10,7 @@ (matrix matrix 2 :inline :offset-assert 32) (transform transform 2 :inline :offset-assert 160) (delta transformq :inline :offset-assert 256) - (last-speed float :offset-assert 304) + (last-speed meters :offset-assert 304) (align transformq :inline :offset 160) ) :method-count-assert 14 @@ -65,7 +65,3 @@ obj ) ) - - - - diff --git a/test/decompiler/reference/engine/anim/joint-h_REF.gc b/test/decompiler/reference/engine/anim/joint-h_REF.gc index b758055996..a3c5b1456c 100644 --- a/test/decompiler/reference/engine/anim/joint-h_REF.gc +++ b/test/decompiler/reference/engine/anim/joint-h_REF.gc @@ -12,7 +12,7 @@ (param float 2 :offset-assert 24) (group-sub-index int16 :offset-assert 32) (group-size int16 :offset-assert 34) - (dist float :offset-assert 36) + (dist meters :offset-assert 36) (eval-time uint32 :offset-assert 40) (inspector-amount float :offset-assert 44) ) diff --git a/test/decompiler/reference/engine/camera/camera-h_REF.gc b/test/decompiler/reference/engine/camera/camera-h_REF.gc index 27f35ab5df..8420b4c816 100644 --- a/test/decompiler/reference/engine/camera/camera-h_REF.gc +++ b/test/decompiler/reference/engine/camera/camera-h_REF.gc @@ -3,16 +3,16 @@ ;; definition of type camera-bank (deftype camera-bank (basic) - ((collide-move-rad float :offset-assert 4) - (joypad uint32 :offset-assert 8) - (min-detectable-velocity float :offset-assert 12) - (attack-timeout uint64 :offset-assert 16) - (default-string-max-y float :offset-assert 24) - (default-string-min-y float :offset-assert 28) - (default-string-max-z float :offset-assert 32) - (default-string-min-z float :offset-assert 36) - (default-string-push-z float :offset-assert 40) - (default-tilt-adjust float :offset-assert 44) + ((collide-move-rad float :offset-assert 4) + (joypad uint32 :offset-assert 8) + (min-detectable-velocity float :offset-assert 12) + (attack-timeout uint64 :offset-assert 16) + (default-string-max-y meters :offset-assert 24) + (default-string-min-y meters :offset-assert 28) + (default-string-max-z meters :offset-assert 32) + (default-string-min-z meters :offset-assert 36) + (default-string-push-z meters :offset-assert 40) + (default-tilt-adjust degrees :offset-assert 44) ) :method-count-assert 9 :size-assert #x30 @@ -62,12 +62,12 @@ :collide-move-rad 1638.4 :min-detectable-velocity 40.96 :attack-timeout #x4b - :default-string-max-y 12288.0 - :default-string-min-y 4096.0 - :default-string-max-z 51200.0 - :default-string-min-z 20480.0 - :default-string-push-z 40960.0 - :default-tilt-adjust -1183.289 + :default-string-max-y (meters 3.0) + :default-string-min-y (meters 1.0) + :default-string-max-z (meters 12.5) + :default-string-min-z (meters 5.0) + :default-string-push-z (meters 10.0) + :default-tilt-adjust (degrees -6.5000005) ) ) diff --git a/test/decompiler/reference/engine/camera/math-camera-h_REF.gc b/test/decompiler/reference/engine/camera/math-camera-h_REF.gc index 51eeadfaec..942d3ca572 100644 --- a/test/decompiler/reference/engine/camera/math-camera-h_REF.gc +++ b/test/decompiler/reference/engine/camera/math-camera-h_REF.gc @@ -72,9 +72,9 @@ ;; definition of type math-camera (deftype math-camera (basic) - ((d float :offset-assert 4) - (f float :offset-assert 8) - (fov float :offset-assert 12) + ((d meters :offset-assert 4) + (f meters :offset-assert 8) + (fov degrees :offset-assert 12) (x-ratio float :offset-assert 16) (y-ratio float :offset-assert 20) (x-pix float :offset-assert 24) @@ -86,8 +86,8 @@ (y-clip-ratio-in float :offset-assert 48) (y-clip-ratio-over float :offset-assert 52) (cull-info cull-info :inline :offset-assert 56) - (fog-start float :offset-assert 120) - (fog-end float :offset-assert 124) + (fog-start meters :offset-assert 120) + (fog-end meters :offset-assert 124) (fog-max float :offset-assert 128) (fog-min float :offset-assert 132) (reset int32 :offset-assert 136) diff --git a/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc b/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc index c185cf2d93..4f33a22fc8 100644 --- a/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc +++ b/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc @@ -234,7 +234,7 @@ (action uint32 :offset 40) (offense int8 :offset 44) (prim-type int8 :offset 45) - (radius float :offset 60) + (radius meters :offset 60) ) :method-count-assert 28 :size-assert #x48 @@ -490,7 +490,7 @@ (ground-poly-normal vector :inline :offset-assert 368) (ground-touch-point vector :inline :offset-assert 384) (shadow-pos vector :inline :offset-assert 400) - (ground-impact-vel float :offset-assert 416) + (ground-impact-vel meters :offset-assert 416) (surface-angle float :offset-assert 420) (poly-angle float :offset-assert 424) (touch-angle float :offset-assert 428) diff --git a/test/decompiler/reference/engine/data/art-h_REF.gc b/test/decompiler/reference/engine/data/art-h_REF.gc index dbdcc3b7a2..87141b9679 100644 --- a/test/decompiler/reference/engine/data/art-h_REF.gc +++ b/test/decompiler/reference/engine/data/art-h_REF.gc @@ -325,11 +325,11 @@ (jgeo int32 :offset-assert 8) (janim int32 :offset-assert 12) (bounds vector :inline :offset-assert 16) - (radius float :offset 28) + (radius meters :offset 28) (mgeo uint16 4 :offset-assert 32) (max-lod int32 :offset-assert 40) (lod-dist float 4 :offset-assert 44) - (longest-edge float :offset-assert 60) + (longest-edge meters :offset-assert 60) (texture-level int8 :offset-assert 64) (version int8 :offset-assert 65) (shadow int8 :offset-assert 66) @@ -363,7 +363,7 @@ ;; definition of type lod-group (deftype lod-group (structure) ((geo merc-ctrl :offset-assert 0) - (dist float :offset-assert 4) + (dist meters :offset-assert 4) ) :pack-me :method-count-assert 9 @@ -419,7 +419,7 @@ (cur-lod int8 :offset-assert 62) (desired-lod int8 :offset-assert 63) (ripple ripple-control :offset-assert 64) - (longest-edge float :offset-assert 68) + (longest-edge meters :offset-assert 68) (longest-edge? uint32 :offset 68) (light-index uint8 :offset-assert 72) (dummy uint8 2 :offset-assert 73) @@ -434,7 +434,7 @@ (shadow-ctrl shadow-control :offset-assert 96) (origin vector :inline :offset-assert 112) (bounds vector :inline :offset-assert 128) - (radius float :offset 140) + (radius meters :offset 140) (color-mult rgbaf :inline :offset-assert 144) (color-emissive rgbaf :inline :offset-assert 160) (secondary-interp float :offset-assert 176) diff --git a/test/decompiler/reference/engine/game/fact-h_REF.gc b/test/decompiler/reference/engine/game/fact-h_REF.gc index a9b980840f..60aedd49d0 100644 --- a/test/decompiler/reference/engine/game/fact-h_REF.gc +++ b/test/decompiler/reference/engine/game/fact-h_REF.gc @@ -3,21 +3,21 @@ ;; definition of type fact-bank (deftype fact-bank (basic) - ((eco-level-max float :offset-assert 4) - (eco-single-inc float :offset-assert 8) - (eco-full-inc float :offset-assert 12) - (eco-single-timeout uint64 :offset-assert 16) - (eco-full-timeout uint64 :offset-assert 24) - (dummy uint64 :offset-assert 32) - (health-max-default float :offset-assert 40) - (health-single-inc float :offset-assert 44) - (eco-pill-max-default float :offset-assert 48) - (health-small-inc float :offset-assert 52) - (buzzer-max-default float :offset-assert 56) - (buzzer-single-inc float :offset-assert 60) - (suck-bounce-dist float :offset-assert 64) - (suck-suck-dist float :offset-assert 68) - (default-pill-inc float :offset-assert 72) + ((eco-level-max float :offset-assert 4) + (eco-single-inc float :offset-assert 8) + (eco-full-inc float :offset-assert 12) + (eco-single-timeout seconds :offset-assert 16) + (eco-full-timeout seconds :offset-assert 24) + (dummy seconds :offset-assert 32) + (health-max-default float :offset-assert 40) + (health-single-inc float :offset-assert 44) + (eco-pill-max-default float :offset-assert 48) + (health-small-inc float :offset-assert 52) + (buzzer-max-default float :offset-assert 56) + (buzzer-single-inc float :offset-assert 60) + (suck-bounce-dist meters :offset-assert 64) + (suck-suck-dist meters :offset-assert 68) + (default-pill-inc float :offset-assert 72) ) :method-count-assert 9 :size-assert #x4c @@ -52,17 +52,17 @@ :eco-level-max 2.0 :eco-single-inc 1.0 :eco-full-inc 5.0 - :eco-single-timeout #x5dc - :eco-full-timeout #x1770 - :dummy #x1194 + :eco-single-timeout (seconds 5) + :eco-full-timeout (seconds 20) + :dummy (seconds 15) :health-max-default 3.0 :health-single-inc 1.0 :eco-pill-max-default 50.0 :health-small-inc 1.0 :buzzer-max-default 7.0 :buzzer-single-inc 1.0 - :suck-bounce-dist 73728.0 - :suck-suck-dist 30720.0 + :suck-bounce-dist (meters 18.0) + :suck-suck-dist (meters 7.5) ) ) @@ -139,23 +139,23 @@ ;; definition of type fact-info-target (deftype fact-info-target (fact-info) - ((eco-type int32 :offset-assert 40) - (eco-level float :offset-assert 44) - (eco-pickup-time uint64 :offset-assert 48) - (eco-timeout uint64 :offset-assert 56) - (health float :offset-assert 64) - (health-max float :offset-assert 68) - (buzzer float :offset-assert 72) - (buzzer-max float :offset-assert 76) - (eco-pill float :offset-assert 80) - (eco-pill-max float :offset-assert 84) - (health-pickup-time uint64 :offset-assert 88) - (eco-source uint64 :offset-assert 96) - (eco-source-time uint64 :offset-assert 104) - (money-pickup-time uint64 :offset-assert 112) - (buzzer-pickup-time uint64 :offset-assert 120) - (fuel-cell-pickup-time uint64 :offset-assert 128) - (eco-pill-pickup-time uint64 :offset-assert 136) + ((eco-type int32 :offset-assert 40) + (eco-level float :offset-assert 44) + (eco-pickup-time uint64 :offset-assert 48) + (eco-timeout seconds :offset-assert 56) + (health float :offset-assert 64) + (health-max float :offset-assert 68) + (buzzer float :offset-assert 72) + (buzzer-max float :offset-assert 76) + (eco-pill float :offset-assert 80) + (eco-pill-max float :offset-assert 84) + (health-pickup-time uint64 :offset-assert 88) + (eco-source uint64 :offset-assert 96) + (eco-source-time uint64 :offset-assert 104) + (money-pickup-time uint64 :offset-assert 112) + (buzzer-pickup-time uint64 :offset-assert 120) + (fuel-cell-pickup-time uint64 :offset-assert 128) + (eco-pill-pickup-time uint64 :offset-assert 136) ) :method-count-assert 12 :size-assert #x90 @@ -196,13 +196,13 @@ ;; definition of type fact-info-enemy (deftype fact-info-enemy (fact-info) - ((speed float :offset-assert 40) - (idle-distance float :offset-assert 44) - (notice-top float :offset-assert 48) - (notice-bottom float :offset-assert 52) - (cam-horz float :offset-assert 56) - (cam-vert float :offset-assert 60) - (cam-notice-dist float :offset-assert 64) + ((speed float :offset-assert 40) + (idle-distance meters :offset-assert 44) + (notice-top meters :offset-assert 48) + (notice-bottom meters :offset-assert 52) + (cam-horz meters :offset-assert 56) + (cam-vert meters :offset-assert 60) + (cam-notice-dist meters :offset-assert 64) ) :method-count-assert 12 :size-assert #x44 diff --git a/test/decompiler/reference/engine/game/game-h_REF.gc b/test/decompiler/reference/engine/game/game-h_REF.gc index bb2899a3c0..f781e48454 100644 --- a/test/decompiler/reference/engine/game/game-h_REF.gc +++ b/test/decompiler/reference/engine/game/game-h_REF.gc @@ -120,21 +120,21 @@ ;; definition of type attack-info (deftype attack-info (structure) - ((trans vector :inline :offset-assert 0) - (vector vector :inline :offset-assert 16) - (intersection vector :inline :offset-assert 32) - (attacker uint64 :offset-assert 48) - (invinc-time uint64 :offset-assert 56) - (mask uint32 :offset-assert 64) - (mode basic :offset-assert 68) - (shove-back float :offset-assert 72) - (shove-up float :offset-assert 76) - (speed float :offset-assert 80) - (dist float :offset-assert 84) - (control float :offset-assert 88) - (angle basic :offset-assert 92) - (rotate-to float :offset-assert 96) - (prev-state basic :offset-assert 100) + ((trans vector :inline :offset-assert 0) + (vector vector :inline :offset-assert 16) + (intersection vector :inline :offset-assert 32) + (attacker uint64 :offset-assert 48) + (invinc-time uint64 :offset-assert 56) + (mask uint32 :offset-assert 64) + (mode basic :offset-assert 68) + (shove-back meters :offset-assert 72) + (shove-up meters :offset-assert 76) + (speed meters :offset-assert 80) + (dist meters :offset-assert 84) + (control float :offset-assert 88) + (angle basic :offset-assert 92) + (rotate-to degrees :offset-assert 96) + (prev-state basic :offset-assert 100) ) :method-count-assert 10 :size-assert #x68 diff --git a/test/decompiler/reference/engine/game/generic-obs-h_REF.gc b/test/decompiler/reference/engine/game/generic-obs-h_REF.gc index f78e3d5a96..759737c39c 100644 --- a/test/decompiler/reference/engine/game/generic-obs-h_REF.gc +++ b/test/decompiler/reference/engine/game/generic-obs-h_REF.gc @@ -52,7 +52,7 @@ (deftype part-spawner (process-drawable) ((mode uint32 :offset-assert 176) (enable basic :offset-assert 180) - (radius float :offset-assert 184) + (radius meters :offset-assert 184) (world-sphere sphere :inline :offset-assert 192) ) :heap-base #x60 @@ -211,8 +211,8 @@ (deftype swingpole (process) ((root basic :offset-assert 112) (dir vector :inline :offset-assert 128) - (range float :offset-assert 144) - (edge-length float :offset-assert 148) + (range meters :offset-assert 144) + (edge-length meters :offset-assert 148) ) :heap-base #x30 :method-count-assert 14 diff --git a/test/decompiler/reference/engine/gfx/mood-h_REF.gc b/test/decompiler/reference/engine/gfx/mood-h_REF.gc index e7224fb136..79605a47be 100644 --- a/test/decompiler/reference/engine/gfx/mood-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/mood-h_REF.gc @@ -5,8 +5,8 @@ (deftype mood-fog (structure) ((fog-color vector :inline :offset-assert 0) (fog-dists vector :inline :offset-assert 16) - (fog-start float :offset 16) - (fog-end float :offset 20) + (fog-start meters :offset 16) + (fog-end meters :offset 20) (fog-max float :offset 24) (fog-min float :offset 28) (erase-color vector :inline :offset-assert 32) diff --git a/test/decompiler/reference/engine/gfx/sparticle/sparticle-launcher-h_REF.gc b/test/decompiler/reference/engine/gfx/sparticle/sparticle-launcher-h_REF.gc index f7c4f23cf6..75390ea833 100644 --- a/test/decompiler/reference/engine/gfx/sparticle/sparticle-launcher-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/sparticle/sparticle-launcher-h_REF.gc @@ -64,8 +64,8 @@ ;; definition of type sparticle-group-item (deftype sparticle-group-item (structure) ((launcher uint32 :offset-assert 0) - (fade-after float :offset-assert 4) - (falloff-to float :offset-assert 8) + (fade-after meters :offset-assert 4) + (falloff-to meters :offset-assert 8) (flags uint16 :offset-assert 12) (period uint16 :offset-assert 14) (length uint16 :offset-assert 16) diff --git a/test/decompiler/reference/engine/gfx/tie/prototype-h_REF.gc b/test/decompiler/reference/engine/gfx/tie/prototype-h_REF.gc index 89554ea127..a4689345dd 100644 --- a/test/decompiler/reference/engine/gfx/tie/prototype-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/tie/prototype-h_REF.gc @@ -12,10 +12,10 @@ (rdists vector :inline :offset-assert 48) (next uint32 4 :offset-assert 64) (count uint16 4 :offset-assert 80) - (near-plane float :offset 32) - (near-stiff float :offset 36) - (mid-plane float :offset 40) - (far-plane float :offset 44) + (near-plane meters :offset 32) + (near-stiff meters :offset 36) + (mid-plane meters :offset 40) + (far-plane meters :offset 44) (rlength-near float :offset 48) (rlength-stiff float :offset 52) (rlength-mid float :offset 56) diff --git a/test/decompiler/reference/engine/gfx/water/water-h_REF.gc b/test/decompiler/reference/engine/gfx/water/water-h_REF.gc index 8f09db4d35..97f7f3a6a7 100644 --- a/test/decompiler/reference/engine/gfx/water/water-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/water/water-h_REF.gc @@ -7,24 +7,24 @@ (process process :offset-assert 8) (joint-index int32 :offset-assert 12) (top-y-offset float :offset-assert 16) - (ripple-size float :offset-assert 20) + (ripple-size meters :offset-assert 20) (enter-water-time uint64 :offset-assert 24) (wade-time uint64 :offset-assert 32) (on-water-time uint64 :offset-assert 40) (enter-swim-time uint64 :offset-assert 48) (swim-time uint64 :offset-assert 56) - (base-height float :offset-assert 64) - (wade-height float :offset-assert 68) - (swim-height float :offset-assert 72) - (surface-height float :offset-assert 76) - (bottom-height float :offset-assert 80) - (height float :offset-assert 84) + (base-height meters :offset-assert 64) + (wade-height meters :offset-assert 68) + (swim-height meters :offset-assert 72) + (surface-height meters :offset-assert 76) + (bottom-height meters :offset-assert 80) + (height meters :offset-assert 84) (height-offset float 4 :offset-assert 88) - (real-ocean-offset float :offset 88) - (ocean-offset float :offset 92) - (bob-offset float :offset 96) - (align-offset float :offset 100) - (swim-depth float :offset-assert 104) + (real-ocean-offset meters :offset 88) + (ocean-offset meters :offset 92) + (bob-offset meters :offset 96) + (align-offset meters :offset 100) + (swim-depth meters :offset-assert 104) (bob smush-control :inline :offset-assert 112) (volume uint64 :offset-assert 144) (bottom vector 2 :inline :offset-assert 160) @@ -35,7 +35,7 @@ (drip-wetness float :offset-assert 260) (drip-time uint64 :offset-assert 264) (drip-speed float :offset-assert 272) - (drip-height float :offset-assert 276) + (drip-height meters :offset-assert 276) (drip-mult float :offset-assert 280) ) :method-count-assert 17 @@ -136,10 +136,10 @@ ;; definition of type water-vol (deftype water-vol (process-drawable) - ((water-height float :offset-assert 176) - (wade-height float :offset-assert 180) - (swim-height float :offset-assert 184) - (bottom-height float :offset-assert 188) + ((water-height meters :offset-assert 176) + (wade-height meters :offset-assert 180) + (swim-height meters :offset-assert 184) + (bottom-height meters :offset-assert 188) (attack-event basic :offset-assert 192) (target uint64 :offset-assert 200) (flags uint32 :offset-assert 208) diff --git a/test/decompiler/reference/engine/level/level-h_REF.gc b/test/decompiler/reference/engine/level/level-h_REF.gc index 61baaa0716..085f81e682 100644 --- a/test/decompiler/reference/engine/level/level-h_REF.gc +++ b/test/decompiler/reference/engine/level/level-h_REF.gc @@ -71,7 +71,7 @@ (bsp-mask uint64 :offset-assert 80) (bsphere sphere :offset-assert 88) (buzzer int32 :offset-assert 92) - (bottom-height float :offset-assert 96) + (bottom-height meters :offset-assert 96) (run-packages pair :offset-assert 100) (prev-level basic :offset-assert 104) (next-level basic :offset-assert 108) @@ -158,7 +158,7 @@ (ambient entity-ambient-data-array :offset-assert 288) (closest-object float 9 :offset-assert 292) (upload-size int32 9 :offset-assert 328) - (level-distance float :offset-assert 364) + (level-distance meters :offset-assert 364) (inside-sphere? symbol :offset-assert 368) (inside-boxes? symbol :offset-assert 372) (display? symbol :offset-assert 376) diff --git a/test/decompiler/reference/engine/level/level-info_REF.gc b/test/decompiler/reference/engine/level/level-info_REF.gc index cb56870a2d..815fcf2234 100644 --- a/test/decompiler/reference/engine/level/level-info_REF.gc +++ b/test/decompiler/reference/engine/level/level-info_REF.gc @@ -223,7 +223,7 @@ :bsphere (new 'static 'sphere :x -5079040.0 :z 4055040.0 :w 1024000.0) :buzzer 95 - :bottom-height -466944.0 + :bottom-height (meters -114.0) :run-packages '("common" "villagep") :wait-for-load #f ) @@ -453,7 +453,7 @@ :bsphere (new 'static 'sphere :x -444416.0 :y 133120.0 :z 360448.0 :w 843776.0) :buzzer 75 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #t ) @@ -518,7 +518,7 @@ :bsphere (new 'static 'sphere :x -819200.0 :z -1556480.0 :w 1474560.0) :buzzer 20 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #t ) @@ -586,7 +586,7 @@ :bsphere (new 'static 'sphere :x 1474560.0 :y 2519040.0 :z -983040.0 :w 2457600.0) :buzzer 7 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #t ) @@ -646,7 +646,7 @@ :bsphere (new 'static 'sphere :x 1486848.0 :y -1269760.0 :z -1064960.0 :w 1228800.0) :buzzer 7 - :bottom-height -327680.0 + :bottom-height (meters -80.0) :run-packages '("common" "jungle") :wait-for-load #f ) @@ -1038,7 +1038,7 @@ :bsphere (new 'static 'sphere :z 4096000.0 :w 1269760.0) :buzzer 28 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #f ) @@ -1130,7 +1130,7 @@ :bsphere (new 'static 'sphere :x 419840.0 :y 151552.0 :z -3006464.0 :w 2048000.0) :buzzer 68 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #t ) @@ -1251,7 +1251,7 @@ :bsphere (new 'static 'sphere :x 1392640.0 :y 81920.0 :z -6770688.0 :w 696320.0) :buzzer 76 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #t ) @@ -1396,7 +1396,7 @@ :bsphere (new 'static 'sphere :x 2867200.0 :y -2048000.0 :z -6553600.0 :w 2048000.0) :buzzer 49 - :bottom-height -2048000.0 + :bottom-height (meters -500.0) :run-packages '("common") :wait-for-load #f ) @@ -1485,7 +1485,7 @@ :bsphere (new 'static 'sphere :x 2867200.0 :y -2048000.0 :z -6553600.0 :w 2048000.0) :buzzer 49 - :bottom-height -2048000.0 + :bottom-height (meters -500.0) :run-packages '("common" "sunken") :wait-for-load #f ) @@ -1850,7 +1850,7 @@ :bsphere (new 'static 'sphere :x 1986560.0 :z -8417280.0 :w 1003520.0) :buzzer 43 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #t ) @@ -1914,7 +1914,7 @@ :bsphere (new 'static 'sphere :x -753664.0 :y 131072.0 :z -6569984.0 :w 974848.0) :buzzer 57 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #t ) @@ -2034,7 +2034,7 @@ :bsphere (new 'static 'sphere :x 2334720.0 :y 180224.0 :z -10653696.0 :w 3653632.0) :buzzer 88 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #t ) @@ -2155,7 +2155,7 @@ :bsphere (new 'static 'sphere :x 4571136.0 :y 389120.0 :z -14323712.0 :w 409600.0) :buzzer 77 - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '("common") :wait-for-load #f ) @@ -2444,7 +2444,7 @@ :bsphere (new 'static 'sphere :x 3072000.0 :y 1142784.0 :z -14028800.0 :w 1290240.0) :buzzer 65 - :bottom-height 524288.0 + :bottom-height (meters 128.0) :run-packages '("common") :wait-for-load #f ) @@ -2564,7 +2564,7 @@ :bsphere (new 'static 'sphere :x 4517888.0 :y 114688.0 :z -12484608.0 :w 655360.0) :buzzer 85 - :bottom-height -245760.0 + :bottom-height (meters -60.0) :run-packages '("common") :wait-for-load #f ) @@ -2625,7 +2625,7 @@ :bsphere (new 'static 'sphere :x 3620864.0 :y 266240.0 :z -11935744.0 :w 368640.0) :buzzer 85 - :bottom-height -245760.0 + :bottom-height (meters -60.0) :run-packages '("common" "maincave") :wait-for-load #t ) @@ -2714,7 +2714,7 @@ :bsphere (new 'static 'sphere :x 5529600.0 :y 81920.0 :z -11468800.0 :w 512000.0) :buzzer 85 - :bottom-height -245760.0 + :bottom-height (meters -60.0) :run-packages '("common" "maincave") :wait-for-load #t ) @@ -2862,7 +2862,7 @@ :bsphere (new 'static 'sphere :x 8806400.0 :y 131072.0 :z -15564800.0 :w 3174400.0) :buzzer 90 - :bottom-height -286720.0 + :bottom-height (meters -70.0) :run-packages '("common") :wait-for-load #t ) @@ -3179,7 +3179,7 @@ :bsphere (new 'static 'sphere :x 11436032.0 :y -462848.0 :z -19750912.0 :w 1228800.0) :buzzer 91 - :bottom-height -466944.0 + :bottom-height (meters -114.0) :run-packages '("common") :wait-for-load #t ) @@ -3275,7 +3275,7 @@ :bsphere (new 'static 'sphere :x 11837440.0 :y 2129920.0 :z -19578880.0 :w 778240.0) :buzzer 91 - :bottom-height -466944.0 + :bottom-height (meters -114.0) :run-packages '("common") :wait-for-load #f ) @@ -3304,7 +3304,7 @@ :alt-load-commands '() :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere) - :bottom-height -40960000000.0 + :bottom-height (meters -10000000.0) :run-packages '("common") :wait-for-load #f ) @@ -3363,7 +3363,7 @@ :alt-load-commands '() :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere) - :bottom-height -40960000000.0 + :bottom-height (meters -10000000.0) :run-packages '("common") :wait-for-load #f ) @@ -3424,7 +3424,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x -40960.0 :z 40960.0 :w 1126400.0) - :bottom-height -40960000000.0 + :bottom-height (meters -10000000.0) :run-packages '("common") :wait-for-load #f ) @@ -3484,7 +3484,7 @@ :alt-load-commands '() :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :w 167772160000.0) - :bottom-height -40960000000.0 + :bottom-height (meters -10000000.0) :run-packages '() :wait-for-load #t ) @@ -3513,7 +3513,7 @@ :alt-load-commands '() :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :w 167772160000.0) - :bottom-height -81920.0 + :bottom-height (meters -20.0) :run-packages '() :wait-for-load #t ) diff --git a/test/decompiler/reference/engine/math/transformq-h_REF.gc b/test/decompiler/reference/engine/math/transformq-h_REF.gc index ccbc5baf85..626d193b02 100644 --- a/test/decompiler/reference/engine/math/transformq-h_REF.gc +++ b/test/decompiler/reference/engine/math/transformq-h_REF.gc @@ -41,8 +41,8 @@ ;; definition of type trsqv (deftype trsqv (trsq) - ((pause-adjust-distance float :offset 4) - (nav-radius float :offset 8) + ((pause-adjust-distance meters :offset 4) + (nav-radius meters :offset 8) (transv vector :inline :offset-assert 64) (rotv vector :inline :offset-assert 80) (scalev vector :inline :offset-assert 96) diff --git a/test/decompiler/reference/engine/nav/navigate-h_REF.gc b/test/decompiler/reference/engine/nav/navigate-h_REF.gc index 7b30793a36..6a2109816f 100644 --- a/test/decompiler/reference/engine/nav/navigate-h_REF.gc +++ b/test/decompiler/reference/engine/nav/navigate-h_REF.gc @@ -67,7 +67,7 @@ (dest-pos vector :inline :offset-assert 32) (current-poly nav-poly :offset-assert 48) (next-poly nav-poly :offset-assert 52) - (len float :offset-assert 56) + (len meters :offset-assert 56) (last-edge int8 :offset-assert 60) (terminated basic :offset-assert 64) (reached-dest basic :offset-assert 68) @@ -357,7 +357,7 @@ (next-poly nav-poly :offset-assert 32) (target-poly nav-poly :offset-assert 36) (portal nav-route-portal 2 :offset-assert 40) - (nearest-y-threshold float :offset-assert 48) + (nearest-y-threshold meters :offset-assert 48) (event-temp vector :inline :offset-assert 64) (old-travel vector :inline :offset-assert 80) (blocked-travel vector :inline :offset-assert 96) diff --git a/test/decompiler/reference/engine/physics/dynamics-h_REF.gc b/test/decompiler/reference/engine/physics/dynamics-h_REF.gc index c9162fb4ee..c26466c033 100644 --- a/test/decompiler/reference/engine/physics/dynamics-h_REF.gc +++ b/test/decompiler/reference/engine/physics/dynamics-h_REF.gc @@ -4,12 +4,12 @@ ;; definition of type dynamics (deftype dynamics (basic) ((name basic :offset-assert 4) - (gravity-max float :offset-assert 8) - (gravity-length float :offset-assert 12) + (gravity-max meters :offset-assert 8) + (gravity-length meters :offset-assert 12) (gravity vector :inline :offset-assert 16) (gravity-normal vector :inline :offset-assert 32) - (walk-distance float :offset-assert 48) - (run-distance float :offset-assert 52) + (walk-distance meters :offset-assert 48) + (run-distance meters :offset-assert 52) ) :method-count-assert 9 :size-assert #x38 @@ -53,13 +53,13 @@ *standard-dynamics* (new 'static 'dynamics :name 'standard - :gravity-max 163840.0 - :gravity-length 245760.0 + :gravity-max (meters 40.0) + :gravity-length (meters 60.0) :gravity (new 'static 'vector :y 245760.0 :w 1.0) :gravity-normal (new 'static 'vector :y 1.0 :w 1.0) - :walk-distance 8192.0 - :run-distance 20480.0 + :walk-distance (meters 2.0) + :run-distance (meters 5.0) ) ) diff --git a/test/decompiler/reference/engine/physics/trajectory-h_REF.gc b/test/decompiler/reference/engine/physics/trajectory-h_REF.gc index 4378093ade..ed1044dc54 100644 --- a/test/decompiler/reference/engine/physics/trajectory-h_REF.gc +++ b/test/decompiler/reference/engine/physics/trajectory-h_REF.gc @@ -6,7 +6,7 @@ ((initial-position vector :inline :offset-assert 0) (initial-velocity vector :inline :offset-assert 16) (time float :offset-assert 32) - (gravity float :offset-assert 36) + (gravity meters :offset-assert 36) ) :method-count-assert 16 :size-assert #x28 diff --git a/test/decompiler/reference/engine/target/joint-mod-h_REF.gc b/test/decompiler/reference/engine/target/joint-mod-h_REF.gc index b89f9128c5..c2353db5ad 100644 --- a/test/decompiler/reference/engine/target/joint-mod-h_REF.gc +++ b/test/decompiler/reference/engine/target/joint-mod-h_REF.gc @@ -15,8 +15,8 @@ (notice-time uint64 :offset-assert 112) (flex-blend float :offset-assert 120) (blend float :offset-assert 124) - (max-dist float :offset-assert 128) - (ignore-angle float :offset-assert 132) + (max-dist meters :offset-assert 128) + (ignore-angle degrees :offset-assert 132) (up uint8 :offset-assert 136) (nose uint8 :offset-assert 137) (ear uint8 :offset-assert 138) @@ -156,7 +156,7 @@ (set! (-> v1-2 z) 1.0) (set! (-> v1-2 w) 1.0) ) - (set! (-> obj max-dist) (the-as float #f)) + (set! (-> obj max-dist) (the-as meters #f)) ) (((joint-mod-handler-mode joint-set*)) (set! (-> joint param0) joint-mod-joint-set*-handler) @@ -170,7 +170,7 @@ (set! (-> v1-4 z) 1.0) (set! (-> v1-4 w) 1.0) ) - (set! (-> obj max-dist) (the-as float #f)) + (set! (-> obj max-dist) (the-as meters #f)) ) ) ) diff --git a/test/decompiler/reference/levels/common/nav-enemy-h_REF.gc b/test/decompiler/reference/levels/common/nav-enemy-h_REF.gc index 14fa435de8..a41db3e67a 100644 --- a/test/decompiler/reference/levels/common/nav-enemy-h_REF.gc +++ b/test/decompiler/reference/levels/common/nav-enemy-h_REF.gc @@ -3,57 +3,57 @@ ;; definition of type nav-enemy-info (deftype nav-enemy-info (basic) - ((idle-anim int32 :offset-assert 4) - (walk-anim int32 :offset-assert 8) - (turn-anim int32 :offset-assert 12) - (notice-anim int32 :offset-assert 16) - (run-anim int32 :offset-assert 20) - (jump-anim int32 :offset-assert 24) - (jump-land-anim int32 :offset-assert 28) - (victory-anim int32 :offset-assert 32) - (taunt-anim int32 :offset-assert 36) - (die-anim int32 :offset-assert 40) - (neck-joint int32 :offset-assert 44) - (player-look-at-joint int32 :offset-assert 48) - (run-travel-speed float :offset-assert 52) - (run-rotate-speed float :offset-assert 56) - (run-acceleration float :offset-assert 60) - (run-turn-time uint64 :offset-assert 64) - (walk-travel-speed float :offset-assert 72) - (walk-rotate-speed float :offset-assert 76) - (walk-acceleration float :offset-assert 80) - (walk-turn-time uint64 :offset-assert 88) - (attack-shove-back float :offset-assert 96) - (attack-shove-up float :offset-assert 100) - (shadow-size float :offset-assert 104) - (notice-nav-radius float :offset-assert 108) - (nav-nearest-y-threshold float :offset-assert 112) - (notice-distance float :offset-assert 116) - (proximity-notice-distance float :offset-assert 120) - (stop-chase-distance float :offset-assert 124) - (frustration-distance float :offset-assert 128) - (frustration-time uint64 :offset-assert 136) - (die-anim-hold-frame float :offset-assert 144) - (jump-anim-start-frame float :offset-assert 148) - (jump-land-anim-end-frame float :offset-assert 152) - (jump-height-min float :offset-assert 156) - (jump-height-factor float :offset-assert 160) - (jump-start-anim-speed float :offset-assert 164) - (shadow-max-y float :offset-assert 168) - (shadow-min-y float :offset-assert 172) - (shadow-locus-dist float :offset-assert 176) - (use-align basic :offset-assert 180) - (draw-shadow basic :offset-assert 184) - (move-to-ground basic :offset-assert 188) - (hover-if-no-ground basic :offset-assert 192) - (use-momentum basic :offset-assert 196) - (use-flee basic :offset-assert 200) - (use-proximity-notice basic :offset-assert 204) - (use-jump-blocked basic :offset-assert 208) - (use-jump-patrol basic :offset-assert 212) - (gnd-collide-with uint64 :offset-assert 216) - (debug-draw-neck basic :offset-assert 224) - (debug-draw-jump basic :offset-assert 228) + ((idle-anim int32 :offset-assert 4) + (walk-anim int32 :offset-assert 8) + (turn-anim int32 :offset-assert 12) + (notice-anim int32 :offset-assert 16) + (run-anim int32 :offset-assert 20) + (jump-anim int32 :offset-assert 24) + (jump-land-anim int32 :offset-assert 28) + (victory-anim int32 :offset-assert 32) + (taunt-anim int32 :offset-assert 36) + (die-anim int32 :offset-assert 40) + (neck-joint int32 :offset-assert 44) + (player-look-at-joint int32 :offset-assert 48) + (run-travel-speed meters :offset-assert 52) + (run-rotate-speed degrees :offset-assert 56) + (run-acceleration meters :offset-assert 60) + (run-turn-time seconds :offset-assert 64) + (walk-travel-speed meters :offset-assert 72) + (walk-rotate-speed degrees :offset-assert 76) + (walk-acceleration meters :offset-assert 80) + (walk-turn-time seconds :offset-assert 88) + (attack-shove-back meters :offset-assert 96) + (attack-shove-up meters :offset-assert 100) + (shadow-size meters :offset-assert 104) + (notice-nav-radius meters :offset-assert 108) + (nav-nearest-y-threshold meters :offset-assert 112) + (notice-distance meters :offset-assert 116) + (proximity-notice-distance meters :offset-assert 120) + (stop-chase-distance meters :offset-assert 124) + (frustration-distance meters :offset-assert 128) + (frustration-time uint64 :offset-assert 136) + (die-anim-hold-frame float :offset-assert 144) + (jump-anim-start-frame float :offset-assert 148) + (jump-land-anim-end-frame float :offset-assert 152) + (jump-height-min meters :offset-assert 156) + (jump-height-factor float :offset-assert 160) + (jump-start-anim-speed float :offset-assert 164) + (shadow-max-y meters :offset-assert 168) + (shadow-min-y meters :offset-assert 172) + (shadow-locus-dist meters :offset-assert 176) + (use-align basic :offset-assert 180) + (draw-shadow basic :offset-assert 184) + (move-to-ground basic :offset-assert 188) + (hover-if-no-ground basic :offset-assert 192) + (use-momentum basic :offset-assert 196) + (use-flee basic :offset-assert 200) + (use-proximity-notice basic :offset-assert 204) + (use-jump-blocked basic :offset-assert 208) + (use-jump-patrol basic :offset-assert 212) + (gnd-collide-with uint64 :offset-assert 216) + (debug-draw-neck basic :offset-assert 224) + (debug-draw-jump basic :offset-assert 228) ) :method-count-assert 9 :size-assert #xe8 From f6d5952498e4d1327555b682a98b096f1643a89a Mon Sep 17 00:00:00 2001 From: water111 <48171810+water111@users.noreply.github.com> Date: Sun, 11 Jul 2021 21:59:27 -0400 Subject: [PATCH 12/63] [decompiler] handle nested conditionals and `goto`s better (#693) * diff check * try that again * more small fixes --- decompiler/IR2/Form.cpp | 10 +- decompiler/IR2/FormExpressionAnalysis.cpp | 25 +- docs/markdown/progress-notes/changelog.md | 4 +- goal_src/engine/anim/aligner.gc | 8 +- goal_src/engine/data/res.gc | 2 - goal_src/engine/debug/menu.gc | 258 ++++--- goal_src/engine/dma/dma-disasm.gc | 3 + goal_src/engine/geometry/geometry.gc | 85 ++- goal_src/engine/gfx/hw/gs.gc | 58 +- goal_src/engine/gfx/mood-h.gc | 99 +-- goal_src/engine/gfx/texture.gc | 244 +++--- goal_src/kernel/gcommon.gc | 347 ++++----- goalc/compiler/compilation/Static.cpp | 33 +- .../reference/engine/anim/aligner_REF.gc | 12 +- .../reference/engine/debug/menu_REF.gc | 316 ++++---- .../reference/engine/dma/dma-disasm_REF.gc | 289 ++++--- .../reference/engine/game/fact-h_REF.gc | 18 +- .../reference/engine/geometry/geometry_REF.gc | 173 ++--- .../reference/engine/geometry/vol-h_REF.gc | 18 +- .../reference/engine/gfx/hw/gs_REF.gc | 38 +- .../reference/engine/gfx/texture_REF.gc | 368 ++++----- .../reference/engine/math/trigonometry_REF.gc | 70 +- .../reference/engine/nav/navigate-h_REF.gc | 18 +- .../reference/engine/nav/path-h_REF.gc | 18 +- .../reference/engine/nav/path_REF.gc | 20 +- .../reference/engine/target/surface-h_REF.gc | 30 +- .../reference/kernel/gcommon_REF.gc | 594 +++++++-------- .../reference/kernel/gkernel_REF.gc | 22 +- .../reference/kernel/gstring_REF.gc | 35 +- .../test_FormExpressionBuildLong.cpp | 708 +++++++++--------- test/decompiler/test_gkernel_decomp.cpp | 14 +- 31 files changed, 1896 insertions(+), 2041 deletions(-) diff --git a/decompiler/IR2/Form.cpp b/decompiler/IR2/Form.cpp index f5553c80a3..df47048ee9 100644 --- a/decompiler/IR2/Form.cpp +++ b/decompiler/IR2/Form.cpp @@ -939,9 +939,13 @@ goos::Object BreakElement::to_form_internal(const Env& env) const { forms.push_back(pretty_print::build_list(return_code->to_form(env))); forms.push_back(pretty_print::build_list(dead_code->to_form(env))); } else { - forms.push_back(pretty_print::to_symbol("begin")); - return_code->inline_forms(forms, env); - forms.push_back(pretty_print::build_list(fmt::format("goto cfg-{}", lid))); + if (return_code->try_as_element()) { + return pretty_print::build_list(fmt::format("goto cfg-{}", lid)); + } else { + forms.push_back(pretty_print::to_symbol("begin")); + return_code->inline_forms(forms, env); + forms.push_back(pretty_print::build_list(fmt::format("goto cfg-{}", lid))); + } } return pretty_print::build_list(forms); } diff --git a/decompiler/IR2/FormExpressionAnalysis.cpp b/decompiler/IR2/FormExpressionAnalysis.cpp index a8df31fc8e..658ba88ac0 100644 --- a/decompiler/IR2/FormExpressionAnalysis.cpp +++ b/decompiler/IR2/FormExpressionAnalysis.cpp @@ -2804,6 +2804,18 @@ void CondWithElseElement::push_to_stack(const Env& env, FormPool& pool, FormStac } } + // merge conds in the else block. + auto else_as_another_cond = else_ir->try_as_element(); + if (else_as_another_cond) { + while (else_as_another_cond) { + for (auto& e : else_as_another_cond->entries) { + entries.push_back(e); + } + else_ir = else_as_another_cond->else_ir; + else_as_another_cond = else_ir->try_as_element(); + } + } + if (rewrite_as_set) { if (set_unused) { stack.push_form_element(this, true); @@ -4492,17 +4504,22 @@ void LabelElement::push_to_stack(const Env&, FormPool&, FormStack& stack) { void BreakElement::push_to_stack(const Env& env, FormPool& pool, FormStack& stack) { mark_popped(); - FormStack temp_stack(false); for (auto& elt : return_code->elts()) { elt->push_to_stack(env, pool, temp_stack); } - auto new_entries = temp_stack.rewrite(pool, env); + std::vector new_entries; + new_entries = temp_stack.rewrite(pool, env); + + assert(!new_entries.empty()); return_code->clear(); - for (auto e : new_entries) { - return_code->push_back(e); + + for (int i = 0; i < ((int)new_entries.size()); i++) { + stack.push_form_element(new_entries.at(i), true); } + + return_code->push_back(pool.alloc_element()); stack.push_form_element(this, true); } diff --git a/docs/markdown/progress-notes/changelog.md b/docs/markdown/progress-notes/changelog.md index 19dadf9560..1b617dcf12 100644 --- a/docs/markdown/progress-notes/changelog.md +++ b/docs/markdown/progress-notes/changelog.md @@ -178,4 +178,6 @@ - `defbehavior` has been added to define a global behavior. - Auto-generated inspect methods of process now start by calling the parent type's inspect, like in GOAL. - Fields with type `(inline-array thing)` can now be set in statics. -- `meters`, `degrees`, and `seconds` types have been added. \ No newline at end of file +- `meters`, `degrees`, and `seconds` types have been added. +- Bitfields with `symbol` fields used in an immediate `(new 'static ...)` can now define the symbol in the `new` form. +- Bitfields with `float` fields used in an immediate `(new 'static ...)` in code can use a non-constant floating point value. \ No newline at end of file diff --git a/goal_src/engine/anim/aligner.gc b/goal_src/engine/anim/aligner.gc index dcf9b4b9da..acbb227088 100644 --- a/goal_src/engine/anim/aligner.gc +++ b/goal_src/engine/anim/aligner.gc @@ -58,11 +58,11 @@ ((or (not v1-16) (!= (-> obj frame-group) v1-16)) (set! a0-9 #t) ) + ((= (-> a0-8 num-func) num-func-loop!) + (set! a0-9 (< (* (-> a0-8 param 0) (- f0-0 (-> obj frame-num))) 0.0)) + ) (else - (if (= (-> a0-8 num-func) num-func-loop!) - (set! a0-9 (< (* (-> a0-8 param 0) (- f0-0 (-> obj frame-num))) 0.0)) - (set! a0-9 (= f0-0 0.0)) - ) + (set! a0-9 (= f0-0 0.0)) ) ) (if a0-9 diff --git a/goal_src/engine/data/res.gc b/goal_src/engine/data/res.gc index 7103f93646..152f0f101a 100644 --- a/goal_src/engine/data/res.gc +++ b/goal_src/engine/data/res.gc @@ -41,7 +41,6 @@ This is updated from the entity system used in Crash 2, which had most of these (defmethod print res-tag ((obj res-tag)) "print a res-tag." - (let ((obj obj)) (if (res-ref? obj) (format #t "#" @@ -60,7 +59,6 @@ This is updated from the entity system used in Crash 2, which had most of these ) obj - ) ) (defmethod length res-tag ((obj res-tag)) diff --git a/goal_src/engine/debug/menu.gc b/goal_src/engine/debug/menu.gc index 43dfa02efb..5b2951f197 100644 --- a/goal_src/engine/debug/menu.gc +++ b/goal_src/engine/debug/menu.gc @@ -753,131 +753,127 @@ (the-as int (car (cdr (cdr (cdr arg1))))) ) ) - (else - (cond - ((or - (= s4-0 'int-var) - (= s4-0 'int-var-gat1) - (= s4-0 'hex-var) - ) - (set! - s5-0 - (new - 'debug - 'debug-menu-item-var - (the-as string s5-1) - (the-as int (car (cdr (cdr arg1)))) - (the-as int (ref arg1 4)) - ) - ) - (let ((s3-4 debug-menu-item-var-make-int) - (s2-3 (the-as debug-menu-item-var s5-0)) - (s1-3 - (debug-menu-func-decode (car (cdr (cdr (cdr arg1))))) - ) - (s0-1 (/ (the-as int (ref arg1 5)) 8)) - ) - (set! sv-16 (ref arg1 6)) - (set! sv-32 (/ (the-as int (ref arg1 7)) 8)) - (let ((t1-0 (/ (the-as int (ref arg1 8)) 8)) - (t2-0 (= s4-0 'hex-var)) - ) - (s3-4 - s2-3 - (the-as (function int int int int int) s1-3) - s0-1 - (the-as symbol sv-16) - sv-32 - t1-0 - t2-0 - ) - ) - ) - (set! (-> (the-as debug-menu-item-var s5-0) ifloat-p) #t) - s5-0 - ) - ((= s4-0 'float-var) - (set! - s5-0 - (new - 'debug - 'debug-menu-item-var - (the-as string s5-1) - (the-as int (car (cdr (cdr arg1)))) - (the-as int (ref arg1 4)) - ) - ) - (let ((s4-5 debug-menu-item-var-make-float) - (s3-6 (the-as debug-menu-item-var s5-0)) - (s2-5 - (debug-menu-func-decode (car (cdr (cdr (cdr arg1))))) - ) - (s1-5 (the float (/ (the-as int (ref arg1 5)) 8))) - (s0-2 (ref arg1 6)) - ) - (set! sv-48 (the float (/ (the-as int (ref arg1 7)) 8))) - (set! sv-64 (the float (/ (the-as int (ref arg1 8)) 8))) - (let ((t2-1 (/ (the-as int (ref arg1 9)) 8))) - (s4-5 - s3-6 - (the-as (function int int float float int) s2-5) - s1-5 - (the-as symbol s0-2) - sv-48 - sv-64 - (the-as symbol t2-1) - ) - ) - ) - s5-0 - ) - ((= s4-0 'float-fixed-var) - (set! - s5-0 - (new - 'debug - 'debug-menu-item-var - (the-as string s5-1) - (the-as int (car (cdr (cdr arg1)))) - (the-as int (ref arg1 4)) - ) - ) - (let ((s4-7 debug-menu-item-var-make-float) - (s3-8 (the-as debug-menu-item-var s5-0)) - (s2-7 - (debug-menu-func-decode (car (cdr (cdr (cdr arg1))))) - ) - (s1-7 - (* 0.001 (the float (/ (the-as int (ref arg1 5)) 8))) - ) - (s0-3 (ref arg1 6)) - ) - (set! - sv-80 - (* 0.001 (the float (/ (the-as int (ref arg1 7)) 8))) - ) - (set! - sv-96 - (* 0.001 (the float (/ (the-as int (ref arg1 8)) 8))) - ) - (let ((t2-2 (/ (the-as int (ref arg1 9)) 8))) - (s4-7 - s3-8 - (the-as (function int int float float int) s2-7) - s1-7 - (the-as symbol s0-3) - sv-80 - sv-96 - (the-as symbol t2-2) - ) - ) - ) - s5-0 - ) - (else - (the-as debug-menu-node #f) + ((or + (= s4-0 'int-var) + (= s4-0 'int-var-gat1) + (= s4-0 'hex-var) + ) + (set! + s5-0 + (new + 'debug + 'debug-menu-item-var + (the-as string s5-1) + (the-as int (car (cdr (cdr arg1)))) + (the-as int (ref arg1 4)) ) ) + (let ((s3-4 debug-menu-item-var-make-int) + (s2-3 (the-as debug-menu-item-var s5-0)) + (s1-3 + (debug-menu-func-decode (car (cdr (cdr (cdr arg1))))) + ) + (s0-1 (/ (the-as int (ref arg1 5)) 8)) + ) + (set! sv-16 (ref arg1 6)) + (set! sv-32 (/ (the-as int (ref arg1 7)) 8)) + (let ((t1-0 (/ (the-as int (ref arg1 8)) 8)) + (t2-0 (= s4-0 'hex-var)) + ) + (s3-4 + s2-3 + (the-as (function int int int int int) s1-3) + s0-1 + (the-as symbol sv-16) + sv-32 + t1-0 + t2-0 + ) + ) + ) + (set! (-> (the-as debug-menu-item-var s5-0) ifloat-p) #t) + s5-0 + ) + ((= s4-0 'float-var) + (set! + s5-0 + (new + 'debug + 'debug-menu-item-var + (the-as string s5-1) + (the-as int (car (cdr (cdr arg1)))) + (the-as int (ref arg1 4)) + ) + ) + (let ((s4-5 debug-menu-item-var-make-float) + (s3-6 (the-as debug-menu-item-var s5-0)) + (s2-5 + (debug-menu-func-decode (car (cdr (cdr (cdr arg1))))) + ) + (s1-5 (the float (/ (the-as int (ref arg1 5)) 8))) + (s0-2 (ref arg1 6)) + ) + (set! sv-48 (the float (/ (the-as int (ref arg1 7)) 8))) + (set! sv-64 (the float (/ (the-as int (ref arg1 8)) 8))) + (let ((t2-1 (/ (the-as int (ref arg1 9)) 8))) + (s4-5 + s3-6 + (the-as (function int int float float int) s2-5) + s1-5 + (the-as symbol s0-2) + sv-48 + sv-64 + (the-as symbol t2-1) + ) + ) + ) + s5-0 + ) + ((= s4-0 'float-fixed-var) + (set! + s5-0 + (new + 'debug + 'debug-menu-item-var + (the-as string s5-1) + (the-as int (car (cdr (cdr arg1)))) + (the-as int (ref arg1 4)) + ) + ) + (let ((s4-7 debug-menu-item-var-make-float) + (s3-8 (the-as debug-menu-item-var s5-0)) + (s2-7 + (debug-menu-func-decode (car (cdr (cdr (cdr arg1))))) + ) + (s1-7 + (* 0.001 (the float (/ (the-as int (ref arg1 5)) 8))) + ) + (s0-3 (ref arg1 6)) + ) + (set! + sv-80 + (* 0.001 (the float (/ (the-as int (ref arg1 7)) 8))) + ) + (set! + sv-96 + (* 0.001 (the float (/ (the-as int (ref arg1 8)) 8))) + ) + (let ((t2-2 (/ (the-as int (ref arg1 9)) 8))) + (s4-7 + s3-8 + (the-as (function int int float float int) s2-7) + s1-7 + (the-as symbol s0-3) + sv-80 + sv-96 + (the-as symbol t2-2) + ) + ) + ) + s5-0 + ) + (else + (the-as debug-menu-node #f) ) ) ) @@ -1072,11 +1068,11 @@ 16 ) ) + ((zero? arg3) + 17 + ) (else - (if (zero? arg3) - 17 - 18 - ) + 18 ) ) ) @@ -1332,11 +1328,11 @@ (set! v1-6 (car (cdr v1-4))) ) ) + ((null? a0-1) + (set! v1-6 (car (last (-> s5-0 items)))) + ) (else - (if (null? a0-1) - (set! v1-6 (car (last (-> s5-0 items)))) - (set! v1-6 (car a0-1)) - ) + (set! v1-6 (car a0-1)) ) ) ) diff --git a/goal_src/engine/dma/dma-disasm.gc b/goal_src/engine/dma/dma-disasm.gc index 1cf639b61d..fd233a0e7d 100644 --- a/goal_src/engine/dma/dma-disasm.gc +++ b/goal_src/engine/dma/dma-disasm.gc @@ -406,6 +406,9 @@ `(disasm-dma-list (the dma-packet (-> ,buff data-buffer)) 'details #t #t 0) ) + +;; NOTE: the decompiler currently outputs something nicer looking for the nexted conds, +;; but keeping the old version with nicer comments for now. (defun disasm-dma-list ((data dma-packet) (mode symbol) (verbose symbol) (stream symbol) (expected-size int)) "Disassemble a dma list, starting from the given packet." (local-vars diff --git a/goal_src/engine/geometry/geometry.gc b/goal_src/engine/geometry/geometry.gc index c4d479d81e..cc1613eaac 100644 --- a/goal_src/engine/geometry/geometry.gc +++ b/goal_src/engine/geometry/geometry.gc @@ -848,45 +848,56 @@ ) (defun point-in-plane-<-point+normal! ((arg0 vector) (arg1 vector) (arg2 vector)) - (let ((f0-3 (+ (+ (* (-> arg2 x) (-> arg1 x)) (* (-> arg2 y) (-> arg1 y))) - (* (-> arg2 z) (-> arg1 z)) - ) - ) - ) - (set! (-> arg0 w) 1.0) - (let ((f1-7 (fabs (-> arg2 x))) - (f2-3 (fabs (-> arg2 y))) - (f3-1 (fabs (-> arg2 z))) - ) - (cond - ((and (< f2-3 f1-7) (< f3-1 f1-7)) - (set! (-> arg0 y) (+ 4096.0 (-> arg1 y))) - (set! (-> arg0 z) (+ 4096.0 (-> arg1 z))) - (set! (-> arg0 x) - (/ (+ (- (- (* (-> arg2 y) (-> arg0 y))) (* (-> arg2 z) (-> arg0 z))) f0-3) (-> arg2 x)) - ) - ) - (else - (cond - ((and (< f1-7 f2-3) (< f3-1 f2-3)) - (set! (-> arg0 x) (+ 4096.0 (-> arg1 x))) - (set! (-> arg0 z) (+ 4096.0 (-> arg1 z))) - (set! (-> arg0 y) - (/ (- (- f0-3 (* (-> arg2 x) (-> arg0 x))) (* (-> arg2 z) (-> arg0 z))) (-> arg2 y)) - ) - ) - (else - (set! (-> arg0 x) (+ 4096.0 (-> arg1 x))) - (set! (-> arg0 y) (+ 4096.0 (-> arg1 y))) - (set! (-> arg0 z) - (/ (+ (- (- (* (-> arg2 x) (-> arg0 x))) (* (-> arg2 y) (-> arg0 y))) f0-3) (-> arg2 z)) - ) - ) - ) - ) - ) + (let + ((f0-3 + (+ + (+ (* (-> arg2 x) (-> arg1 x)) (* (-> arg2 y) (-> arg1 y))) + (* (-> arg2 z) (-> arg1 z)) ) + ) ) + (set! (-> arg0 w) 1.0) + (let ((f1-7 (fabs (-> arg2 x))) + (f2-3 (fabs (-> arg2 y))) + (f3-1 (fabs (-> arg2 z))) + ) + (cond + ((and (< f2-3 f1-7) (< f3-1 f1-7)) + (set! (-> arg0 y) (+ 4096.0 (-> arg1 y))) + (set! (-> arg0 z) (+ 4096.0 (-> arg1 z))) + (set! + (-> arg0 x) + (/ + (+ (- (- (* (-> arg2 y) (-> arg0 y))) (* (-> arg2 z) (-> arg0 z))) f0-3) + (-> arg2 x) + ) + ) + ) + ((and (< f1-7 f2-3) (< f3-1 f2-3)) + (set! (-> arg0 x) (+ 4096.0 (-> arg1 x))) + (set! (-> arg0 z) (+ 4096.0 (-> arg1 z))) + (set! + (-> arg0 y) + (/ + (- (- f0-3 (* (-> arg2 x) (-> arg0 x))) (* (-> arg2 z) (-> arg0 z))) + (-> arg2 y) + ) + ) + ) + (else + (set! (-> arg0 x) (+ 4096.0 (-> arg1 x))) + (set! (-> arg0 y) (+ 4096.0 (-> arg1 y))) + (set! + (-> arg0 z) + (/ + (+ (- (- (* (-> arg2 x) (-> arg0 x))) (* (-> arg2 y) (-> arg0 y))) f0-3) + (-> arg2 z) + ) + ) + ) + ) + ) + ) arg0 ) diff --git a/goal_src/engine/gfx/hw/gs.gc b/goal_src/engine/gfx/hw/gs.gc index 7a95a53bb5..78c9e07537 100644 --- a/goal_src/engine/gfx/hw/gs.gc +++ b/goal_src/engine/gfx/hw/gs.gc @@ -53,37 +53,47 @@ (defun psm-size ((arg0 gs-psm)) "Convert texture format to some type of size." (cond - ((= arg0 (gs-psm mt8)) 64) - ((= arg0 (gs-psm mt4)) 32) - (else - (if (or (= arg0 (gs-psm ct16)) - (= arg0 (gs-psm ct16s)) - (= arg0 (gs-psm mz16)) - (= arg0 (gs-psm mz16s)) - ) - 128 - 256 - ) - ) + ((= arg0 (gs-psm mt8)) + 64 ) + ((= arg0 (gs-psm mt4)) + 32 + ) + ((or + (= arg0 (gs-psm ct16)) + (= arg0 (gs-psm ct16s)) + (= arg0 (gs-psm mz16)) + (= arg0 (gs-psm mz16s)) + ) + 128 + ) + (else + 256 + ) + ) ) (defun psm-page-height ((arg0 gs-psm)) "Convert texture format to some type of page height" (cond - ((= arg0 (gs-psm mt8)) 64) - ((= arg0 (gs-psm mt4)) 128) - (else - (if (or (= arg0 (gs-psm ct16)) - (= arg0 (gs-psm ct16s)) - (= arg0 (gs-psm mz16)) - (= arg0 (gs-psm mz16s)) - ) - 64 - 32 - ) - ) + ((= arg0 (gs-psm mt8)) + 64 ) + ((= arg0 (gs-psm mt4)) + 128 + ) + ((or + (= arg0 (gs-psm ct16)) + (= arg0 (gs-psm ct16s)) + (= arg0 (gs-psm mz16)) + (= arg0 (gs-psm mz16s)) + ) + 64 + ) + (else + 32 + ) + ) ) (defun psm->string ((arg0 gs-psm)) diff --git a/goal_src/engine/gfx/mood-h.gc b/goal_src/engine/gfx/mood-h.gc index 90935660a0..9d6104c914 100644 --- a/goal_src/engine/gfx/mood-h.gc +++ b/goal_src/engine/gfx/mood-h.gc @@ -93,52 +93,55 @@ (defmethod new mood-context ((allocation symbol) (type-to-make type)) - (local-vars - (v0-0 mood-context) - (v1 vector) - ) - (set! v0-0 - (object-new allocation type-to-make (the-as int (-> type-to-make size))) - ) - (set! v1 (-> v0-0 times 0)) - (set! (-> v1 data 0) 1.000000) - (set! (-> v1 data 1) 1.000000) - (set! (-> v1 data 2) 1.000000) - (set! (-> v1 data 3) 0.000000) - (set! v1 (-> v0-0 times 1)) - (set! (-> v1 data 0) 1.000000) - (set! (-> v1 data 1) 1.000000) - (set! (-> v1 data 2) 1.000000) - (set! (-> v1 data 3) 0.000000) - (set! v1 (-> v0-0 times 2)) - (set! (-> v1 data 0) 1.000000) - (set! (-> v1 data 1) 1.000000) - (set! (-> v1 data 2) 1.000000) - (set! (-> v1 data 3) 0.000000) - (set! v1 (-> v0-0 times 3)) - (set! (-> v1 data 0) 1.000000) - (set! (-> v1 data 1) 1.000000) - (set! (-> v1 data 2) 1.000000) - (set! (-> v1 data 3) 0.000000) - (set! v1 (-> v0-0 times 4)) - (set! (-> v1 data 0) 1.000000) - (set! (-> v1 data 1) 1.000000) - (set! (-> v1 data 2) 1.000000) - (set! (-> v1 data 3) 0.000000) - (set! v1 (-> v0-0 times 5)) - (set! (-> v1 data 0) 1.000000) - (set! (-> v1 data 1) 1.000000) - (set! (-> v1 data 2) 1.000000) - (set! (-> v1 data 3) 0.000000) - (set! v1 (-> v0-0 times 6)) - (set! (-> v1 data 0) 1.000000) - (set! (-> v1 data 1) 1.000000) - (set! (-> v1 data 2) 1.000000) - (set! (-> v1 data 3) 0.000000) - (set! v1 (-> v0-0 times 7)) - (set! (-> v1 data 0) 1.000000) - (set! (-> v1 data 1) 1.000000) - (set! (-> v1 data 2) 1.000000) - (set! (-> v1 data 3) 0.000000) - v0-0 + (let ((v0-0 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) + (let ((v1-2 (-> v0-0 times))) + (set! (-> v1-2 0 x) 1.0) + (set! (-> v1-2 0 y) 1.0) + (set! (-> v1-2 0 z) 1.0) + (set! (-> v1-2 0 w) 0.0) + ) + (let ((v1-3 (-> v0-0 times 1))) + (set! (-> v1-3 x) 1.0) + (set! (-> v1-3 y) 1.0) + (set! (-> v1-3 z) 1.0) + (set! (-> v1-3 w) 0.0) + ) + (let ((v1-4 (-> v0-0 times 2))) + (set! (-> v1-4 x) 1.0) + (set! (-> v1-4 y) 1.0) + (set! (-> v1-4 z) 1.0) + (set! (-> v1-4 w) 0.0) + ) + (let ((v1-5 (-> v0-0 times 3))) + (set! (-> v1-5 x) 1.0) + (set! (-> v1-5 y) 1.0) + (set! (-> v1-5 z) 1.0) + (set! (-> v1-5 w) 0.0) + ) + (let ((v1-6 (-> v0-0 times 4))) + (set! (-> v1-6 x) 1.0) + (set! (-> v1-6 y) 1.0) + (set! (-> v1-6 z) 1.0) + (set! (-> v1-6 w) 0.0) + ) + (let ((v1-7 (-> v0-0 times 5))) + (set! (-> v1-7 x) 1.0) + (set! (-> v1-7 y) 1.0) + (set! (-> v1-7 z) 1.0) + (set! (-> v1-7 w) 0.0) + ) + (let ((v1-8 (-> v0-0 times 6))) + (set! (-> v1-8 x) 1.0) + (set! (-> v1-8 y) 1.0) + (set! (-> v1-8 z) 1.0) + (set! (-> v1-8 w) 0.0) + ) + (let ((v1-9 (-> v0-0 times 7))) + (set! (-> v1-9 x) 1.0) + (set! (-> v1-9 y) 1.0) + (set! (-> v1-9 z) 1.0) + (set! (-> v1-9 w) 0.0) + ) + v0-0 + ) ) diff --git a/goal_src/engine/gfx/texture.gc b/goal_src/engine/gfx/texture.gc index a016db7147..7ea2904c98 100644 --- a/goal_src/engine/gfx/texture.gc +++ b/goal_src/engine/gfx/texture.gc @@ -161,22 +161,20 @@ (defun texture-bpp ((arg0 gs-psm)) "Get the number of bits per pixel for the given texture format" - (let ((v1-0 arg0)) - (cond - ((= v1-0 (gs-psm mt8)) 8) - ((= v1-0 (gs-psm mt4)) 4) - (else - (if (or (= v1-0 (gs-psm ct16)) - (= v1-0 (gs-psm ct16s)) - (= v1-0 (gs-psm mz16)) - (= v1-0 (gs-psm mz16s)) - ) - 16 - 32 - ) - ) - ) + (case arg0 + (((gs-psm mt8)) + 8 + ) + (((gs-psm mt4)) + 4 ) + (((gs-psm ct16) (gs-psm ct16s) (gs-psm mz16) (gs-psm mz16s)) + 16 + ) + (else + 32 + ) + ) ) (defun texture-qwc ((w int) (h int) (tex-format gs-psm)) @@ -364,88 +362,72 @@ ) (defun gs-page-width ((arg0 gs-psm)) - (let ((v1-0 arg0)) - (if (or (zero? v1-0) - (= v1-0 (gs-psm ct24)) - (= v1-0 (gs-psm ct16)) - (= v1-0 (gs-psm ct16s)) - ) - 64 - (cond - ((or (= v1-0 (gs-psm mt8)) (= v1-0 (gs-psm mt4))) - 128 - ) - (else - (format #t "Warning: Unknown block width for psm ~D~%" arg0) - 1 - ) - ) - ) + (case arg0 + (((gs-psm ct32) (gs-psm ct24) (gs-psm ct16) (gs-psm ct16s)) + 64 + ) + (((gs-psm mt8) (gs-psm mt4)) + 128 ) + (else + (format #t "Warning: Unknown block width for psm ~D~%" arg0) + 1 + ) + ) ) (defun gs-page-height ((arg0 gs-psm)) - (let ((v1-0 arg0)) - (if (or (zero? v1-0) (= v1-0 (gs-psm ct24))) - 32 - (cond - ((or (= v1-0 (gs-psm ct16)) (= v1-0 (gs-psm ct16s))) - 64 - ) - ((= v1-0 (gs-psm mt8)) - 64 - ) - ((= v1-0 (gs-psm mt4)) - 128 - ) - (else - (format #t "Warning: Unknown block width for psm ~D~%" arg0) - 1 - ) - ) - ) + (case arg0 + (((gs-psm ct32) (gs-psm ct24)) + 32 + ) + (((gs-psm ct16) (gs-psm ct16s)) + 64 ) + (((gs-psm mt8)) + 64 + ) + (((gs-psm mt4)) + 128 + ) + (else + (format #t "Warning: Unknown block width for psm ~D~%" arg0) + 1 + ) + ) ) (defun gs-block-width ((arg0 gs-psm)) - (let ((v1-0 arg0)) - (if (or (zero? v1-0) (= v1-0 (gs-psm ct24))) - 8 - (cond - ((or (= v1-0 (gs-psm ct16)) (= v1-0 (gs-psm ct16s)) (= v1-0 (gs-psm mt8))) - 16 - ) - ((= v1-0 (gs-psm mt4)) - 32 - ) - (else - (format #t "Warning: Unknown block width for psm ~D~%" arg0) - 1 - ) + (case arg0 + (((gs-psm ct32) (gs-psm ct24)) + 8 ) + (((gs-psm ct16) (gs-psm ct16s) (gs-psm mt8)) + 16 + ) + (((gs-psm mt4)) + 32 + ) + (else + (format #t "Warning: Unknown block width for psm ~D~%" arg0) + 1 ) ) ) (defun gs-block-height ((arg0 gs-psm)) - (let ((v1-0 arg0)) - (if (or (zero? v1-0) - (= v1-0 (gs-psm ct24)) - (= v1-0 (gs-psm ct16)) - (= v1-0 (gs-psm ct16s)) - ) - 8 - (cond - ((or (= v1-0 (gs-psm mt8)) (= v1-0 (gs-psm mt4))) - 16 - ) - (else - (format #t "Warning: Unknown block width for psm ~D~%" arg0) - 1 - ) - ) - ) + (case arg0 + (((gs-psm ct32) (gs-psm ct24) (gs-psm ct16) (gs-psm ct16s)) + 8 + ) + (((gs-psm mt8) (gs-psm mt4)) + 16 ) + (else + (format #t "Warning: Unknown block width for psm ~D~%" arg0) + 1 + ) + ) ) (defun gs-largest-block ((tex-width int) (tex-height int) (tex-format gs-psm)) @@ -533,33 +515,69 @@ (defmethod lookup-boot-common-id texture-pool ((obj texture-pool) (arg0 int)) "Map these special textures to a number betwen 0 and 19. For other textures, return -1. NOTE: hud means start menu + zoomer, not the usual health HUD." - (let ((v1-0 arg0)) - (cond - ((= v1-0 1032) 0) ;; hud (seg0 only) - ((= v1-0 1119) 1) ;; zoomer-hud (not actually loaded at boot) - ((= v1-0 1478) 2) ;; doesn't exist? (likely demo1) - ((= v1-0 1485) 3) ;; demo2 (seg0 only) - ((= v1-0 1486) 4) ;; demo3 (seg0 only) - ((= v1-0 1487) 5) ;; demo4 (seg0 only) - (else - (cond - ((or (= v1-0 635) (= v1-0 1609)) 6) ;; X or demo5j (seg0 only) - ((= v1-0 636) 7) ;; nope - ((= v1-0 637) 8) ;; nope - ((= v1-0 752) 9) ;; nope - ((= v1-0 1598) 10) ;; nope - ((= v1-0 1599) 11) ;; demo2f - ((= v1-0 1600) 12) ;; demo2g - ((= v1-0 1601) 13) ;; demo2i - ((= v1-0 1602) 14) ;; demo2s - ((= v1-0 1603) 15) ;; demo4e - ((= v1-0 1604) 16) ;; demo4f - ((= v1-0 1605) 17) ;; demo4g - ((= v1-0 1606) 18) ;; demo4i - ((= v1-0 1607) 19) ;; demo4s - (else -1) - ) + (case arg0 + ((1032) ;; hud (seg0 only) + 0 ) + ((1119) ;; zoomer-hud (not actually loaded at boot) + 1 + ) + ((1478) ;; doesn't exist? (likely demo1) + 2 + ) + ((1485) ;; demo2 (seg0 only) + 3 + ) + ((1486) ;; demo3 (seg0 only) + 4 + ) + ((1487) ;; demo4 (seg0 only) + 5 + ) + ((635 1609) ;; X or demo5j (seg0 only) + 6 + ) + ((636) ;; nope + 7 + ) + ((637) ;; nope + 8 + ) + ((752) ;; nope + 9 + ) + ((1598) ;; nope + 10 + ) + ((1599) ;; demo2f + 11 + ) + ((1600) ;; demo2g + 12 + ) + ((1601) ;; demo2i + 13 + ) + ((1602) ;; demo2s + 14 + ) + ((1603) ;; demo4e + 15 + ) + ((1604) ;; demo4f + 16 + ) + ((1605) ;; demo4g + 17 + ) + ((1606) ;; demo4i + 18 + ) + ((1607) ;; demo4s + 19 + ) + (else + -1 ) ) ) @@ -2873,12 +2891,10 @@ ;; iterate through all textures (dotimes (a0-1 (-> v1-0 length)) ;; found it! - (if (= arg0 (-> v1-0 entries a0-1 page)) - (begin - (set! a0-2 a0-1) - (goto cfg-7) - ) - ) + (when (= arg0 (-> v1-0 entries a0-1 page)) + (set! a0-2 a0-1) + (goto cfg-7) + ) ) (set! a0-2 -1) (label cfg-7) diff --git a/goal_src/kernel/gcommon.gc b/goal_src/kernel/gcommon.gc index 2136ca5ede..e2e9131d6b 100644 --- a/goal_src/kernel/gcommon.gc +++ b/goal_src/kernel/gcommon.gc @@ -757,107 +757,127 @@ "Print array." (format #t "#(") (cond - ((type-type? (-> obj content-type) integer) - (let ((content-type-sym (-> obj content-type symbol))) - (cond - ((= content-type-sym 'int32) - (dotimes (s5-0 (-> obj length)) - (format #t (if (zero? s5-0) "~D" " ~D") - (-> (the-as (array int32) obj) s5-0) + ((type-type? (-> obj content-type) integer) + (case (-> obj content-type symbol) + (('int32) + (dotimes (s5-0 (-> obj length)) + (format #t (if (zero? s5-0) + "~D" + " ~D" ) - ) - ) - ((= content-type-sym 'uint32) - (dotimes (s5-1 (-> obj length)) - (format #t (if (zero? s5-1) "~D" " ~D") - (-> (the-as (array uint32) obj) s5-1) - ) - ) - ) - ((= content-type-sym 'int64) - (dotimes (s5-2 (-> obj length)) - (format #t (if (zero? s5-2) "~D" " ~D") - (-> (the-as (array int64) obj) s5-2) - ) - ) - ) - ((= content-type-sym 'uint64) - (dotimes (s5-3 (-> obj length)) - (format #t (if (zero? s5-3) "#x~X" " #x~X") - (-> (the-as (array uint64) obj) s5-3) - ) - ) - ) - ((= content-type-sym 'int8) - (dotimes (s5-4 (-> obj length)) - (format #t (if (zero? s5-4) "~D" " ~D") - (-> (the-as (array int8) obj) s5-4) - ) - ) - ) - ((= content-type-sym 'uint8) - (dotimes (s5-5 (-> obj length)) - (format #t (if (zero? s5-5) "~D" " ~D") - (-> (the-as (array uint8) obj) s5-5) - ) - ) - ) - ((= content-type-sym 'int16) - (dotimes (s5-6 (-> obj length)) - (format #t (if (zero? s5-6) "~D" " ~D") - (-> (the-as (array int16) obj) s5-6) - ) - ) - ) - ((= content-type-sym 'uint16) - (dotimes (s5-7 (-> obj length)) - (format #t (if (zero? s5-7) "~D" " ~D") - (-> (the-as (array uint16) obj) s5-7) - ) - ) - ) - (else - (cond - ((or (= content-type-sym 'uint128) (= content-type-sym 'int128)) - (dotimes (s5-8 (-> obj length)) - (format #t (if (zero? s5-8) "#x~X" " #x~X") - (-> (the-as (array uint128) obj) s5-8) - ) - ) - ) - (else - (dotimes (s5-9 (-> obj length)) - (format #t (if (zero? s5-9) "~D" " ~D") - (-> (the-as (array int32) obj) s5-9) - ) - ) - ) - ) - ) + (-> (the-as (array int32) obj) s5-0) ) - ) - ) - (else - (cond - ((= (-> obj content-type) float) - (dotimes (s5-10 (-> obj length)) - (if (zero? s5-10) - (format #t "~f" (-> (the-as (array float) obj) s5-10)) - (format #t " ~f" (-> (the-as (array float) obj) s5-10)) - ) - ) - ) - (else - (dotimes (s5-11 (-> obj length)) - (if (zero? s5-11) - (format #t "~A" (-> (the-as (array basic) obj) s5-11)) - (format #t " ~A" (-> (the-as (array basic) obj) s5-11)) - ) - ) ) ) + (('uint32) + (dotimes (s5-1 (-> obj length)) + (format #t (if (zero? s5-1) + "~D" + " ~D" + ) + (-> (the-as (array uint32) obj) s5-1) + ) + ) + ) + (('int64) + (dotimes (s5-2 (-> obj length)) + (format #t (if (zero? s5-2) + "~D" + " ~D" + ) + (-> (the-as (array int64) obj) s5-2) + ) + ) + ) + (('uint64) + (dotimes (s5-3 (-> obj length)) + (format #t (if (zero? s5-3) + "#x~X" + " #x~X" + ) + (-> (the-as (array uint64) obj) s5-3) + ) + ) + ) + (('int8) + (dotimes (s5-4 (-> obj length)) + (format #t (if (zero? s5-4) + "~D" + " ~D" + ) + (-> (the-as (array int8) obj) s5-4) + ) + ) + ) + (('uint8) + (dotimes (s5-5 (-> obj length)) + (format #t (if (zero? s5-5) + "~D" + " ~D" + ) + (-> (the-as (array uint8) obj) s5-5) + ) + ) + ) + (('int16) + (dotimes (s5-6 (-> obj length)) + (format #t (if (zero? s5-6) + "~D" + " ~D" + ) + (-> (the-as (array int16) obj) s5-6) + ) + ) + ) + (('uint16) + (dotimes (s5-7 (-> obj length)) + (format #t (if (zero? s5-7) + "~D" + " ~D" + ) + (-> (the-as (array uint16) obj) s5-7) + ) + ) + ) + (('uint128 'int128) + (dotimes (s5-8 (-> obj length)) + (format #t (if (zero? s5-8) + "#x~X" + " #x~X" + ) + (-> (the-as (array uint128) obj) s5-8) + ) + ) + ) + (else + (dotimes (s5-9 (-> obj length)) + (format #t (if (zero? s5-9) + "~D" + " ~D" + ) + (-> (the-as (array int32) obj) s5-9) + ) + ) + ) ) ) + ((= (-> obj content-type) float) + (dotimes (s5-10 (-> obj length)) + (if (zero? s5-10) + (format #t "~f" (-> (the-as (array float) obj) s5-10)) + (format #t " ~f" (-> (the-as (array float) obj) s5-10)) + ) + ) + ) + (else + (dotimes (s5-11 (-> obj length)) + (if (zero? s5-11) + (format #t "~A" (-> (the-as (array basic) obj) s5-11)) + (format #t " ~A" (-> (the-as (array basic) obj) s5-11)) + ) + ) + ) + ) (format #t ")") obj ) @@ -871,86 +891,71 @@ (format #t "~Tcontent-type: ~A~%" (-> obj content-type)) (format #t "~Tdata[~D]: @ #x~X~%" (-> obj allocated-length) (-> obj data)) (cond - ((type-type? (-> obj content-type) integer) - (let ((content-type-sym (-> obj content-type symbol))) - (cond - ((= content-type-sym 'int32) - (dotimes (s5-0 (-> obj length)) - (format #t "~T [~D] ~D~%" s5-0 (-> (the-as (array int32) obj) s5-0)) - ) - ) - ((= content-type-sym 'uint32) - (dotimes (s5-1 (-> obj length)) - (format #t "~T [~D] ~D~%" s5-1 (-> (the-as (array uint32) obj) s5-1)) - ) - ) - ((= content-type-sym 'int64) - (dotimes (s5-2 (-> obj length)) - (format #t "~T [~D] ~D~%" s5-2 (-> (the-as (array int64) obj) s5-2)) - ) - ) - ((= content-type-sym 'uint64) - (dotimes (s5-3 (-> obj length)) - (format #t "~T [~D] #x~X~%" s5-3 (-> (the-as (array uint64) obj) s5-3)) - ) - ) - ((= content-type-sym 'int8) - (dotimes (s5-4 (-> obj length)) - (format #t "~T [~D] ~D~%" s5-4 (-> (the-as (array int8) obj) s5-4)) - ) - ) - ((= content-type-sym 'uint8) - (dotimes (s5-5 (-> obj length)) - (format #t "~T [~D] ~D~%" s5-5 (-> (the-as (array int8) obj) s5-5)) - ) - ) - ((= content-type-sym 'int16) - (dotimes (s5-6 (-> obj length)) - (format #t "~T [~D] ~D~%" s5-6 (-> (the-as (array int16) obj) s5-6)) - ) - ) - ((= content-type-sym 'uint16) - (dotimes (s5-7 (-> obj length)) - (format #t "~T [~D] ~D~%" s5-7 (-> (the-as (array uint16) obj) s5-7)) - ) - ) - (else - (cond - ((or (= content-type-sym 'int128) (= content-type-sym 'uint128)) - (dotimes (s5-8 (-> obj length)) - (format - #t - "~T [~D] #x~X~%" - s5-8 - (-> (the-as (array uint128) obj) s5-8) - ) - ) - ) - (else - (dotimes (s5-9 (-> obj length)) - (format #t "~T [~D] ~D~%" s5-9 (-> (the-as (array int32) obj) s5-9)) - ) - ) - ) - ) - ) - ) - ) - (else - (cond - ((= (-> obj content-type) float) - (dotimes (s5-10 (-> obj length)) - (format #t "~T [~D] ~f~%" s5-10 (-> (the-as (array float) obj) s5-10)) - ) - ) - (else - (dotimes (s5-11 (-> obj length)) - (format #t "~T [~D] ~A~%" s5-11 (-> (the-as (array basic) obj) s5-11)) - ) + ((type-type? (-> obj content-type) integer) + (case (-> obj content-type symbol) + (('int32) + (dotimes (s5-0 (-> obj length)) + (format #t "~T [~D] ~D~%" s5-0 (-> (the-as (array int32) obj) s5-0)) ) ) + (('uint32) + (dotimes (s5-1 (-> obj length)) + (format #t "~T [~D] ~D~%" s5-1 (-> (the-as (array uint32) obj) s5-1)) + ) + ) + (('int64) + (dotimes (s5-2 (-> obj length)) + (format #t "~T [~D] ~D~%" s5-2 (-> (the-as (array int64) obj) s5-2)) + ) + ) + (('uint64) + (dotimes (s5-3 (-> obj length)) + (format #t "~T [~D] #x~X~%" s5-3 (-> (the-as (array uint64) obj) s5-3)) + ) + ) + (('int8) + (dotimes (s5-4 (-> obj length)) + (format #t "~T [~D] ~D~%" s5-4 (-> (the-as (array int8) obj) s5-4)) + ) + ) + (('uint8) + (dotimes (s5-5 (-> obj length)) + (format #t "~T [~D] ~D~%" s5-5 (-> (the-as (array int8) obj) s5-5)) + ) + ) + (('int16) + (dotimes (s5-6 (-> obj length)) + (format #t "~T [~D] ~D~%" s5-6 (-> (the-as (array int16) obj) s5-6)) + ) + ) + (('uint16) + (dotimes (s5-7 (-> obj length)) + (format #t "~T [~D] ~D~%" s5-7 (-> (the-as (array uint16) obj) s5-7)) + ) + ) + (('int128 'uint128) + (dotimes (s5-8 (-> obj length)) + (format #t "~T [~D] #x~X~%" s5-8 (-> (the-as (array uint128) obj) s5-8)) + ) + ) + (else + (dotimes (s5-9 (-> obj length)) + (format #t "~T [~D] ~D~%" s5-9 (-> (the-as (array int32) obj) s5-9)) + ) + ) ) ) + ((= (-> obj content-type) float) + (dotimes (s5-10 (-> obj length)) + (format #t "~T [~D] ~f~%" s5-10 (-> (the-as (array float) obj) s5-10)) + ) + ) + (else + (dotimes (s5-11 (-> obj length)) + (format #t "~T [~D] ~A~%" s5-11 (-> (the-as (array basic) obj) s5-11)) + ) + ) + ) obj ) diff --git a/goalc/compiler/compilation/Static.cpp b/goalc/compiler/compilation/Static.cpp index 1d9b55a507..68a9c62403 100644 --- a/goalc/compiler/compilation/Static.cpp +++ b/goalc/compiler/compilation/Static.cpp @@ -379,10 +379,21 @@ Val* Compiler::compile_bitfield_definition(const goos::Object& form, float value = 0.f; if (!try_getting_constant_float(field_value, &value, env)) { - throw_compiler_error(form, - "Field {} is a float, but the value given couldn't " - "be converted to a float at compile time.", - field_name_def); + // failed to get as constant, add to dynamic or error. + if (allow_dynamic_construction) { + DynamicDef dyn; + dyn.definition = field_value; + dyn.field_offset = field_offset; + dyn.field_size = field_size; + dyn.field_name = field_name_def; + dyn.expected_type = TypeSpec("float"); + dynamic_defs.push_back(dyn); + } else { + throw_compiler_error(form, + "Field {} is a float, but the value given couldn't " + "be converted to a float at compile time.", + field_name_def); + } } u64 float_value = float_as_u32(value); bool start_lo = field_offset < 64; @@ -393,6 +404,20 @@ Val* Compiler::compile_bitfield_definition(const goos::Object& form, } else { constant_integer_part.hi |= (float_value << (field_offset - 64)); } + } else if (field_info.result_type == TypeSpec("symbol")) { + if (allow_dynamic_construction) { + DynamicDef dyn; + dyn.definition = field_value; + dyn.field_offset = field_offset; + dyn.field_size = field_size; + dyn.field_name = field_name_def; + dyn.expected_type = coerce_to_reg_type(field_info.result_type); + dynamic_defs.push_back(dyn); + } else { + throw_compiler_error( + form, "Field {} is a symbol, which cannot be constructed at compile time yet.", + field_name_def); + } } else { diff --git a/test/decompiler/reference/engine/anim/aligner_REF.gc b/test/decompiler/reference/engine/anim/aligner_REF.gc index 71adeb9ac7..0f90cf76b0 100644 --- a/test/decompiler/reference/engine/anim/aligner_REF.gc +++ b/test/decompiler/reference/engine/anim/aligner_REF.gc @@ -51,11 +51,11 @@ ((or (not v1-16) (!= (-> obj frame-group) v1-16)) (set! a0-9 #t) ) + ((= (-> a0-8 num-func) num-func-loop!) + (set! a0-9 (< (* (-> a0-8 param 0) (- f0-0 (-> obj frame-num))) 0.0)) + ) (else - (if (= (-> a0-8 num-func) num-func-loop!) - (set! a0-9 (< (* (-> a0-8 param 0) (- f0-0 (-> obj frame-num))) 0.0)) - (set! a0-9 (= f0-0 0.0)) - ) + (set! a0-9 (= f0-0 0.0)) ) ) (if a0-9 @@ -259,7 +259,3 @@ (-> obj process root) (none) ) - - - - diff --git a/test/decompiler/reference/engine/debug/menu_REF.gc b/test/decompiler/reference/engine/debug/menu_REF.gc index 9bc7cb216f..f8e07e571e 100644 --- a/test/decompiler/reference/engine/debug/menu_REF.gc +++ b/test/decompiler/reference/engine/debug/menu_REF.gc @@ -773,11 +773,9 @@ (sv-80 float) (sv-96 float) ) - (if (or (not arg1) (null? arg1)) - (begin - (set! s5-0 (the-as debug-menu-node #f)) - (goto cfg-41) - ) + (when (or (not arg1) (null? arg1)) + (set! s5-0 (the-as debug-menu-node #f)) + (goto cfg-41) ) (let ((s4-0 (car arg1)) (s5-1 (car (cdr arg1))) @@ -853,131 +851,127 @@ (the-as int (car (cdr (cdr (cdr arg1))))) ) ) - (else - (cond - ((or - (= s4-0 'int-var) - (= s4-0 'int-var-gat1) - (= s4-0 'hex-var) - ) - (set! - s5-0 - (new - 'debug - 'debug-menu-item-var - (the-as string s5-1) - (the-as int (car (cdr (cdr arg1)))) - (the-as int (ref arg1 4)) - ) - ) - (let ((s3-4 debug-menu-item-var-make-int) - (s2-3 (the-as debug-menu-item-var s5-0)) - (s1-3 - (debug-menu-func-decode (car (cdr (cdr (cdr arg1))))) - ) - (s0-1 (/ (the-as int (ref arg1 5)) 8)) - ) - (set! sv-16 (ref arg1 6)) - (set! sv-32 (/ (the-as int (ref arg1 7)) 8)) - (let ((t1-0 (/ (the-as int (ref arg1 8)) 8)) - (t2-0 (= s4-0 'hex-var)) - ) - (s3-4 - s2-3 - (the-as (function int int int int int) s1-3) - s0-1 - (the-as symbol sv-16) - sv-32 - t1-0 - t2-0 - ) - ) - ) - (set! (-> (the-as debug-menu-item-var s5-0) ifloat-p) #t) - s5-0 - ) - ((= s4-0 'float-var) - (set! - s5-0 - (new - 'debug - 'debug-menu-item-var - (the-as string s5-1) - (the-as int (car (cdr (cdr arg1)))) - (the-as int (ref arg1 4)) - ) - ) - (let ((s4-5 debug-menu-item-var-make-float) - (s3-6 (the-as debug-menu-item-var s5-0)) - (s2-5 - (debug-menu-func-decode (car (cdr (cdr (cdr arg1))))) - ) - (s1-5 (the float (/ (the-as int (ref arg1 5)) 8))) - (s0-2 (ref arg1 6)) - ) - (set! sv-48 (the float (/ (the-as int (ref arg1 7)) 8))) - (set! sv-64 (the float (/ (the-as int (ref arg1 8)) 8))) - (let ((t2-1 (/ (the-as int (ref arg1 9)) 8))) - (s4-5 - s3-6 - (the-as (function int int float float int) s2-5) - s1-5 - (the-as symbol s0-2) - sv-48 - sv-64 - (the-as symbol t2-1) - ) - ) - ) - s5-0 - ) - ((= s4-0 'float-fixed-var) - (set! - s5-0 - (new - 'debug - 'debug-menu-item-var - (the-as string s5-1) - (the-as int (car (cdr (cdr arg1)))) - (the-as int (ref arg1 4)) - ) - ) - (let ((s4-7 debug-menu-item-var-make-float) - (s3-8 (the-as debug-menu-item-var s5-0)) - (s2-7 - (debug-menu-func-decode (car (cdr (cdr (cdr arg1))))) - ) - (s1-7 - (* 0.001 (the float (/ (the-as int (ref arg1 5)) 8))) - ) - (s0-3 (ref arg1 6)) - ) - (set! - sv-80 - (* 0.001 (the float (/ (the-as int (ref arg1 7)) 8))) - ) - (set! - sv-96 - (* 0.001 (the float (/ (the-as int (ref arg1 8)) 8))) - ) - (let ((t2-2 (/ (the-as int (ref arg1 9)) 8))) - (s4-7 - s3-8 - (the-as (function int int float float int) s2-7) - s1-7 - (the-as symbol s0-3) - sv-80 - sv-96 - (the-as symbol t2-2) - ) - ) - ) - s5-0 - ) - (else - (the-as debug-menu-node #f) + ((or + (= s4-0 'int-var) + (= s4-0 'int-var-gat1) + (= s4-0 'hex-var) + ) + (set! + s5-0 + (new + 'debug + 'debug-menu-item-var + (the-as string s5-1) + (the-as int (car (cdr (cdr arg1)))) + (the-as int (ref arg1 4)) ) ) + (let ((s3-4 debug-menu-item-var-make-int) + (s2-3 (the-as debug-menu-item-var s5-0)) + (s1-3 + (debug-menu-func-decode (car (cdr (cdr (cdr arg1))))) + ) + (s0-1 (/ (the-as int (ref arg1 5)) 8)) + ) + (set! sv-16 (ref arg1 6)) + (set! sv-32 (/ (the-as int (ref arg1 7)) 8)) + (let ((t1-0 (/ (the-as int (ref arg1 8)) 8)) + (t2-0 (= s4-0 'hex-var)) + ) + (s3-4 + s2-3 + (the-as (function int int int int int) s1-3) + s0-1 + (the-as symbol sv-16) + sv-32 + t1-0 + t2-0 + ) + ) + ) + (set! (-> (the-as debug-menu-item-var s5-0) ifloat-p) #t) + s5-0 + ) + ((= s4-0 'float-var) + (set! + s5-0 + (new + 'debug + 'debug-menu-item-var + (the-as string s5-1) + (the-as int (car (cdr (cdr arg1)))) + (the-as int (ref arg1 4)) + ) + ) + (let ((s4-5 debug-menu-item-var-make-float) + (s3-6 (the-as debug-menu-item-var s5-0)) + (s2-5 + (debug-menu-func-decode (car (cdr (cdr (cdr arg1))))) + ) + (s1-5 (the float (/ (the-as int (ref arg1 5)) 8))) + (s0-2 (ref arg1 6)) + ) + (set! sv-48 (the float (/ (the-as int (ref arg1 7)) 8))) + (set! sv-64 (the float (/ (the-as int (ref arg1 8)) 8))) + (let ((t2-1 (/ (the-as int (ref arg1 9)) 8))) + (s4-5 + s3-6 + (the-as (function int int float float int) s2-5) + s1-5 + (the-as symbol s0-2) + sv-48 + sv-64 + (the-as symbol t2-1) + ) + ) + ) + s5-0 + ) + ((= s4-0 'float-fixed-var) + (set! + s5-0 + (new + 'debug + 'debug-menu-item-var + (the-as string s5-1) + (the-as int (car (cdr (cdr arg1)))) + (the-as int (ref arg1 4)) + ) + ) + (let ((s4-7 debug-menu-item-var-make-float) + (s3-8 (the-as debug-menu-item-var s5-0)) + (s2-7 + (debug-menu-func-decode (car (cdr (cdr (cdr arg1))))) + ) + (s1-7 + (* 0.001 (the float (/ (the-as int (ref arg1 5)) 8))) + ) + (s0-3 (ref arg1 6)) + ) + (set! + sv-80 + (* 0.001 (the float (/ (the-as int (ref arg1 7)) 8))) + ) + (set! + sv-96 + (* 0.001 (the float (/ (the-as int (ref arg1 8)) 8))) + ) + (let ((t2-2 (/ (the-as int (ref arg1 9)) 8))) + (s4-7 + s3-8 + (the-as (function int int float float int) s2-7) + s1-7 + (the-as symbol s0-3) + sv-80 + sv-96 + (the-as symbol t2-2) + ) + ) + ) + s5-0 + ) + (else + (the-as debug-menu-node #f) ) ) ) @@ -1006,25 +1000,21 @@ (set! arg1 (cdr arg1)) (let ((s5-0 (car s3-0))) (while (not (null? s3-0)) - (if + (when (string= (the-as string s4-1) (-> (the-as debug-menu-item s5-0) name)) - (begin - (if (type-type? (rtype-of s5-0) debug-menu-item-submenu) - (set! s4-0 (-> (the-as debug-menu-item-submenu s5-0) submenu)) - (set! s4-0 s5-0) - ) - (goto cfg-17) + (if (type-type? (rtype-of s5-0) debug-menu-item-submenu) + (set! s4-0 (-> (the-as debug-menu-item-submenu s5-0) submenu)) + (set! s4-0 s5-0) ) + (goto cfg-17) ) (set! s3-0 (cdr s3-0)) (set! s5-0 (car s3-0)) ) ) ) - (begin - (set! s4-0 #f) - (goto cfg-24) - ) + (set! s4-0 #f) + (goto cfg-24) ) (label cfg-24) (the-as debug-menu s4-0) @@ -1172,11 +1162,11 @@ 16 ) ) + ((zero? arg3) + 17 + ) (else - (if (zero? arg3) - 17 - 18 - ) + 18 ) ) ) @@ -1276,9 +1266,7 @@ ) (while (not (null? a0-1)) (if (= a1-1 arg3) - (begin - (goto cfg-7) - ) + (goto cfg-7) ) (+! v1-0 1) (set! a0-1 (cdr a0-1)) @@ -1407,23 +1395,19 @@ ) (let ((a3-0 (-> s5-0 items))) (while (not (null? a3-0)) - (if (= (car a3-0) a2-0) - (begin - (set! v1-4 a3-0) - (goto cfg-7) - ) + (when (= (car a3-0) a2-0) + (set! v1-4 a3-0) + (goto cfg-7) ) (set! a0-1 a3-0) (set! a3-0 (cdr a3-0)) ) ) (label cfg-7) - (if (null? v1-4) - (begin - (format 0 "ERROR: Couldn't find selected item in menu.~%") - (set! arg0 arg0) - (goto cfg-19) - ) + (when (null? v1-4) + (format 0 "ERROR: Couldn't find selected item in menu.~%") + (set! arg0 arg0) + (goto cfg-19) ) (cond ((>= arg1 0) @@ -1432,11 +1416,11 @@ (set! v1-6 (car (cdr v1-4))) ) ) + ((null? a0-1) + (set! v1-6 (car (last (-> s5-0 items)))) + ) (else - (if (null? a0-1) - (set! v1-6 (car (last (-> s5-0 items)))) - (set! v1-6 (car a0-1)) - ) + (set! v1-6 (car a0-1)) ) ) ) @@ -1462,12 +1446,10 @@ (+! a0-1 1) ) ) - (if (= v1-4 -1) - (begin - (format 0 "ERROR: Couldn't find selected item in menu.~%") - (set! arg0 arg0) - (goto cfg-25) - ) + (when (= v1-4 -1) + (format 0 "ERROR: Couldn't find selected item in menu.~%") + (set! arg0 arg0) + (goto cfg-25) ) (cond ((>= arg1 0) diff --git a/test/decompiler/reference/engine/dma/dma-disasm_REF.gc b/test/decompiler/reference/engine/dma/dma-disasm_REF.gc index 29513e9705..e8744f1ac5 100644 --- a/test/decompiler/reference/engine/dma/dma-disasm_REF.gc +++ b/test/decompiler/reference/engine/dma/dma-disasm_REF.gc @@ -707,169 +707,142 @@ (cond (end-condition ) - (else - (cond - ((or - (= (-> current-tag id) (dma-tag-id ref)) - (= (-> current-tag id) (dma-tag-id refs)) - (zero? (-> current-tag id)) - ) - (set! addr (-> current-tag addr)) - (set! qwc (the-as int (-> current-tag qwc))) - (when mode-2 - (let - ((v0-10 - (disasm-vif-tag (&-> data-2 vif0) 2 stream-2 (= mode-2 'details)) - ) - ) - (disasm-vif-tag - (the-as (pointer vif-tag) (+ addr (the-as uint v0-10))) - (the-as int (- (* qwc 4) (the-as uint (/ v0-10 4)))) - stream-2 - (= mode-2 'details) - ) + ((or + (= (-> current-tag id) (dma-tag-id ref)) + (= (-> current-tag id) (dma-tag-id refs)) + (zero? (-> current-tag id)) + ) + (set! addr (-> current-tag addr)) + (set! qwc (the-as int (-> current-tag qwc))) + (when mode-2 + (let + ((v0-10 + (disasm-vif-tag (&-> data-2 vif0) 2 stream-2 (= mode-2 'details)) ) ) - (set! - data-2 - (the-as dma-packet (&-> (the-as (pointer uint64) data-2) 2)) - ) - (if (= (-> current-tag id) (dma-tag-id refe)) - (set! end-condition #t) - ) - ) - (else - (cond - ((= (-> current-tag id) (dma-tag-id cnt)) - (set! addr (&-> (the-as (pointer uint64) data-2) 2)) - (set! qwc (the-as int (-> current-tag qwc))) - (if mode-2 - (disasm-vif-tag - (the-as - (pointer vif-tag) - (&-> (the-as (pointer uint64) data-2) 1) - ) - (the-as int (+ (* qwc 4) 2)) - stream-2 - (= mode-2 'details) - ) - ) - (set! - data-2 - (the-as - dma-packet - (+ (the-as uint data-2) (the-as uint (* (+ qwc 1) 16))) - ) - ) - data-2 - ) - ((= (-> current-tag id) (dma-tag-id next)) - (set! addr (&-> (the-as (pointer uint64) data-2) 2)) - (set! qwc (the-as int (-> current-tag qwc))) - (if mode-2 - (disasm-vif-tag - (the-as - (pointer vif-tag) - (&-> (the-as (pointer uint64) data-2) 1) - ) - (the-as int (+ (* qwc 4) 2)) - stream-2 - (= mode-2 'details) - ) - ) - (when (= data-2 (-> current-tag addr)) - (format stream-2 "ERROR: next tag creates infinite loop.~%") - (set! end-condition 'error) - ) - (set! data-2 (the-as dma-packet (-> current-tag addr))) - data-2 - ) - (else - (cond - ((= (-> current-tag id) (dma-tag-id call)) - (set! addr (&-> (the-as (pointer uint64) data-2) 2)) - (set! qwc (the-as int (-> current-tag qwc))) - (if mode-2 - (disasm-vif-tag - (the-as - (pointer vif-tag) - (&-> (the-as (pointer uint64) data-2) 1) - ) - (the-as int (+ (* qwc 4) 2)) - stream-2 - (= mode-2 'details) - ) - ) - (set! data-2 (the-as dma-packet (-> current-tag addr))) - (set! call-depth (+ call-depth 1)) - (cond - ((zero? call-depth) - (set! ra-1 (&+ addr qwc)) - (the-as (pointer uint64) ra-1) - ) - (else - (set! ra-2 (&+ addr qwc)) - (the-as (pointer uint64) ra-2) - ) - ) - ) - ((= (-> current-tag id) (dma-tag-id ret)) - (set! addr (&-> (the-as (pointer uint64) data-2) 2)) - (set! qwc (the-as int (-> current-tag qwc))) - (if mode-2 - (disasm-vif-tag - (the-as - (pointer vif-tag) - (&-> (the-as (pointer uint64) data-2) 1) - ) - (the-as int (+ (* qwc 4) 2)) - stream-2 - (= mode-2 'details) - ) - ) - (let ((v1-123 call-depth)) - (cond - ((zero? v1-123) - (set! data-2 (the-as dma-packet ra-1)) - data-2 - ) - ((= v1-123 1) - (set! data-2 (the-as dma-packet ra-2)) - data-2 - ) - (else - (set! end-condition #t) - ) - ) - ) - (set! call-depth (+ call-depth -1)) - call-depth - ) - ((= (-> current-tag id) (dma-tag-id end)) - (set! addr (&-> (the-as (pointer uint64) data-2) 2)) - (set! qwc (the-as int (-> current-tag qwc))) - (set! end-condition #t) - (if mode-2 - (disasm-vif-tag - (the-as - (pointer vif-tag) - (&-> (the-as (pointer uint64) data-2) 1) - ) - (the-as int (+ (* qwc 4) 2)) - stream-2 - (= mode-2 'details) - ) - ) - ) - (else - (format stream-2 "ERROR: Unknown DMA TAG command.~%") - (set! end-condition 'error) - ) - ) - ) + (disasm-vif-tag + (the-as (pointer vif-tag) (+ addr (the-as uint v0-10))) + (the-as int (- (* qwc 4) (the-as uint (/ v0-10 4)))) + stream-2 + (= mode-2 'details) ) ) ) + (set! + data-2 + (the-as dma-packet (&-> (the-as (pointer uint64) data-2) 2)) + ) + (if (= (-> current-tag id) (dma-tag-id refe)) + (set! end-condition #t) + ) + ) + ((= (-> current-tag id) (dma-tag-id cnt)) + (set! addr (&-> (the-as (pointer uint64) data-2) 2)) + (set! qwc (the-as int (-> current-tag qwc))) + (if mode-2 + (disasm-vif-tag + (the-as (pointer vif-tag) (&-> (the-as (pointer uint64) data-2) 1)) + (the-as int (+ (* qwc 4) 2)) + stream-2 + (= mode-2 'details) + ) + ) + (set! + data-2 + (the-as + dma-packet + (+ (the-as uint data-2) (the-as uint (* (+ qwc 1) 16))) + ) + ) + data-2 + ) + ((= (-> current-tag id) (dma-tag-id next)) + (set! addr (&-> (the-as (pointer uint64) data-2) 2)) + (set! qwc (the-as int (-> current-tag qwc))) + (if mode-2 + (disasm-vif-tag + (the-as (pointer vif-tag) (&-> (the-as (pointer uint64) data-2) 1)) + (the-as int (+ (* qwc 4) 2)) + stream-2 + (= mode-2 'details) + ) + ) + (when (= data-2 (-> current-tag addr)) + (format stream-2 "ERROR: next tag creates infinite loop.~%") + (set! end-condition 'error) + ) + (set! data-2 (the-as dma-packet (-> current-tag addr))) + data-2 + ) + ((= (-> current-tag id) (dma-tag-id call)) + (set! addr (&-> (the-as (pointer uint64) data-2) 2)) + (set! qwc (the-as int (-> current-tag qwc))) + (if mode-2 + (disasm-vif-tag + (the-as (pointer vif-tag) (&-> (the-as (pointer uint64) data-2) 1)) + (the-as int (+ (* qwc 4) 2)) + stream-2 + (= mode-2 'details) + ) + ) + (set! data-2 (the-as dma-packet (-> current-tag addr))) + (set! call-depth (+ call-depth 1)) + (cond + ((zero? call-depth) + (set! ra-1 (&+ addr qwc)) + (the-as (pointer uint64) ra-1) + ) + (else + (set! ra-2 (&+ addr qwc)) + (the-as (pointer uint64) ra-2) + ) + ) + ) + ((= (-> current-tag id) (dma-tag-id ret)) + (set! addr (&-> (the-as (pointer uint64) data-2) 2)) + (set! qwc (the-as int (-> current-tag qwc))) + (if mode-2 + (disasm-vif-tag + (the-as (pointer vif-tag) (&-> (the-as (pointer uint64) data-2) 1)) + (the-as int (+ (* qwc 4) 2)) + stream-2 + (= mode-2 'details) + ) + ) + (let ((v1-123 call-depth)) + (cond + ((zero? v1-123) + (set! data-2 (the-as dma-packet ra-1)) + data-2 + ) + ((= v1-123 1) + (set! data-2 (the-as dma-packet ra-2)) + data-2 + ) + (else + (set! end-condition #t) + ) + ) + ) + (set! call-depth (+ call-depth -1)) + call-depth + ) + ((= (-> current-tag id) (dma-tag-id end)) + (set! addr (&-> (the-as (pointer uint64) data-2) 2)) + (set! qwc (the-as int (-> current-tag qwc))) + (set! end-condition #t) + (if mode-2 + (disasm-vif-tag + (the-as (pointer vif-tag) (&-> (the-as (pointer uint64) data-2) 1)) + (the-as int (+ (* qwc 4) 2)) + stream-2 + (= mode-2 'details) + ) + ) + ) + (else + (format stream-2 "ERROR: Unknown DMA TAG command.~%") + (set! end-condition 'error) ) ) (+! total-qwc qwc) diff --git a/test/decompiler/reference/engine/game/fact-h_REF.gc b/test/decompiler/reference/engine/game/fact-h_REF.gc index 60aedd49d0..ec7405940e 100644 --- a/test/decompiler/reference/engine/game/fact-h_REF.gc +++ b/test/decompiler/reference/engine/game/fact-h_REF.gc @@ -250,17 +250,15 @@ ) ) (let ((ent (-> proc entity))) - (if (zero? obj) - (begin - (let ((go-func (the-as (function string none) enter-state)) - (a0-1 "memory") - ) - (set! (-> pp next-state) process-drawable-art-error) - (go-func a0-1) - ) - (set! obj (the-as fact-info 0)) - (goto cfg-10) + (when (zero? obj) + (let ((go-func (the-as (function string none) enter-state)) + (a0-1 "memory") + ) + (set! (-> pp next-state) process-drawable-art-error) + (go-func a0-1) ) + (set! obj (the-as fact-info 0)) + (goto cfg-10) ) (set! (-> obj process) proc) (set! tag (new 'static 'res-tag)) diff --git a/test/decompiler/reference/engine/geometry/geometry_REF.gc b/test/decompiler/reference/engine/geometry/geometry_REF.gc index d75885a9ca..c7712f0bac 100644 --- a/test/decompiler/reference/engine/geometry/geometry_REF.gc +++ b/test/decompiler/reference/engine/geometry/geometry_REF.gc @@ -770,95 +770,85 @@ (nop!) (label cfg-3) (b! (nonzero? v1-4) cfg-6 :delay (set! v1-5 (the-as uint (+ v1-4 -1)))) - (begin - (vector-segment-distance-point! - arg1 - (the-as vector (-> arg2 vector)) - (-> arg2 vector 1) - arg0 - ) - (goto cfg-24) + (vector-segment-distance-point! + arg1 + (the-as vector (-> arg2 vector)) + (-> arg2 vector 1) + arg0 ) + (goto cfg-24) (label cfg-6) (b! (nonzero? v1-5) cfg-9 :delay (set! v1-6 (the-as uint (+ v1-5 -1)))) - (begin - (vector-segment-distance-point! - arg1 - (-> arg2 vector 1) - (-> arg2 vector 2) - arg0 - ) - (goto cfg-24) + (vector-segment-distance-point! + arg1 + (-> arg2 vector 1) + (-> arg2 vector 2) + arg0 ) + (goto cfg-24) (label cfg-9) (b! (nonzero? v1-6) cfg-14 :delay (set! v1-7 (the-as uint (+ v1-6 -1)))) - (begin - (let - ((f30-0 - (vector-segment-distance-point! - arg1 - (-> arg2 vector 1) - (the-as vector (-> arg2 vector)) - arg0 - ) + (let + ((f30-0 + (vector-segment-distance-point! + arg1 + (-> arg2 vector 1) + (the-as vector (-> arg2 vector)) + arg0 ) - (s3-0 (new 'stack-no-clear 'vector)) - ) - (if - (< - (vector-segment-distance-point! - arg1 - (-> arg2 vector 1) - (-> arg2 vector 2) - s3-0 - ) - f30-0 - ) - (set! (-> arg0 quad) (-> s3-0 quad)) ) + (s3-0 (new 'stack-no-clear 'vector)) + ) + (if + (< + (vector-segment-distance-point! + arg1 + (-> arg2 vector 1) + (-> arg2 vector 2) + s3-0 + ) + f30-0 + ) + (set! (-> arg0 quad) (-> s3-0 quad)) ) - (goto cfg-24) ) + (goto cfg-24) (label cfg-14) (b! (nonzero? v1-7) cfg-17 :delay (set! v1-10 (the-as uint (+ v1-7 -1)))) - (begin - (vector-segment-distance-point! - arg1 - (-> arg2 vector 2) - (the-as vector (-> arg2 vector)) - arg0 - ) - (goto cfg-24) + (vector-segment-distance-point! + arg1 + (-> arg2 vector 2) + (the-as vector (-> arg2 vector)) + arg0 ) + (goto cfg-24) (label cfg-17) (b! (nonzero? v1-10) cfg-22) - (begin - (let - ((f30-1 - (vector-segment-distance-point! - arg1 - (the-as vector (-> arg2 vector)) - (-> arg2 vector 1) - arg0 - ) + (let + ((f30-1 + (vector-segment-distance-point! + arg1 + (the-as vector (-> arg2 vector)) + (-> arg2 vector 1) + arg0 ) - (s3-1 (new 'stack-no-clear 'vector)) - ) - (if - (< - (vector-segment-distance-point! - arg1 - (the-as vector (-> arg2 vector)) - (-> arg2 vector 2) - s3-1 - ) - f30-1 - ) - (set! (-> arg0 quad) (-> s3-1 quad)) ) + (s3-1 (new 'stack-no-clear 'vector)) + ) + (if + (< + (vector-segment-distance-point! + arg1 + (the-as vector (-> arg2 vector)) + (-> arg2 vector 2) + s3-1 + ) + f30-1 + ) + (set! (-> arg0 quad) (-> s3-1 quad)) ) - (goto cfg-24) ) + (goto cfg-24) (label cfg-22) (let ((f30-2 @@ -971,32 +961,25 @@ ) ) ) - (else - (cond - ((and (< f1-7 f2-3) (< f3-1 f2-3)) - (set! (-> arg0 x) (+ 4096.0 (-> arg1 x))) - (set! (-> arg0 z) (+ 4096.0 (-> arg1 z))) - (set! - (-> arg0 y) - (/ - (- (- f0-3 (* (-> arg2 x) (-> arg0 x))) (* (-> arg2 z) (-> arg0 z))) - (-> arg2 y) - ) - ) + ((and (< f1-7 f2-3) (< f3-1 f2-3)) + (set! (-> arg0 x) (+ 4096.0 (-> arg1 x))) + (set! (-> arg0 z) (+ 4096.0 (-> arg1 z))) + (set! + (-> arg0 y) + (/ + (- (- f0-3 (* (-> arg2 x) (-> arg0 x))) (* (-> arg2 z) (-> arg0 z))) + (-> arg2 y) ) - (else - (set! (-> arg0 x) (+ 4096.0 (-> arg1 x))) - (set! (-> arg0 y) (+ 4096.0 (-> arg1 y))) - (set! - (-> arg0 z) - (/ - (+ - (- (- (* (-> arg2 x) (-> arg0 x))) (* (-> arg2 y) (-> arg0 y))) - f0-3 - ) - (-> arg2 z) - ) - ) + ) + ) + (else + (set! (-> arg0 x) (+ 4096.0 (-> arg1 x))) + (set! (-> arg0 y) (+ 4096.0 (-> arg1 y))) + (set! + (-> arg0 z) + (/ + (+ (- (- (* (-> arg2 x) (-> arg0 x))) (* (-> arg2 y) (-> arg0 y))) f0-3) + (-> arg2 z) ) ) ) diff --git a/test/decompiler/reference/engine/geometry/vol-h_REF.gc b/test/decompiler/reference/engine/geometry/vol-h_REF.gc index 7e8d4909d8..99b83cdc3b 100644 --- a/test/decompiler/reference/engine/geometry/vol-h_REF.gc +++ b/test/decompiler/reference/engine/geometry/vol-h_REF.gc @@ -87,17 +87,15 @@ ) ) ) - (if (zero? (the-as vol-control gp-0)) - (begin - (let ((t9-1 (the-as (function object object) enter-state)) - (a0-1 "memory") - ) - (set! (-> pp next-state) process-drawable-art-error) - (t9-1 a0-1) - ) - (set! gp-0 0) - (goto cfg-13) + (when (zero? (the-as vol-control gp-0)) + (let ((t9-1 (the-as (function object object) enter-state)) + (a0-1 "memory") + ) + (set! (-> pp next-state) process-drawable-art-error) + (t9-1 a0-1) ) + (set! gp-0 0) + (goto cfg-13) ) (set! (-> (the-as vol-control gp-0) process) arg0) (let* diff --git a/test/decompiler/reference/engine/gfx/hw/gs_REF.gc b/test/decompiler/reference/engine/gfx/hw/gs_REF.gc index bcd3da3df8..484fe36639 100644 --- a/test/decompiler/reference/engine/gfx/hw/gs_REF.gc +++ b/test/decompiler/reference/engine/gfx/hw/gs_REF.gc @@ -36,17 +36,16 @@ ((= arg0 (gs-psm mt4)) 32 ) - (else - (if - (or - (= arg0 (gs-psm ct16)) - (= arg0 (gs-psm ct16s)) - (= arg0 (gs-psm mz16)) - (= arg0 (gs-psm mz16s)) - ) - 128 - 256 + ((or + (= arg0 (gs-psm ct16)) + (= arg0 (gs-psm ct16s)) + (= arg0 (gs-psm mz16)) + (= arg0 (gs-psm mz16s)) ) + 128 + ) + (else + 256 ) ) ) @@ -60,17 +59,16 @@ ((= arg0 (gs-psm mt4)) 128 ) - (else - (if - (or - (= arg0 (gs-psm ct16)) - (= arg0 (gs-psm ct16s)) - (= arg0 (gs-psm mz16)) - (= arg0 (gs-psm mz16s)) - ) - 64 - 32 + ((or + (= arg0 (gs-psm ct16)) + (= arg0 (gs-psm ct16s)) + (= arg0 (gs-psm mz16)) + (= arg0 (gs-psm mz16s)) ) + 64 + ) + (else + 32 ) ) ) diff --git a/test/decompiler/reference/engine/gfx/texture_REF.gc b/test/decompiler/reference/engine/gfx/texture_REF.gc index c896bd8458..d452b79a17 100644 --- a/test/decompiler/reference/engine/gfx/texture_REF.gc +++ b/test/decompiler/reference/engine/gfx/texture_REF.gc @@ -51,26 +51,18 @@ ;; definition for function texture-bpp (defun texture-bpp ((arg0 gs-psm)) - (let ((v1-0 arg0)) - (cond - ((= v1-0 (gs-psm mt8)) + (case arg0 + (((gs-psm mt8)) 8 ) - ((= v1-0 (gs-psm mt4)) - 4 - ) - (else - (if - (or - (= v1-0 (gs-psm ct16)) - (= v1-0 (gs-psm ct16s)) - (= v1-0 (gs-psm mz16)) - (= v1-0 (gs-psm mz16s)) - ) - 16 - 32 - ) - ) + (((gs-psm mt4)) + 4 + ) + (((gs-psm ct16) (gs-psm ct16s) (gs-psm mz16) (gs-psm mz16s)) + 16 + ) + (else + 32 ) ) ) @@ -569,107 +561,73 @@ ;; definition for function gs-page-width (defun gs-page-width ((arg0 gs-psm)) - (let ((v1-0 arg0)) - (cond - ((or - (= v1-0 (gs-psm ct32)) - (= v1-0 (gs-psm ct24)) - (= v1-0 (gs-psm ct16)) - (= v1-0 (gs-psm ct16s)) - ) + (case arg0 + (((gs-psm ct32) (gs-psm ct24) (gs-psm ct16) (gs-psm ct16s)) 64 ) - (else - (cond - ((or (= v1-0 (gs-psm mt8)) (= v1-0 (gs-psm mt4))) - 128 - ) - (else - (format #t "Warning: Unknown block width for psm ~D~%" arg0) - 1 - ) - ) - ) + (((gs-psm mt8) (gs-psm mt4)) + 128 + ) + (else + (format #t "Warning: Unknown block width for psm ~D~%" arg0) + 1 ) ) ) ;; definition for function gs-page-height (defun gs-page-height ((arg0 gs-psm)) - (let ((v1-0 arg0)) - (cond - ((or (= v1-0 (gs-psm ct32)) (= v1-0 (gs-psm ct24))) + (case arg0 + (((gs-psm ct32) (gs-psm ct24)) 32 ) - (else - (cond - ((or (= v1-0 (gs-psm ct16)) (= v1-0 (gs-psm ct16s))) - 64 - ) - ((= v1-0 (gs-psm mt8)) - 64 - ) - ((= v1-0 (gs-psm mt4)) - 128 - ) - (else - (format #t "Warning: Unknown block width for psm ~D~%" arg0) - 1 - ) - ) - ) + (((gs-psm ct16) (gs-psm ct16s)) + 64 + ) + (((gs-psm mt8)) + 64 + ) + (((gs-psm mt4)) + 128 + ) + (else + (format #t "Warning: Unknown block width for psm ~D~%" arg0) + 1 ) ) ) ;; definition for function gs-block-width (defun gs-block-width ((arg0 gs-psm)) - (let ((v1-0 arg0)) - (cond - ((or (= v1-0 (gs-psm ct32)) (= v1-0 (gs-psm ct24))) + (case arg0 + (((gs-psm ct32) (gs-psm ct24)) 8 ) - (else - (cond - ((or (= v1-0 (gs-psm ct16)) (= v1-0 (gs-psm ct16s)) (= v1-0 (gs-psm mt8))) - 16 - ) - ((= v1-0 (gs-psm mt4)) - 32 - ) - (else - (format #t "Warning: Unknown block width for psm ~D~%" arg0) - 1 - ) - ) - ) + (((gs-psm ct16) (gs-psm ct16s) (gs-psm mt8)) + 16 + ) + (((gs-psm mt4)) + 32 + ) + (else + (format #t "Warning: Unknown block width for psm ~D~%" arg0) + 1 ) ) ) ;; definition for function gs-block-height (defun gs-block-height ((arg0 gs-psm)) - (let ((v1-0 arg0)) - (cond - ((or - (= v1-0 (gs-psm ct32)) - (= v1-0 (gs-psm ct24)) - (= v1-0 (gs-psm ct16)) - (= v1-0 (gs-psm ct16s)) - ) + (case arg0 + (((gs-psm ct32) (gs-psm ct24) (gs-psm ct16) (gs-psm ct16s)) 8 ) - (else - (cond - ((or (= v1-0 (gs-psm mt8)) (= v1-0 (gs-psm mt4))) - 16 - ) - (else - (format #t "Warning: Unknown block width for psm ~D~%" arg0) - 1 - ) - ) - ) + (((gs-psm mt8) (gs-psm mt4)) + 16 + ) + (else + (format #t "Warning: Unknown block width for psm ~D~%" arg0) + 1 ) ) ) @@ -742,75 +700,69 @@ ;; definition for method 22 of type texture-pool (defmethod lookup-boot-common-id texture-pool ((obj texture-pool) (tpage-id int)) - (let ((v1-0 tpage-id)) - (cond - ((= v1-0 1032) + (case tpage-id + ((1032) 0 ) - ((= v1-0 1119) - 1 - ) - ((= v1-0 1478) - 2 - ) - ((= v1-0 1485) - 3 - ) - ((= v1-0 1486) - 4 - ) - ((= v1-0 1487) - 5 - ) - (else - (cond - ((or (= v1-0 635) (= v1-0 1609)) - 6 - ) - ((= v1-0 636) - 7 - ) - ((= v1-0 637) - 8 - ) - ((= v1-0 752) - 9 - ) - ((= v1-0 1598) - 10 - ) - ((= v1-0 1599) - 11 - ) - ((= v1-0 1600) - 12 - ) - ((= v1-0 1601) - 13 - ) - ((= v1-0 1602) - 14 - ) - ((= v1-0 1603) - 15 - ) - ((= v1-0 1604) - 16 - ) - ((= v1-0 1605) - 17 - ) - ((= v1-0 1606) - 18 - ) - ((= v1-0 1607) - 19 - ) - (else - -1 - ) - ) - ) + ((1119) + 1 + ) + ((1478) + 2 + ) + ((1485) + 3 + ) + ((1486) + 4 + ) + ((1487) + 5 + ) + ((635 1609) + 6 + ) + ((636) + 7 + ) + ((637) + 8 + ) + ((752) + 9 + ) + ((1598) + 10 + ) + ((1599) + 11 + ) + ((1600) + 12 + ) + ((1601) + 13 + ) + ((1602) + 14 + ) + ((1603) + 15 + ) + ((1604) + 16 + ) + ((1605) + 17 + ) + ((1606) + 18 + ) + ((1607) + 19 + ) + (else + -1 ) ) ) @@ -1069,30 +1021,23 @@ (set! chunks-to-upload-count (+ chunks-to-upload-count 1)) ) ) - (else - (cond - ((= (-> pool ids current-dest-chunk) tex-id) - (upload-vram-data - dma-buf - (the-as - int - (* - (+ tex-dest-base-chunk (the-as uint first-chunk-idx-to-upload)) - 64 - ) - ) - (&+ tex-data (shl first-chunk-idx-to-upload 14)) - (* chunks-to-upload-count 32) - ) - (+! total-upload-size chunks-to-upload-count) - (set! chunks-to-upload-count 0) - 0 - ) - (else - (set! (-> pool ids current-dest-chunk) tex-id) - (set! chunks-to-upload-count (+ chunks-to-upload-count 1)) + ((= (-> pool ids current-dest-chunk) tex-id) + (upload-vram-data + dma-buf + (the-as + int + (* (+ tex-dest-base-chunk (the-as uint first-chunk-idx-to-upload)) 64) ) + (&+ tex-data (shl first-chunk-idx-to-upload 14)) + (* chunks-to-upload-count 32) ) + (+! total-upload-size chunks-to-upload-count) + (set! chunks-to-upload-count 0) + 0 + ) + (else + (set! (-> pool ids current-dest-chunk) tex-id) + (set! chunks-to-upload-count (+ chunks-to-upload-count 1)) ) ) ) @@ -1223,16 +1168,12 @@ (+! modified-chunk-count 1) ) ) + ((= (-> pool ids vram-chunk) page-id) + (set! modified-chunk-count 0) + ) (else - (cond - ((= (-> pool ids vram-chunk) page-id) - (set! modified-chunk-count 0) - ) - (else - (set! (-> pool ids vram-chunk) page-id) - (+! modified-chunk-count 1) - ) - ) + (set! (-> pool ids vram-chunk) page-id) + (+! modified-chunk-count 1) ) ) ) @@ -1297,30 +1238,23 @@ (set! chunks-to-upload-count (+ chunks-to-upload-count 1)) ) ) - (else - (cond - ((or (= (-> pool ids current-dest-chunk) page-id) (not allow-cached)) - (upload-vram-data - dma-buf - (the-as - int - (* - (+ tex-dest-base-chunk (the-as uint first-chunk-idx-to-upload)) - 64 - ) - ) - (&+ tex-data (shl first-chunk-idx-to-upload 14)) - (* chunks-to-upload-count 32) - ) - (+! total-upload-size chunks-to-upload-count) - (set! chunks-to-upload-count 0) - 0 - ) - (else - (set! (-> pool ids current-dest-chunk) page-id) - (set! chunks-to-upload-count (+ chunks-to-upload-count 1)) + ((or (= (-> pool ids current-dest-chunk) page-id) (not allow-cached)) + (upload-vram-data + dma-buf + (the-as + int + (* (+ tex-dest-base-chunk (the-as uint first-chunk-idx-to-upload)) 64) ) + (&+ tex-data (shl first-chunk-idx-to-upload 14)) + (* chunks-to-upload-count 32) ) + (+! total-upload-size chunks-to-upload-count) + (set! chunks-to-upload-count 0) + 0 + ) + (else + (set! (-> pool ids current-dest-chunk) page-id) + (set! chunks-to-upload-count (+ chunks-to-upload-count 1)) ) ) ) @@ -3103,11 +3037,9 @@ (local-vars (a0-2 int)) (let ((v1-0 *texture-page-dir*)) (dotimes (a0-1 (-> v1-0 length)) - (if (= arg0 (-> v1-0 entries a0-1 page)) - (begin - (set! a0-2 a0-1) - (goto cfg-7) - ) + (when (= arg0 (-> v1-0 entries a0-1 page)) + (set! a0-2 a0-1) + (goto cfg-7) ) ) (set! a0-2 -1) diff --git a/test/decompiler/reference/engine/math/trigonometry_REF.gc b/test/decompiler/reference/engine/math/trigonometry_REF.gc index 0467eb7cbe..42e3ba6637 100644 --- a/test/decompiler/reference/engine/math/trigonometry_REF.gc +++ b/test/decompiler/reference/engine/math/trigonometry_REF.gc @@ -540,32 +540,28 @@ ((= arg1 0.0) (* 1.5707963 (sign arg0)) ) + ((and (< arg0 0.0) (< arg1 0.0)) + (let ((f30-1 MINUS_PI) + (f0-6 (/ arg0 arg1)) + ) + (+ f30-1 (atan-series-rad (/ (+ -1.0 f0-6) (+ 1.0 f0-6)))) + ) + ) + ((< arg0 0.0) + (let ((f0-14 (- (/ arg0 arg1)))) + (- (atan-series-rad (/ (+ -1.0 f0-14) (+ 1.0 f0-14)))) + ) + ) + ((< arg1 0.0) + (let ((f30-2 PI) + (f0-22 (- (/ arg0 arg1))) + ) + (- f30-2 (atan-series-rad (/ (+ -1.0 f0-22) (+ 1.0 f0-22)))) + ) + ) (else - (cond - ((and (< arg0 0.0) (< arg1 0.0)) - (let ((f30-1 MINUS_PI) - (f0-6 (/ arg0 arg1)) - ) - (+ f30-1 (atan-series-rad (/ (+ -1.0 f0-6) (+ 1.0 f0-6)))) - ) - ) - ((< arg0 0.0) - (let ((f0-14 (- (/ arg0 arg1)))) - (- (atan-series-rad (/ (+ -1.0 f0-14) (+ 1.0 f0-14)))) - ) - ) - ((< arg1 0.0) - (let ((f30-2 PI) - (f0-22 (- (/ arg0 arg1))) - ) - (- f30-2 (atan-series-rad (/ (+ -1.0 f0-22) (+ 1.0 f0-22)))) - ) - ) - (else - (let ((f0-28 (/ arg0 arg1))) - (atan-series-rad (/ (+ -1.0 f0-28) (+ 1.0 f0-28))) - ) - ) + (let ((f0-28 (/ arg0 arg1))) + (atan-series-rad (/ (+ -1.0 f0-28) (+ 1.0 f0-28))) ) ) ) @@ -666,21 +662,17 @@ ((and (= arg1 0.0) (= arg0 0.0)) 0.0 ) + ((and (< arg1 0.0) (< arg0 0.0)) + (+ -32768.0 (atan0 (- arg0) (- arg1))) + ) + ((< arg0 0.0) + (- (atan0 (- arg0) arg1)) + ) + ((< arg1 0.0) + (- 32768.0 (atan0 arg0 (- arg1))) + ) (else - (cond - ((and (< arg1 0.0) (< arg0 0.0)) - (+ -32768.0 (atan0 (- arg0) (- arg1))) - ) - ((< arg0 0.0) - (- (atan0 (- arg0) arg1)) - ) - ((< arg1 0.0) - (- 32768.0 (atan0 arg0 (- arg1))) - ) - (else - (atan0 arg0 arg1) - ) - ) + (atan0 arg0 arg1) ) ) ) diff --git a/test/decompiler/reference/engine/nav/navigate-h_REF.gc b/test/decompiler/reference/engine/nav/navigate-h_REF.gc index 6a2109816f..5f7eea4ada 100644 --- a/test/decompiler/reference/engine/nav/navigate-h_REF.gc +++ b/test/decompiler/reference/engine/nav/navigate-h_REF.gc @@ -558,17 +558,15 @@ ) ) ) - (if (zero? obj) - (begin - (let ((t9-1 (the-as function enter-state)) - (a0-1 "memory") - ) - (set! (-> pp next-state) process-drawable-art-error) - ((the-as (function string none) t9-1) a0-1) - ) - (set! obj (the-as nav-control 0)) - (goto cfg-4) + (when (zero? obj) + (let ((t9-1 (the-as function enter-state)) + (a0-1 "memory") + ) + (set! (-> pp next-state) process-drawable-art-error) + ((the-as (function string none) t9-1) a0-1) ) + (set! obj (the-as nav-control 0)) + (goto cfg-4) ) (set! (-> obj max-spheres) sphere-count) (set! (-> obj flags) (nav-control-flags bit8 bit13)) diff --git a/test/decompiler/reference/engine/nav/path-h_REF.gc b/test/decompiler/reference/engine/nav/path-h_REF.gc index 65b2e517f5..5210d2736b 100644 --- a/test/decompiler/reference/engine/nav/path-h_REF.gc +++ b/test/decompiler/reference/engine/nav/path-h_REF.gc @@ -84,17 +84,15 @@ (object-new allocation type-to-make (the-as int (-> type-to-make size))) ) ) - (if (zero? obj) - (begin - (let ((t9-1 (the-as function enter-state)) - (a0-1 "memory") - ) - (set! (-> pp next-state) process-drawable-art-error) - ((the-as (function string none) t9-1) a0-1) - ) - (set! obj (the-as path-control 0)) - (goto cfg-9) + (when (zero? obj) + (let ((t9-1 (the-as function enter-state)) + (a0-1 "memory") + ) + (set! (-> pp next-state) process-drawable-art-error) + ((the-as (function string none) t9-1) a0-1) ) + (set! obj (the-as path-control 0)) + (goto cfg-9) ) (set! (-> obj process) (the-as process-drawable proc)) (set! (-> obj name) name) diff --git a/test/decompiler/reference/engine/nav/path_REF.gc b/test/decompiler/reference/engine/nav/path_REF.gc index 24b5c00320..d92cee38b1 100644 --- a/test/decompiler/reference/engine/nav/path_REF.gc +++ b/test/decompiler/reference/engine/nav/path_REF.gc @@ -126,15 +126,15 @@ ((>= f0-3 (the float (+ a1-1 -1))) (set! (-> arg0 quad) (-> obj cverts (+ a1-1 -1) quad)) ) + ((or (= arg2 'exact) (= f0-3 arg1)) + (set! (-> arg0 quad) (-> obj cverts (the int f0-3) quad)) + ) (else - (if (or (= arg2 'exact) (= f0-3 arg1)) - (set! (-> arg0 quad) (-> obj cverts (the int f0-3) quad)) - (vector-lerp! - arg0 - (-> obj cverts (the int f0-3)) - (-> obj cverts (the int (+ 1.0 f0-3))) - (- arg1 f0-3) - ) + (vector-lerp! + arg0 + (-> obj cverts (the int f0-3)) + (-> obj cverts (the int (+ 1.0 f0-3))) + (- arg1 f0-3) ) ) ) @@ -457,7 +457,3 @@ 0 (none) ) - - - - diff --git a/test/decompiler/reference/engine/target/surface-h_REF.gc b/test/decompiler/reference/engine/target/surface-h_REF.gc index 6b60a59225..353425a313 100644 --- a/test/decompiler/reference/engine/target/surface-h_REF.gc +++ b/test/decompiler/reference/engine/target/surface-h_REF.gc @@ -138,15 +138,14 @@ ) (-> src1 hook v1-3) ) - (else - (if - (and - (nonzero? (-> src0 hook v1-3)) - (!= (-> src0 hook v1-3) nothing) - ) - (-> src0 hook v1-3) - nothing + ((and + (nonzero? (-> src0 hook v1-3)) + (!= (-> src0 hook v1-3) nothing) ) + (-> src0 hook v1-3) + ) + (else + nothing ) ) ) @@ -170,15 +169,14 @@ ) (-> src1 hook v1-3) ) - (else - (if - (and - (nonzero? (-> src0 hook v1-3)) - (!= (-> src0 hook v1-3) nothing) - ) - (-> src0 hook v1-3) - nothing + ((and + (nonzero? (-> src0 hook v1-3)) + (!= (-> src0 hook v1-3) nothing) ) + (-> src0 hook v1-3) + ) + (else + nothing ) ) ) diff --git a/test/decompiler/reference/kernel/gcommon_REF.gc b/test/decompiler/reference/kernel/gcommon_REF.gc index db39a64e7a..0738b17965 100644 --- a/test/decompiler/reference/kernel/gcommon_REF.gc +++ b/test/decompiler/reference/kernel/gcommon_REF.gc @@ -562,9 +562,8 @@ (format #t "#(") (cond ((type-type? (-> obj content-type) integer) - (let ((content-type-sym (-> obj content-type symbol))) - (cond - ((= content-type-sym 'int32) + (case (-> obj content-type symbol) + (('int32) (dotimes (s5-0 (-> obj length)) (format #t (if (zero? s5-0) "~D" @@ -574,120 +573,111 @@ ) ) ) - ((= content-type-sym 'uint32) - (dotimes (s5-1 (-> obj length)) - (format #t (if (zero? s5-1) - "~D" - " ~D" - ) - (-> (the-as (array uint32) obj) s5-1) - ) + (('uint32) + (dotimes (s5-1 (-> obj length)) + (format #t (if (zero? s5-1) + "~D" + " ~D" + ) + (-> (the-as (array uint32) obj) s5-1) ) ) - ((= content-type-sym 'int64) - (dotimes (s5-2 (-> obj length)) - (format #t (if (zero? s5-2) - "~D" - " ~D" - ) - (-> (the-as (array int64) obj) s5-2) - ) + ) + (('int64) + (dotimes (s5-2 (-> obj length)) + (format #t (if (zero? s5-2) + "~D" + " ~D" + ) + (-> (the-as (array int64) obj) s5-2) ) ) - ((= content-type-sym 'uint64) - (dotimes (s5-3 (-> obj length)) - (format #t (if (zero? s5-3) - "#x~X" - " #x~X" - ) - (-> (the-as (array uint64) obj) s5-3) - ) + ) + (('uint64) + (dotimes (s5-3 (-> obj length)) + (format #t (if (zero? s5-3) + "#x~X" + " #x~X" + ) + (-> (the-as (array uint64) obj) s5-3) ) ) - ((= content-type-sym 'int8) - (dotimes (s5-4 (-> obj length)) - (format #t (if (zero? s5-4) - "~D" - " ~D" - ) - (-> (the-as (array int8) obj) s5-4) - ) + ) + (('int8) + (dotimes (s5-4 (-> obj length)) + (format #t (if (zero? s5-4) + "~D" + " ~D" + ) + (-> (the-as (array int8) obj) s5-4) ) ) - ((= content-type-sym 'uint8) - (dotimes (s5-5 (-> obj length)) - (format #t (if (zero? s5-5) - "~D" - " ~D" - ) - (-> (the-as (array uint8) obj) s5-5) - ) + ) + (('uint8) + (dotimes (s5-5 (-> obj length)) + (format #t (if (zero? s5-5) + "~D" + " ~D" + ) + (-> (the-as (array uint8) obj) s5-5) ) ) - ((= content-type-sym 'int16) - (dotimes (s5-6 (-> obj length)) - (format #t (if (zero? s5-6) - "~D" - " ~D" - ) - (-> (the-as (array int16) obj) s5-6) - ) + ) + (('int16) + (dotimes (s5-6 (-> obj length)) + (format #t (if (zero? s5-6) + "~D" + " ~D" + ) + (-> (the-as (array int16) obj) s5-6) ) ) - ((= content-type-sym 'uint16) - (dotimes (s5-7 (-> obj length)) - (format #t (if (zero? s5-7) - "~D" - " ~D" - ) - (-> (the-as (array uint16) obj) s5-7) - ) + ) + (('uint16) + (dotimes (s5-7 (-> obj length)) + (format #t (if (zero? s5-7) + "~D" + " ~D" + ) + (-> (the-as (array uint16) obj) s5-7) ) ) - (else - (cond - ((or (= content-type-sym 'uint128) (= content-type-sym 'int128)) - (dotimes (s5-8 (-> obj length)) - (format #t (if (zero? s5-8) - "#x~X" - " #x~X" - ) - (-> (the-as (array uint128) obj) s5-8) - ) - ) - ) - (else - (dotimes (s5-9 (-> obj length)) - (format #t (if (zero? s5-9) - "~D" - " ~D" - ) - (-> (the-as (array int32) obj) s5-9) - ) - ) - ) + ) + (('uint128 'int128) + (dotimes (s5-8 (-> obj length)) + (format #t (if (zero? s5-8) + "#x~X" + " #x~X" + ) + (-> (the-as (array uint128) obj) s5-8) + ) + ) + ) + (else + (dotimes (s5-9 (-> obj length)) + (format #t (if (zero? s5-9) + "~D" + " ~D" + ) + (-> (the-as (array int32) obj) s5-9) ) ) ) ) ) - (else - (cond - ((= (-> obj content-type) float) - (dotimes (s5-10 (-> obj length)) - (if (zero? s5-10) - (format #t "~f" (-> (the-as (array float) obj) s5-10)) - (format #t " ~f" (-> (the-as (array float) obj) s5-10)) - ) - ) + ((= (-> obj content-type) float) + (dotimes (s5-10 (-> obj length)) + (if (zero? s5-10) + (format #t "~f" (-> (the-as (array float) obj) s5-10)) + (format #t " ~f" (-> (the-as (array float) obj) s5-10)) ) - (else - (dotimes (s5-11 (-> obj length)) - (if (zero? s5-11) - (format #t "~A" (-> (the-as (array basic) obj) s5-11)) - (format #t " ~A" (-> (the-as (array basic) obj) s5-11)) - ) - ) + ) + ) + (else + (dotimes (s5-11 (-> obj length)) + (if (zero? s5-11) + (format #t "~A" (-> (the-as (array basic) obj) s5-11)) + (format #t " ~A" (-> (the-as (array basic) obj) s5-11)) ) ) ) @@ -706,82 +696,67 @@ (format #t "~Tdata[~D]: @ #x~X~%" (-> obj allocated-length) (-> obj data)) (cond ((type-type? (-> obj content-type) integer) - (let ((content-type-sym (-> obj content-type symbol))) - (cond - ((= content-type-sym 'int32) + (case (-> obj content-type symbol) + (('int32) (dotimes (s5-0 (-> obj length)) (format #t "~T [~D] ~D~%" s5-0 (-> (the-as (array int32) obj) s5-0)) ) ) - ((= content-type-sym 'uint32) - (dotimes (s5-1 (-> obj length)) - (format #t "~T [~D] ~D~%" s5-1 (-> (the-as (array uint32) obj) s5-1)) - ) + (('uint32) + (dotimes (s5-1 (-> obj length)) + (format #t "~T [~D] ~D~%" s5-1 (-> (the-as (array uint32) obj) s5-1)) ) - ((= content-type-sym 'int64) - (dotimes (s5-2 (-> obj length)) - (format #t "~T [~D] ~D~%" s5-2 (-> (the-as (array int64) obj) s5-2)) - ) + ) + (('int64) + (dotimes (s5-2 (-> obj length)) + (format #t "~T [~D] ~D~%" s5-2 (-> (the-as (array int64) obj) s5-2)) ) - ((= content-type-sym 'uint64) - (dotimes (s5-3 (-> obj length)) - (format #t "~T [~D] #x~X~%" s5-3 (-> (the-as (array uint64) obj) s5-3)) - ) + ) + (('uint64) + (dotimes (s5-3 (-> obj length)) + (format #t "~T [~D] #x~X~%" s5-3 (-> (the-as (array uint64) obj) s5-3)) ) - ((= content-type-sym 'int8) - (dotimes (s5-4 (-> obj length)) - (format #t "~T [~D] ~D~%" s5-4 (-> (the-as (array int8) obj) s5-4)) - ) + ) + (('int8) + (dotimes (s5-4 (-> obj length)) + (format #t "~T [~D] ~D~%" s5-4 (-> (the-as (array int8) obj) s5-4)) ) - ((= content-type-sym 'uint8) - (dotimes (s5-5 (-> obj length)) - (format #t "~T [~D] ~D~%" s5-5 (-> (the-as (array int8) obj) s5-5)) - ) + ) + (('uint8) + (dotimes (s5-5 (-> obj length)) + (format #t "~T [~D] ~D~%" s5-5 (-> (the-as (array int8) obj) s5-5)) ) - ((= content-type-sym 'int16) - (dotimes (s5-6 (-> obj length)) - (format #t "~T [~D] ~D~%" s5-6 (-> (the-as (array int16) obj) s5-6)) - ) + ) + (('int16) + (dotimes (s5-6 (-> obj length)) + (format #t "~T [~D] ~D~%" s5-6 (-> (the-as (array int16) obj) s5-6)) ) - ((= content-type-sym 'uint16) - (dotimes (s5-7 (-> obj length)) - (format #t "~T [~D] ~D~%" s5-7 (-> (the-as (array uint16) obj) s5-7)) - ) + ) + (('uint16) + (dotimes (s5-7 (-> obj length)) + (format #t "~T [~D] ~D~%" s5-7 (-> (the-as (array uint16) obj) s5-7)) ) - (else - (cond - ((or (= content-type-sym 'int128) (= content-type-sym 'uint128)) - (dotimes (s5-8 (-> obj length)) - (format - #t - "~T [~D] #x~X~%" - s5-8 - (-> (the-as (array uint128) obj) s5-8) - ) - ) - ) - (else - (dotimes (s5-9 (-> obj length)) - (format #t "~T [~D] ~D~%" s5-9 (-> (the-as (array int32) obj) s5-9)) - ) - ) - ) + ) + (('int128 'uint128) + (dotimes (s5-8 (-> obj length)) + (format #t "~T [~D] #x~X~%" s5-8 (-> (the-as (array uint128) obj) s5-8)) + ) + ) + (else + (dotimes (s5-9 (-> obj length)) + (format #t "~T [~D] ~D~%" s5-9 (-> (the-as (array int32) obj) s5-9)) ) ) ) ) + ((= (-> obj content-type) float) + (dotimes (s5-10 (-> obj length)) + (format #t "~T [~D] ~f~%" s5-10 (-> (the-as (array float) obj) s5-10)) + ) + ) (else - (cond - ((= (-> obj content-type) float) - (dotimes (s5-10 (-> obj length)) - (format #t "~T [~D] ~f~%" s5-10 (-> (the-as (array float) obj) s5-10)) - ) - ) - (else - (dotimes (s5-11 (-> obj length)) - (format #t "~T [~D] ~A~%" s5-11 (-> (the-as (array basic) obj) s5-11)) - ) - ) + (dotimes (s5-11 (-> obj length)) + (format #t "~T [~D] ~A~%" s5-11 (-> (the-as (array basic) obj) s5-11)) ) ) ) @@ -1021,96 +996,46 @@ ((and allow-false (not obj)) #t ) - (else + ((= expected-type structure) (cond - ((= expected-type structure) - (cond - ((nonzero? (logand (the-as int obj) 15)) - (if name - (format - print-dest - "ERROR: object #x~X ~S is not a valid object of type '~A' (misaligned)~%" - obj - name - expected-type - ) - ) - #f - ) - ((or (not in-goal-mem) (begin - (let ((v1-10 #x8000)) - (.daddu v1-11 v1-10 s7-0) - ) - (< (the-as uint obj) (the-as uint v1-11)) - ) - ) - (if name - (format - print-dest - "ERROR: object #x~X ~S is not a valid object of type '~A' (bad address)~%" - obj - name - expected-type - ) - ) - #f - ) - (else - #t + ((nonzero? (logand (the-as int obj) 15)) + (if name + (format + print-dest + "ERROR: object #x~X ~S is not a valid object of type '~A' (misaligned)~%" + obj + name + expected-type ) ) + #f ) - ((= expected-type pair) - (cond - ((!= (logand (the-as int obj) 7) 2) - (if name - (format - print-dest - "ERROR: object #x~X ~S is not a valid object of type '~A' (misaligned)~%" - obj - name - expected-type - ) - ) - #f - ) - ((not in-goal-mem) - (if name - (format - print-dest - "ERROR: object #x~X ~S is not a valid object of type '~A' (bad address)~%" - obj - name - expected-type - ) - ) - #f - ) - (else - #t + ((or (not in-goal-mem) (begin + (let ((v1-10 #x8000)) + (.daddu v1-11 v1-10 s7-0) + ) + (< (the-as uint obj) (the-as uint v1-11)) + ) + ) + (if name + (format + print-dest + "ERROR: object #x~X ~S is not a valid object of type '~A' (bad address)~%" + obj + name + expected-type ) ) + #f ) - ((= expected-type binteger) - (cond - ((zero? (logand (the-as int obj) 7)) - #t - ) - (else - (if name - (format - print-dest - "ERROR: object #x~X ~S is not a valid object of type '~A' (misaligned)~%" - obj - name - expected-type - ) - ) - #f - ) - ) + (else + #t ) - ((!= (logand (the-as int obj) 7) 4) + ) + ) + ((= expected-type pair) + (cond + ((!= (logand (the-as int obj) 7) 2) (if name (format print-dest @@ -1134,96 +1059,135 @@ ) #f ) - ((and (= expected-type type) (!= (rtype-of obj) type)) + (else + #t + ) + ) + ) + ((= expected-type binteger) + (cond + ((zero? (logand (the-as int obj) 7)) + #t + ) + (else (if name (format print-dest - "ERROR: object #x~X ~S is not a valid object of type '~A' (invalid type #x~X)~%" + "ERROR: object #x~X ~S is not a valid object of type '~A' (misaligned)~%" + obj + name + expected-type + ) + ) + #f + ) + ) + ) + ((!= (logand (the-as int obj) 7) 4) + (if name + (format + print-dest + "ERROR: object #x~X ~S is not a valid object of type '~A' (misaligned)~%" + obj + name + expected-type + ) + ) + #f + ) + ((not in-goal-mem) + (if name + (format + print-dest + "ERROR: object #x~X ~S is not a valid object of type '~A' (bad address)~%" + obj + name + expected-type + ) + ) + #f + ) + ((and (= expected-type type) (!= (rtype-of obj) type)) + (if name + (format + print-dest + "ERROR: object #x~X ~S is not a valid object of type '~A' (invalid type #x~X)~%" + obj + name + expected-type + (rtype-of obj) + ) + ) + #f + ) + ((and (!= expected-type type) (not (valid? (rtype-of obj) type #f #t 0))) + (if name + (format + print-dest + "ERROR: object #x~X ~S is not a valid object of type '~A' (invalid type #x~X)~%" + obj + name + expected-type + (rtype-of obj) + ) + ) + #f + ) + ((not (type-type? (rtype-of obj) expected-type)) + (if name + (format + print-dest + "ERROR: object #x~X ~S is not a valid object of type '~A' (is type '~A' instead)~%" + obj + name + expected-type + (rtype-of obj) + ) + ) + #f + ) + ((= expected-type symbol) + (let ((v1-43 #x8000)) + (.daddu v1-44 v1-43 s7-0) + ) + (cond + ((>= (the-as uint obj) (the-as uint v1-44)) + (if name + (format + print-dest + "ERROR: object #x~X ~S is not a valid object of type '~A' (not in symbol table)~%" obj name expected-type - (rtype-of obj) ) ) #f ) (else - (cond - ((and - (!= expected-type type) - (not (valid? (rtype-of obj) type #f #t 0)) - ) - (if name - (format - print-dest - "ERROR: object #x~X ~S is not a valid object of type '~A' (invalid type #x~X)~%" - obj - name - expected-type - (rtype-of obj) - ) - ) - #f - ) - ((not (type-type? (rtype-of obj) expected-type)) - (if name - (format - print-dest - "ERROR: object #x~X ~S is not a valid object of type '~A' (is type '~A' instead)~%" - obj - name - expected-type - (rtype-of obj) - ) - ) - #f - ) - ((= expected-type symbol) - (let ((v1-43 #x8000)) - (.daddu v1-44 v1-43 s7-0) - ) - (cond - ((>= (the-as uint obj) (the-as uint v1-44)) - (if name - (format - print-dest - "ERROR: object #x~X ~S is not a valid object of type '~A' (not in symbol table)~%" - obj - name - expected-type - ) - ) - #f - ) - (else - #t - ) - ) - ) - ((begin - (let ((v1-47 #x8000)) - (.daddu v1-48 v1-47 s7-0) - ) - (< (the-as uint obj) (the-as uint v1-48)) - ) - (if name - (format - print-dest - "ERROR: object #x~X ~S is not a valid object of type '~A' (inside symbol table)~%" - obj - name - expected-type - ) - ) - #f - ) - (else - #t - ) - ) + #t ) ) ) + ((begin + (let ((v1-47 #x8000)) + (.daddu v1-48 v1-47 s7-0) + ) + (< (the-as uint obj) (the-as uint v1-48)) + ) + (if name + (format + print-dest + "ERROR: object #x~X ~S is not a valid object of type '~A' (inside symbol table)~%" + obj + name + expected-type + ) + ) + #f + ) + (else + #t + ) ) ) ) diff --git a/test/decompiler/reference/kernel/gkernel_REF.gc b/test/decompiler/reference/kernel/gkernel_REF.gc index cdb2dc810e..5c97fd1cb3 100644 --- a/test/decompiler/reference/kernel/gkernel_REF.gc +++ b/test/decompiler/reference/kernel/gkernel_REF.gc @@ -722,15 +722,15 @@ ) ) ) - (else - (if (-> arg0 next) - (&- - (the-as pointer (-> arg0 next process)) - (the-as uint (&+ (-> obj heap base) 4)) - ) - (&- (-> obj heap top) (the-as uint (-> obj heap base))) + ((-> arg0 next) + (&- + (the-as pointer (-> arg0 next process)) + (the-as uint (&+ (-> obj heap base) 4)) ) ) + (else + (&- (-> obj heap top) (the-as uint (-> obj heap base))) + ) ) ) @@ -1641,11 +1641,11 @@ ((or (not a3-1) (not v1-4)) (return 0) ) + ((= a3-1 a2-1) + (set! (-> a3-1 4) (the-as process-tree (-> arg0 brother))) + ) (else - (if (= a3-1 a2-1) - (set! (-> a3-1 4) (the-as process-tree (-> arg0 brother))) - (set! (-> a3-1 3) (the-as process-tree (-> arg0 brother))) - ) + (set! (-> a3-1 3) (the-as process-tree (-> arg0 brother))) ) ) (cond diff --git a/test/decompiler/reference/kernel/gstring_REF.gc b/test/decompiler/reference/kernel/gstring_REF.gc index 4b7e5a9891..166efc62e0 100644 --- a/test/decompiler/reference/kernel/gstring_REF.gc +++ b/test/decompiler/reference/kernel/gstring_REF.gc @@ -540,25 +540,24 @@ ) ) ) + ((and + (>= (-> next-char-2 0) (the-as uint 97)) + (>= (the-as uint 102) (-> next-char-2 0)) + ) + (set! + result + (the-as + int + (+ (+ (-> next-char-2 0) -87) (the-as uint (* result 16))) + ) + ) + ) (else - (if - (and - (>= (-> next-char-2 0) (the-as uint 97)) - (>= (the-as uint 102) (-> next-char-2 0)) - ) - (set! - result - (the-as - int - (+ (+ (-> next-char-2 0) -87) (the-as uint (* result 16))) - ) - ) - (set! - result - (the-as - int - (+ (+ (-> next-char-2 0) -48) (the-as uint (* result 16))) - ) + (set! + result + (the-as + int + (+ (+ (-> next-char-2 0) -48) (the-as uint (* result 16))) ) ) ) diff --git a/test/decompiler/test_FormExpressionBuildLong.cpp b/test/decompiler/test_FormExpressionBuildLong.cpp index b116a91fdf..e5ee5a82ae 100644 --- a/test/decompiler/test_FormExpressionBuildLong.cpp +++ b/test/decompiler/test_FormExpressionBuildLong.cpp @@ -541,9 +541,8 @@ TEST_F(FormRegressionTest, ExprArrayMethod2) { " (format #t \"#(\")\n" " (cond\n" " ((type-type? (-> arg0 content-type) integer)\n" - " (let ((v1-1 (-> arg0 content-type symbol)))\n" - " (cond\n" - " ((= v1-1 (quote int32))\n" + " (case (-> arg0 content-type symbol) \n" + " (('int32)\n" " (dotimes (s5-0 (-> arg0 length))\n" " (format #t (if (zero? s5-0)\n" " \"~D\"\n" @@ -553,120 +552,111 @@ TEST_F(FormRegressionTest, ExprArrayMethod2) { " )\n" " )\n" " )\n" - " ((= v1-1 (quote uint32))\n" - " (dotimes (s5-1 (-> arg0 length))\n" - " (format #t (if (zero? s5-1)\n" - " \"~D\"\n" - " \" ~D\"\n" - " )\n" - " (-> (the-as (array uint32) arg0) s5-1)\n" - " )\n" + " (('uint32)\n" + " (dotimes (s5-1 (-> arg0 length))\n" + " (format #t (if (zero? s5-1)\n" + " \"~D\"\n" + " \" ~D\"\n" + " )\n" + " (-> (the-as (array uint32) arg0) s5-1)\n" " )\n" " )\n" - " ((= v1-1 (quote int64))\n" - " (dotimes (s5-2 (-> arg0 length))\n" - " (format #t (if (zero? s5-2)\n" - " \"~D\"\n" - " \" ~D\"\n" - " )\n" - " (-> (the-as (array int64) arg0) s5-2)\n" - " )\n" + " )\n" + " (('int64)\n" + " (dotimes (s5-2 (-> arg0 length))\n" + " (format #t (if (zero? s5-2)\n" + " \"~D\"\n" + " \" ~D\"\n" + " )\n" + " (-> (the-as (array int64) arg0) s5-2)\n" " )\n" " )\n" - " ((= v1-1 (quote uint64))\n" - " (dotimes (s5-3 (-> arg0 length))\n" - " (format #t (if (zero? s5-3)\n" - " \"#x~X\"\n" - " \" #x~X\"\n" - " )\n" - " (-> (the-as (array uint64) arg0) s5-3)\n" - " )\n" + " )\n" + " (('uint64)\n" + " (dotimes (s5-3 (-> arg0 length))\n" + " (format #t (if (zero? s5-3)\n" + " \"#x~X\"\n" + " \" #x~X\"\n" + " )\n" + " (-> (the-as (array uint64) arg0) s5-3)\n" " )\n" " )\n" - " ((= v1-1 (quote int8))\n" - " (dotimes (s5-4 (-> arg0 length))\n" - " (format #t (if (zero? s5-4)\n" - " \"~D\"\n" - " \" ~D\"\n" - " )\n" - " (-> (the-as (array int8) arg0) s5-4)\n" - " )\n" + " )\n" + " (('int8)\n" + " (dotimes (s5-4 (-> arg0 length))\n" + " (format #t (if (zero? s5-4)\n" + " \"~D\"\n" + " \" ~D\"\n" + " )\n" + " (-> (the-as (array int8) arg0) s5-4)\n" " )\n" " )\n" - " ((= v1-1 (quote uint8))\n" - " (dotimes (s5-5 (-> arg0 length))\n" - " (format #t (if (zero? s5-5)\n" - " \"~D\"\n" - " \" ~D\"\n" - " )\n" - " (-> (the-as (array uint8) arg0) s5-5)\n" - " )\n" + " )\n" + " (('uint8)\n" + " (dotimes (s5-5 (-> arg0 length))\n" + " (format #t (if (zero? s5-5)\n" + " \"~D\"\n" + " \" ~D\"\n" + " )\n" + " (-> (the-as (array uint8) arg0) s5-5)\n" " )\n" " )\n" - " ((= v1-1 (quote int16))\n" - " (dotimes (s5-6 (-> arg0 length))\n" - " (format #t (if (zero? s5-6)\n" - " \"~D\"\n" - " \" ~D\"\n" - " )\n" - " (-> (the-as (array int16) arg0) s5-6)\n" - " )\n" + " )\n" + " (('int16)\n" + " (dotimes (s5-6 (-> arg0 length))\n" + " (format #t (if (zero? s5-6)\n" + " \"~D\"\n" + " \" ~D\"\n" + " )\n" + " (-> (the-as (array int16) arg0) s5-6)\n" " )\n" " )\n" - " ((= v1-1 (quote uint16))\n" - " (dotimes (s5-7 (-> arg0 length))\n" - " (format #t (if (zero? s5-7)\n" - " \"~D\"\n" - " \" ~D\"\n" - " )\n" - " (-> (the-as (array uint16) arg0) s5-7)\n" - " )\n" + " )\n" + " (('uint16)\n" + " (dotimes (s5-7 (-> arg0 length))\n" + " (format #t (if (zero? s5-7)\n" + " \"~D\"\n" + " \" ~D\"\n" + " )\n" + " (-> (the-as (array uint16) arg0) s5-7)\n" " )\n" " )\n" - " (else\n" - " (cond\n" - " ((or (= v1-1 (quote uint128)) (= v1-1 (quote int128)))\n" - " (dotimes (s5-8 (-> arg0 length))\n" - " (format #t (if (zero? s5-8)\n" - " \"#x~X\"\n" - " \" #x~X\"\n" - " )\n" - " (-> (the-as (array uint128) arg0) s5-8)\n" - " )\n" - " )\n" - " )\n" - " (else\n" - " (dotimes (s5-9 (-> arg0 length))\n" - " (format #t (if (zero? s5-9)\n" - " \"~D\"\n" - " \" ~D\"\n" - " )\n" - " (-> (the-as (array int32) arg0) s5-9)\n" - " )\n" - " )\n" - " )\n" + " )\n" + " (('uint128 'int128)\n" + " (dotimes (s5-8 (-> arg0 length))\n" + " (format #t (if (zero? s5-8)\n" + " \"#x~X\"\n" + " \" #x~X\"\n" + " )\n" + " (-> (the-as (array uint128) arg0) s5-8)\n" + " )\n" + " )\n" + " )\n" + " (else\n" + " (dotimes (s5-9 (-> arg0 length))\n" + " (format #t (if (zero? s5-9)\n" + " \"~D\"\n" + " \" ~D\"\n" + " )\n" + " (-> (the-as (array int32) arg0) s5-9)\n" " )\n" " )\n" " )\n" " )\n" " )\n" - " (else\n" - " (cond\n" - " ((= (-> arg0 content-type) float)\n" - " (dotimes (s5-10 (-> arg0 length))\n" - " (if (zero? s5-10)\n" - " (format #t \"~f\" (-> (the-as (array float) arg0) s5-10))\n" - " (format #t \" ~f\" (-> (the-as (array float) arg0) s5-10))\n" - " )\n" - " )\n" + " ((= (-> arg0 content-type) float)\n" + " (dotimes (s5-10 (-> arg0 length))\n" + " (if (zero? s5-10)\n" + " (format #t \"~f\" (-> (the-as (array float) arg0) s5-10))\n" + " (format #t \" ~f\" (-> (the-as (array float) arg0) s5-10))\n" " )\n" - " (else\n" - " (dotimes (s5-11 (-> arg0 length))\n" - " (if (zero? s5-11)\n" - " (format #t \"~A\" (-> (the-as (array basic) arg0) s5-11))\n" - " (format #t \" ~A\" (-> (the-as (array basic) arg0) s5-11))\n" - " )\n" - " )\n" + " )\n" + " )\n" + " (else\n" + " (dotimes (s5-11 (-> arg0 length))\n" + " (if (zero? s5-11)\n" + " (format #t \"~A\" (-> (the-as (array basic) arg0) s5-11))\n" + " (format #t \" ~A\" (-> (the-as (array basic) arg0) s5-11))\n" " )\n" " )\n" " )\n" @@ -1164,87 +1154,72 @@ TEST_F(FormRegressionTest, ExprArrayMethod3) { " (format #t \"~Tdata[~D]: @ #x~X~%\" (-> arg0 allocated-length) (-> arg0 data))\n" " (cond\n" " ((type-type? (-> arg0 content-type) integer)\n" - " (let ((v1-1 (-> arg0 content-type symbol)))\n" - " (cond\n" - " ((= v1-1 (quote int32))\n" + " (case (-> arg0 content-type symbol) \n" + " (('int32)\n" " (dotimes (s5-0 (-> arg0 length))\n" " (format #t \"~T [~D] ~D~%\" s5-0 (-> (the-as (array int32) arg0) s5-0))\n" " )\n" " )\n" - " ((= v1-1 (quote uint32))\n" - " (dotimes (s5-1 (-> arg0 length))\n" - " (format #t \"~T [~D] ~D~%\" s5-1 (-> (the-as (array uint32) arg0) s5-1))\n" + " (('uint32)\n" + " (dotimes (s5-1 (-> arg0 length))\n" + " (format #t \"~T [~D] ~D~%\" s5-1 (-> (the-as (array uint32) arg0) s5-1))\n" + " )\n" + " )\n" + " (('int64)\n" + " (dotimes (s5-2 (-> arg0 length))\n" + " (format #t \"~T [~D] ~D~%\" s5-2 (-> (the-as (array int64) arg0) s5-2))\n" + " )\n" + " )\n" + " (('uint64)\n" + " (dotimes (s5-3 (-> arg0 length))\n" + " (format #t \"~T [~D] #x~X~%\" s5-3 (-> (the-as (array uint64) arg0) s5-3))\n" + " )\n" + " )\n" + " (('int8)\n" + " (dotimes (s5-4 (-> arg0 length))\n" + " (format #t \"~T [~D] ~D~%\" s5-4 (-> (the-as (array int8) arg0) s5-4))\n" + " )\n" + " )\n" + " (('uint8)\n" + " (dotimes (s5-5 (-> arg0 length))\n" + " (format #t \"~T [~D] ~D~%\" s5-5 (-> (the-as (array int8) arg0) s5-5))\n" + " )\n" + " )\n" + " (('int16)\n" + " (dotimes (s5-6 (-> arg0 length))\n" + " (format #t \"~T [~D] ~D~%\" s5-6 (-> (the-as (array int16) arg0) s5-6))\n" + " )\n" + " )\n" + " (('uint16)\n" + " (dotimes (s5-7 (-> arg0 length))\n" + " (format #t \"~T [~D] ~D~%\" s5-7 (-> (the-as (array uint16) arg0) s5-7))\n" + " )\n" + " )\n" + " (('int128 'uint128)\n" + " (dotimes (s5-8 (-> arg0 length))\n" + " (format\n" + " #t\n" + " \"~T [~D] #x~X~%\"\n" + " s5-8\n" + " (-> (the-as (array uint128) arg0) s5-8)\n" " )\n" " )\n" - " ((= v1-1 (quote int64))\n" - " (dotimes (s5-2 (-> arg0 length))\n" - " (format #t \"~T [~D] ~D~%\" s5-2 (-> (the-as (array int64) arg0) s5-2))\n" - " )\n" - " )\n" - " ((= v1-1 (quote uint64))\n" - " (dotimes (s5-3 (-> arg0 length))\n" - " (format\n" - " #t\n" - " \"~T [~D] #x~X~%\"\n" - " s5-3\n" - " (-> (the-as (array uint64) arg0) s5-3)\n" - " )\n" - " )\n" - " )\n" - " ((= v1-1 (quote int8))\n" - " (dotimes (s5-4 (-> arg0 length))\n" - " (format #t \"~T [~D] ~D~%\" s5-4 (-> (the-as (array int8) arg0) s5-4))\n" - " )\n" - " )\n" - " ((= v1-1 (quote uint8))\n" - " (dotimes (s5-5 (-> arg0 length))\n" - " (format #t \"~T [~D] ~D~%\" s5-5 (-> (the-as (array int8) arg0) s5-5))\n" - " )\n" - " )\n" - " ((= v1-1 (quote int16))\n" - " (dotimes (s5-6 (-> arg0 length))\n" - " (format #t \"~T [~D] ~D~%\" s5-6 (-> (the-as (array int16) arg0) s5-6))\n" - " )\n" - " )\n" - " ((= v1-1 (quote uint16))\n" - " (dotimes (s5-7 (-> arg0 length))\n" - " (format #t \"~T [~D] ~D~%\" s5-7 (-> (the-as (array uint16) arg0) s5-7))\n" - " )\n" - " )\n" - " (else\n" - " (cond\n" - " ((or (= v1-1 (quote int128)) (= v1-1 (quote uint128)))\n" - " (dotimes (s5-8 (-> arg0 length))\n" - " (format\n" - " #t\n" - " \"~T [~D] #x~X~%\"\n" - " s5-8\n" - " (-> (the-as (array uint128) arg0) s5-8)\n" - " )\n" - " )\n" - " )\n" - " (else\n" - " (dotimes (s5-9 (-> arg0 length))\n" - " (format #t \"~T [~D] ~D~%\" s5-9 (-> (the-as (array int32) arg0) s5-9))\n" - " )\n" - " )\n" - " )\n" + " )\n" + " (else\n" + " (dotimes (s5-9 (-> arg0 length))\n" + " (format #t \"~T [~D] ~D~%\" s5-9 (-> (the-as (array int32) arg0) s5-9))\n" " )\n" " )\n" " )\n" " )\n" + " ((= (-> arg0 content-type) float)\n" + " (dotimes (s5-10 (-> arg0 length))\n" + " (format #t \"~T [~D] ~f~%\" s5-10 (-> (the-as (array float) arg0) s5-10))\n" + " )\n" + " )\n" " (else\n" - " (cond\n" - " ((= (-> arg0 content-type) float)\n" - " (dotimes (s5-10 (-> arg0 length))\n" - " (format #t \"~T [~D] ~f~%\" s5-10 (-> (the-as (array float) arg0) s5-10))\n" - " )\n" - " )\n" - " (else\n" - " (dotimes (s5-11 (-> arg0 length))\n" - " (format #t \"~T [~D] ~A~%\" s5-11 (-> (the-as (array basic) arg0) s5-11))\n" - " )\n" - " )\n" + " (dotimes (s5-11 (-> arg0 length))\n" + " (format #t \"~T [~D] ~A~%\" s5-11 (-> (the-as (array basic) arg0) s5-11))\n" " )\n" " )\n" " )\n" @@ -1811,8 +1786,7 @@ TEST_F(FormRegressionTest, ExprValid) { " ((not arg1)\n" " (cond\n" " ((nonzero? (logand (the-as int arg0) 3))\n" - " (if\n" - " arg2\n" + " (if arg2\n" " (format\n" " arg4\n" " \"ERROR: object #x~X ~S is not a valid object (misaligned)~%\"\n" @@ -1823,8 +1797,7 @@ TEST_F(FormRegressionTest, ExprValid) { " #f\n" " )\n" " ((not v1-1)\n" - " (if\n" - " arg2\n" + " (if arg2\n" " (format\n" " arg4\n" " \"ERROR: object #x~X ~S is not a valid object (bad address)~%\"\n" @@ -1834,101 +1807,55 @@ TEST_F(FormRegressionTest, ExprValid) { " )\n" " #f\n" " )\n" - " (else #t)\n" + " (else\n" + " #t\n" + " )\n" " )\n" " )\n" - " ((and arg3 (not arg0)) #t)\n" - " (else\n" + " ((and arg3 (not arg0))\n" + " #t\n" + " )\n" + " ((= arg1 structure)\n" " (cond\n" - " ((= arg1 structure)\n" - " (cond\n" - " ((nonzero? (logand (the-as int arg0) 15))\n" - " (if\n" - " arg2\n" - " (format\n" - " arg4\n" - " \"ERROR: object #x~X ~S is not a valid object of type '~A' (misaligned)~%\"\n" - " arg0\n" - " arg2\n" - " arg1\n" - " )\n" - " )\n" - " #f\n" - " )\n" - " ((or\n" - " (not v1-1)\n" - " (begin\n" - " (let ((v1-10 #x8000)) (.daddu v1-11 v1-10 s7-0))\n" - " (< (the-as uint arg0) (the-as uint v1-11))\n" - " )\n" - " )\n" - " (if\n" - " arg2\n" - " (format\n" - " arg4\n" - " \"ERROR: object #x~X ~S is not a valid object of type '~A' (bad address)~%\"\n" - " arg0\n" - " arg2\n" - " arg1\n" - " )\n" - " )\n" - " #f\n" - " )\n" - " (else #t)\n" - " )\n" - " )\n" - " ((= arg1 pair)\n" - " (cond\n" - " ((!= (logand (the-as int arg0) 7) 2)\n" - " (if\n" - " arg2\n" - " (format\n" - " arg4\n" - " \"ERROR: object #x~X ~S is not a valid object of type '~A' (misaligned)~%\"\n" - " arg0\n" - " arg2\n" - " arg1\n" - " )\n" - " )\n" - " #f\n" - " )\n" - " ((not v1-1)\n" - " (if\n" - " arg2\n" - " (format\n" - " arg4\n" - " \"ERROR: object #x~X ~S is not a valid object of type '~A' (bad address)~%\"\n" - " arg0\n" - " arg2\n" - " arg1\n" - " )\n" - " )\n" - " #f\n" - " )\n" - " (else #t)\n" - " )\n" - " )\n" - " ((= arg1 binteger)\n" - " (cond\n" - " ((zero? (logand (the-as int arg0) 7)) #t)\n" - " (else\n" - " (if\n" - " arg2\n" - " (format\n" - " arg4\n" - " \"ERROR: object #x~X ~S is not a valid object of type '~A' (misaligned)~%\"\n" - " arg0\n" - " arg2\n" - " arg1\n" - " )\n" - " )\n" - " #f\n" + " ((nonzero? (logand (the-as int arg0) 15))\n" + " (if arg2\n" + " (format\n" + " arg4\n" + " \"ERROR: object #x~X ~S is not a valid object of type '~A' (misaligned)~%\"\n" + " arg0\n" + " arg2\n" + " arg1\n" " )\n" " )\n" + " #f\n" " )\n" - " ((!= (logand (the-as int arg0) 7) 4)\n" - " (if\n" - " arg2\n" + " ((or (not v1-1) (begin\n" + " (let ((v1-10 #x8000))\n" + " (.daddu v1-11 v1-10 s7-0)\n" + " )\n" + " (< (the-as uint arg0) (the-as uint v1-11))\n" + " )\n" + " )\n" + " (if arg2\n" + " (format\n" + " arg4\n" + " \"ERROR: object #x~X ~S is not a valid object of type '~A' (bad address)~%\"\n" + " arg0\n" + " arg2\n" + " arg1\n" + " )\n" + " )\n" + " #f\n" + " )\n" + " (else\n" + " #t\n" + " )\n" + " )\n" + " )\n" + " ((= arg1 pair)\n" + " (cond\n" + " ((!= (logand (the-as int arg0) 7) 2)\n" + " (if arg2\n" " (format\n" " arg4\n" " \"ERROR: object #x~X ~S is not a valid object of type '~A' (misaligned)~%\"\n" @@ -1940,8 +1867,7 @@ TEST_F(FormRegressionTest, ExprValid) { " #f\n" " )\n" " ((not v1-1)\n" - " (if\n" - " arg2\n" + " (if arg2\n" " (format\n" " arg4\n" " \"ERROR: object #x~X ~S is not a valid object of type '~A' (bad address)~%\"\n" @@ -1952,94 +1878,137 @@ TEST_F(FormRegressionTest, ExprValid) { " )\n" " #f\n" " )\n" - " ((and (= arg1 type) (!= (rtype-of arg0) type))\n" - " (if\n" - " arg2\n" + " (else\n" + " #t\n" + " )\n" + " )\n" + " )\n" + " ((= arg1 binteger)\n" + " (cond\n" + " ((zero? (logand (the-as int arg0) 7))\n" + " #t\n" + " )\n" + " (else\n" + " (if arg2\n" " (format\n" " arg4\n" - " \"ERROR: object #x~X ~S is not a valid object of type '~A' (invalid type #x~X)~%\"\n" + " \"ERROR: object #x~X ~S is not a valid object of type '~A' (misaligned)~%\"\n" + " arg0\n" + " arg2\n" + " arg1\n" + " )\n" + " )\n" + " #f\n" + " )\n" + " )\n" + " )\n" + " ((!= (logand (the-as int arg0) 7) 4)\n" + " (if arg2\n" + " (format\n" + " arg4\n" + " \"ERROR: object #x~X ~S is not a valid object of type '~A' (misaligned)~%\"\n" + " arg0\n" + " arg2\n" + " arg1\n" + " )\n" + " )\n" + " #f\n" + " )\n" + " ((not v1-1)\n" + " (if arg2\n" + " (format\n" + " arg4\n" + " \"ERROR: object #x~X ~S is not a valid object of type '~A' (bad address)~%\"\n" + " arg0\n" + " arg2\n" + " arg1\n" + " )\n" + " )\n" + " #f\n" + " )\n" + " ((and (= arg1 type) (!= (rtype-of arg0) type))\n" + " (if arg2\n" + " (format\n" + " arg4\n" + " \"ERROR: object #x~X ~S is not a valid object of type '~A' (invalid type #x~X)~%\"\n" + " arg0\n" + " arg2\n" + " arg1\n" + " (rtype-of arg0)\n" + " )\n" + " )\n" + " #f\n" + " )\n" + " ((and (!= arg1 type) (not (valid? (rtype-of arg0) type #f #t 0)))\n" + " (if arg2\n" + " (format\n" + " arg4\n" + " \"ERROR: object #x~X ~S is not a valid object of type '~A' (invalid type #x~X)~%\"\n" + " arg0\n" + " arg2\n" + " arg1\n" + " (rtype-of arg0)\n" + " )\n" + " )\n" + " #f\n" + " )\n" + " ((not (type-type? (rtype-of arg0) arg1))\n" + " (if arg2\n" + " (format\n" + " arg4\n" + " \"ERROR: object #x~X ~S is not a valid object of type '~A' (is type '~A' " + "instead)~%\"\n" + " arg0\n" + " arg2\n" + " arg1\n" + " (rtype-of arg0)\n" + " )\n" + " )\n" + " #f\n" + " )\n" + " ((= arg1 symbol)\n" + " (let ((v1-43 #x8000))\n" + " (.daddu v1-44 v1-43 s7-0)\n" + " )\n" + " (cond\n" + " ((>= (the-as uint arg0) (the-as uint v1-44))\n" + " (if arg2\n" + " (format\n" + " arg4\n" + " \"ERROR: object #x~X ~S is not a valid object of type '~A' (not in symbol " + "table)~%\"\n" " arg0\n" " arg2\n" " arg1\n" - " (rtype-of arg0)\n" " )\n" " )\n" " #f\n" " )\n" " (else\n" - " (cond\n" - " ((and (!= arg1 type) (not (valid? (rtype-of arg0) type #f #t 0)))\n" - " (if\n" - " arg2\n" - " (format\n" - " arg4\n" - " \"ERROR: object #x~X ~S is not a valid object of type '~A' (invalid type " - "#x~X)~%\"\n" - " arg0\n" - " arg2\n" - " arg1\n" - " (rtype-of arg0)\n" - " )\n" - " )\n" - " #f\n" - " )\n" - " ((not (type-type? (rtype-of arg0) arg1))\n" - " (if\n" - " arg2\n" - " (format\n" - " arg4\n" - " \"ERROR: object #x~X ~S is not a valid object of type '~A' (is type '~A' " - "instead)~%\"\n" - " arg0\n" - " arg2\n" - " arg1\n" - " (rtype-of arg0)\n" - " )\n" - " )\n" - " #f\n" - " )\n" - " ((= arg1 symbol)\n" - " (let ((v1-43 #x8000)) (.daddu v1-44 v1-43 s7-0))\n" - " (cond\n" - " ((>= (the-as uint arg0) (the-as uint v1-44))\n" - " (if\n" - " arg2\n" - " (format\n" - " arg4\n" - " \"ERROR: object #x~X ~S is not a valid object of type '~A' (not in symbol " - "table)~%\"\n" - " arg0\n" - " arg2\n" - " arg1\n" - " )\n" - " )\n" - " #f\n" - " )\n" - " (else #t)\n" - " )\n" - " )\n" - " ((begin\n" - " (let ((v1-47 #x8000)) (.daddu v1-48 v1-47 s7-0))\n" - " (< (the-as uint arg0) (the-as uint v1-48))\n" - " )\n" - " (if\n" - " arg2\n" - " (format\n" - " arg4\n" - " \"ERROR: object #x~X ~S is not a valid object of type '~A' (inside symbol " - "table)~%\"\n" - " arg0\n" - " arg2\n" - " arg1\n" - " )\n" - " )\n" - " #f\n" - " )\n" - " (else #t)\n" - " )\n" + " #t\n" " )\n" " )\n" " )\n" + " ((begin\n" + " (let ((v1-47 #x8000))\n" + " (.daddu v1-48 v1-47 s7-0)\n" + " )\n" + " (< (the-as uint arg0) (the-as uint v1-48))\n" + " )\n" + " (if arg2\n" + " (format\n" + " arg4\n" + " \"ERROR: object #x~X ~S is not a valid object of type '~A' (inside symbol table)~%\"\n" + " arg0\n" + " arg2\n" + " arg1\n" + " )\n" + " )\n" + " #f\n" + " )\n" + " (else\n" + " #t\n" + " )\n" " )\n" " )"; test_with_expr( @@ -2377,20 +2346,19 @@ TEST_F(FormRegressionTest, ExprStringToInt) { " (the-as int (+ (+ (-> a0-3 0) -55) (the-as uint (* v0-0 16))))\n" " )\n" " )\n" + " ((and\n" + " (>= (-> a0-3 0) (the-as uint 97))\n" + " (>= (the-as uint 102) (-> a0-3 0))\n" + " )\n" + " (set!\n" + " v0-0\n" + " (the-as int (+ (+ (-> a0-3 0) -87) (the-as uint (* v0-0 16))))\n" + " )\n" + " )\n" " (else\n" - " (if\n" - " (and\n" - " (>= (-> a0-3 0) (the-as uint 97))\n" - " (>= (the-as uint 102) (-> a0-3 0))\n" - " )\n" - " (set!\n" - " v0-0\n" - " (the-as int (+ (+ (-> a0-3 0) -87) (the-as uint (* v0-0 16))))\n" - " )\n" - " (set!\n" - " v0-0\n" - " (the-as int (+ (+ (-> a0-3 0) -48) (the-as uint (* v0-0 16))))\n" - " )\n" + " (set!\n" + " v0-0\n" + " (the-as int (+ (+ (-> a0-3 0) -48) (the-as uint (* v0-0 16))))\n" " )\n" " )\n" " )\n" @@ -2844,16 +2812,14 @@ TEST_F(FormRegressionTest, Method19ResTag) { " )\n" " (cond\n" " ((zero? t6-5)\n" - " (begin\n" - " (set! t4-1 t5-2)\n" - " (goto cfg-32)\n" - " )\n" + " (set! t4-1 t5-2)\n" + " (goto cfg-32)\n" + " )\n" + " ((< (the-as int t6-5) 0)\n" + " (set! t3-1 (+ t5-2 -1))\n" " )\n" " (else\n" - " (if (< (the-as int t6-5) 0)\n" - " (set! t3-1 (+ t5-2 -1))\n" - " (set! t4-0 (+ t5-2 1))\n" - " )\n" + " (set! t4-0 (+ t5-2 1))\n" " )\n" " )\n" " )\n" @@ -2880,12 +2846,10 @@ TEST_F(FormRegressionTest, Method19ResTag) { " )\n" " (+! t4-1 -1)\n" " )\n" - " (if (= arg2 'base)\n" - " (begin\n" - " (set! t0-6 t4-1)\n" - " (set! v1-14 t4-1)\n" - " (goto cfg-73)\n" - " )\n" + " (when (= arg2 'base)\n" + " (set! t0-6 t4-1)\n" + " (set! v1-14 t4-1)\n" + " (goto cfg-73)\n" " )\n" " (let ((t3-13 t4-1)\n" " (t4-4 (&-> (-> arg0 tag) t4-1))\n" @@ -2907,11 +2871,9 @@ TEST_F(FormRegressionTest, Method19ResTag) { " ((!= arg1 (-> t4-4 0 name))\n" " )\n" " ((= (-> t4-4 0 key-frame) arg3)\n" - " (begin\n" - " (set! t0-6 t3-13)\n" - " (set! v1-14 t3-13)\n" - " (goto cfg-73)\n" - " )\n" + " (set! t0-6 t3-13)\n" + " (set! v1-14 t3-13)\n" + " (goto cfg-73)\n" " )\n" " ((and (>= arg3 (-> t4-4 0 key-frame)) (!= arg2 'exact))\n" " (set! t0-6 t3-13)\n" @@ -2921,12 +2883,10 @@ TEST_F(FormRegressionTest, Method19ResTag) { " )\n" " )\n" " ((< arg3 (-> t4-4 0 key-frame))\n" - " (begin\n" - " (if (and (!= t0-6 t1-0) (= arg2 'interp))\n" - " (set! v1-14 t3-13)\n" - " )\n" - " (goto cfg-73)\n" + " (if (and (!= t0-6 t1-0) (= arg2 'interp))\n" + " (set! v1-14 t3-13)\n" " )\n" + " (goto cfg-73)\n" " )\n" " )\n" " (+! t3-13 1)\n" diff --git a/test/decompiler/test_gkernel_decomp.cpp b/test/decompiler/test_gkernel_decomp.cpp index e1a65fa5fd..69141cc049 100644 --- a/test/decompiler/test_gkernel_decomp.cpp +++ b/test/decompiler/test_gkernel_decomp.cpp @@ -1410,15 +1410,15 @@ TEST_F(FormRegressionTest, ExprMethod21DeadPoolHeap) { " )\n" " )\n" " )\n" - " (else\n" - " (if (-> arg1 next)\n" - " (&-\n" - " (the-as pointer (-> arg1 next process))\n" - " (the-as uint (&+ (-> arg0 heap base) 4))\n" - " )\n" - " (&- (-> arg0 heap top) (the-as uint (-> arg0 heap base)))\n" + " ((-> arg1 next)\n" + " (&-\n" + " (the-as pointer (-> arg1 next process))\n" + " (the-as uint (&+ (-> arg0 heap base) 4))\n" " )\n" " )\n" + " (else\n" + " (&- (-> arg0 heap top) (the-as uint (-> arg0 heap base)))\n" + " )\n" " )"; test_with_expr(func, type, expected, false, "", {}, "[\t\t[5, \"v1\", \"pointer\"],\n" From 079f6230997a79867719a6082c889e60476956f9 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 12 Jul 2021 02:00:42 +0000 Subject: [PATCH 13/63] Updated github pages site --- docs/gh-pages-proj/src/config/progress.json | 2 +- docs/index.html | 2 +- docs/js/{about.63a44ad4.js => about.cd7ee04c.js} | 4 ++-- docs/js/{about.63a44ad4.js.map => about.cd7ee04c.js.map} | 2 +- docs/js/{app.635c14bd.js => app.373b3d7d.js} | 4 ++-- docs/js/{app.635c14bd.js.map => app.373b3d7d.js.map} | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) rename docs/js/{about.63a44ad4.js => about.cd7ee04c.js} (99%) rename docs/js/{about.63a44ad4.js.map => about.cd7ee04c.js.map} (99%) rename docs/js/{app.635c14bd.js => app.373b3d7d.js} (97%) rename docs/js/{app.635c14bd.js.map => app.373b3d7d.js.map} (98%) diff --git a/docs/gh-pages-proj/src/config/progress.json b/docs/gh-pages-proj/src/config/progress.json index 2e227540f5..eef0bf2d14 100644 --- a/docs/gh-pages-proj/src/config/progress.json +++ b/docs/gh-pages-proj/src/config/progress.json @@ -1,7 +1,7 @@ { "jak1": { "locPercentage": { - "value": 107118, + "value": 107160, "label": "Lines of Code" } } diff --git a/docs/index.html b/docs/index.html index 6b96a8d434..06f251d31a 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1 +1 @@ -OpenGOAL Tooling
\ No newline at end of file +OpenGOAL Tooling
\ No newline at end of file diff --git a/docs/js/about.63a44ad4.js b/docs/js/about.cd7ee04c.js similarity index 99% rename from docs/js/about.63a44ad4.js rename to docs/js/about.cd7ee04c.js index a9ec4e0e25..25d579eaf4 100644 --- a/docs/js/about.63a44ad4.js +++ b/docs/js/about.cd7ee04c.js @@ -1,2 +1,2 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":107118,"label":"Lines of Code"}}}')}}]); -//# sourceMappingURL=about.63a44ad4.js.map \ No newline at end of file +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":107160,"label":"Lines of Code"}}}')}}]); +//# sourceMappingURL=about.cd7ee04c.js.map \ No newline at end of file diff --git a/docs/js/about.63a44ad4.js.map b/docs/js/about.cd7ee04c.js.map similarity index 99% rename from docs/js/about.63a44ad4.js.map rename to docs/js/about.cd7ee04c.js.map index 7594b634c4..d437350eaf 100644 --- a/docs/js/about.63a44ad4.js.map +++ b/docs/js/about.cd7ee04c.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?b24d","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.63a44ad4.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?b24d","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.cd7ee04c.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/js/app.635c14bd.js b/docs/js/app.373b3d7d.js similarity index 97% rename from docs/js/app.635c14bd.js rename to docs/js/app.373b3d7d.js index 0436062fd8..1a2422b812 100644 --- a/docs/js/app.635c14bd.js +++ b/docs/js/app.373b3d7d.js @@ -1,2 +1,2 @@ -(function(e){function t(t){for(var n,o,i=t[0],c=t[1],l=t[2],s=0,p=[];s\n \n \n \n \n \n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?7eb4","webpack:///src/App.vue","webpack:///./src/App.vue?1160","webpack:///./src/App.vue","webpack:///./src/plugins/vuetify.js","webpack:///./src/router/index.js","webpack:///./src/main.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_h","$createElement","_c","_self","staticRenderFns","components","component","VApp","VMain","Vue","use","Vuetify","theme","dark","VueRouter","routes","path","router","base","process","config","productionTip","vuetify","render","h","App","$mount"],"mappings":"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","file":"js/app.373b3d7d.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"cd7ee04c\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"about\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"8d0e9591\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/jak-project/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[_c('v-main',[_c('router-view')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file From 73330302bafef0036103f693abeacb7a267dbdf9 Mon Sep 17 00:00:00 2001 From: water111 <48171810+water111@users.noreply.github.com> Date: Mon, 12 Jul 2021 19:29:56 -0400 Subject: [PATCH 14/63] fix bug in field lookup (#700) --- common/type_system/TypeFieldLookup.cpp | 16 +++---- goal_src/engine/gfx/generic/generic.gc | 42 ++++--------------- .../engine/gfx/generic/generic_REF.gc | 40 ++++-------------- test/decompiler/test_DataParser.cpp | 12 ++++++ 4 files changed, 37 insertions(+), 73 deletions(-) diff --git a/common/type_system/TypeFieldLookup.cpp b/common/type_system/TypeFieldLookup.cpp index 3985b8a662..83c5abb068 100644 --- a/common/type_system/TypeFieldLookup.cpp +++ b/common/type_system/TypeFieldLookup.cpp @@ -231,6 +231,8 @@ void try_reverse_lookup_array_like(const FieldReverseLookupInput& input, * - get something inside an object (variable idx) * - get a constant idx reference object (we pick this over just getting the array for idx = 0) * - get something inside a constant idx reference object + * + * Note: for an inline array of basics, the offset should include the basic offset. */ void try_reverse_lookup_inline_array(const FieldReverseLookupInput& input, const TypeSystem& ts, @@ -264,7 +266,7 @@ void try_reverse_lookup_inline_array(const FieldReverseLookupInput& input, FieldReverseLookupInput next_input; next_input.deref = input.deref; next_input.stride = 0; - next_input.offset = input.offset; + next_input.offset = input.offset; // includes the offset. next_input.base_type = di.result_type; try_reverse_lookup(next_input, ts, &var_idx_node, output, max_count); return; @@ -272,18 +274,17 @@ void try_reverse_lookup_inline_array(const FieldReverseLookupInput& input, // constant lookup, or accessing within the first one // which element we are in - int elt_idx = input.offset / di.stride; - // how many bytes into the element we look + int elt_idx = (ts.lookup_type(di.result_type)->get_offset() + input.offset) / di.stride; + // how many bytes into the element we look (including offset) int offset_into_elt = input.offset - (elt_idx * di.stride); // the expected number of bytes into the element we would look to grab a ref to the elt. - int expected_offset_into_elt = ts.lookup_type(di.result_type)->get_offset(); ReverseLookupNode const_idx_node; const_idx_node.prev = parent; const_idx_node.token.kind = FieldReverseLookupOutput::Token::Kind::CONSTANT_IDX; const_idx_node.token.idx = elt_idx; - if (offset_into_elt == expected_offset_into_elt && !input.deref.has_value()) { + if (offset_into_elt == 0 && !input.deref.has_value()) { // just get an element (possibly zero, and we want to include the 0 if so) // for the degenerate inline-array case, it seems more likely that we get the zeroth object // rather than the array, so this goes before that case. @@ -295,7 +296,7 @@ void try_reverse_lookup_inline_array(const FieldReverseLookupInput& input, } // can we just return the array? - if (expected_offset_into_elt == offset_into_elt && !input.deref.has_value() && elt_idx == 0) { + if (offset_into_elt == 0 && !input.deref.has_value() && elt_idx == 0) { auto parent_vec = parent_to_vector(parent); if (!parent_vec.empty()) { output->results.emplace_back(false, input.base_type, parent_to_vector(parent)); @@ -311,8 +312,7 @@ void try_reverse_lookup_inline_array(const FieldReverseLookupInput& input, FieldReverseLookupInput next_input; next_input.deref = input.deref; next_input.stride = input.stride; - // try_reverse_lookup expects "offset_into_field - boxed_offset" - next_input.offset = offset_into_elt - expected_offset_into_elt; + next_input.offset = offset_into_elt; next_input.base_type = di.result_type; try_reverse_lookup(next_input, ts, &const_idx_node, output, max_count); } diff --git a/goal_src/engine/gfx/generic/generic.gc b/goal_src/engine/gfx/generic/generic.gc index e73f4b4f82..febf5984d6 100644 --- a/goal_src/engine/gfx/generic/generic.gc +++ b/goal_src/engine/gfx/generic/generic.gc @@ -23,55 +23,37 @@ ;; failed to figure out what this is: (set! (-> *generic-foreground-sinks* 0) - (the-as - generic-dma-foreground-sink - (-> *level* level0 foreground-sink-group 0 merc-sink) - ) + (-> *level* level0 foreground-sink-group 0 generic-sink) ) ;; failed to figure out what this is: (set! (-> *generic-foreground-sinks* 1) - (the-as - generic-dma-foreground-sink - (-> *level* level0 foreground-sink-group 1 merc-sink) - ) + (-> *level* level0 foreground-sink-group 1 generic-sink) ) ;; failed to figure out what this is: (set! (-> *generic-foreground-sinks* 2) - (the-as - generic-dma-foreground-sink - (-> *level* level1 foreground-sink-group 0 merc-sink) - ) + (-> *level* level1 foreground-sink-group 0 generic-sink) ) ;; failed to figure out what this is: (set! (-> *generic-foreground-sinks* 3) - (the-as - generic-dma-foreground-sink - (-> *level* level1 foreground-sink-group 1 merc-sink) - ) + (-> *level* level1 foreground-sink-group 1 generic-sink) ) ;; failed to figure out what this is: (set! (-> *generic-foreground-sinks* 4) - (the-as - generic-dma-foreground-sink - (-> *level* level-default foreground-sink-group 0 merc-sink) - ) + (-> *level* level-default foreground-sink-group 0 generic-sink) ) ;; failed to figure out what this is: (set! (-> *generic-foreground-sinks* 5) - (the-as - generic-dma-foreground-sink - (-> *level* level-default foreground-sink-group 1 merc-sink) - ) + (-> *level* level-default foreground-sink-group 1 generic-sink) ) ;; failed to figure out what this is: @@ -83,19 +65,13 @@ ;; failed to figure out what this is: (set! (-> *generic-foreground-sinks* 7) - (the-as - generic-dma-foreground-sink - (-> *level* level0 foreground-sink-group 2 merc-sink) - ) + (-> *level* level0 foreground-sink-group 2 generic-sink) ) ;; failed to figure out what this is: (set! (-> *generic-foreground-sinks* 8) - (the-as - generic-dma-foreground-sink - (-> *level* level1 foreground-sink-group 2 merc-sink) - ) + (-> *level* level1 foreground-sink-group 2 generic-sink) ) ;; definition for function generic-dma-foreground-sink-init @@ -135,7 +111,7 @@ ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) - (the bucket-id s3-0) ;; TODO, correct types here + (the-as bucket-id s3-0) s2-0 (the-as (pointer dma-tag) a3-0) ) diff --git a/test/decompiler/reference/engine/gfx/generic/generic_REF.gc b/test/decompiler/reference/engine/gfx/generic/generic_REF.gc index bd3048af6e..94ef55b64b 100644 --- a/test/decompiler/reference/engine/gfx/generic/generic_REF.gc +++ b/test/decompiler/reference/engine/gfx/generic/generic_REF.gc @@ -16,55 +16,37 @@ ;; failed to figure out what this is: (set! (-> *generic-foreground-sinks* 0) - (the-as - generic-dma-foreground-sink - (-> *level* level0 foreground-sink-group 0 merc-sink) - ) + (-> *level* level0 foreground-sink-group 0 generic-sink) ) ;; failed to figure out what this is: (set! (-> *generic-foreground-sinks* 1) - (the-as - generic-dma-foreground-sink - (-> *level* level0 foreground-sink-group 1 merc-sink) - ) + (-> *level* level0 foreground-sink-group 1 generic-sink) ) ;; failed to figure out what this is: (set! (-> *generic-foreground-sinks* 2) - (the-as - generic-dma-foreground-sink - (-> *level* level1 foreground-sink-group 0 merc-sink) - ) + (-> *level* level1 foreground-sink-group 0 generic-sink) ) ;; failed to figure out what this is: (set! (-> *generic-foreground-sinks* 3) - (the-as - generic-dma-foreground-sink - (-> *level* level1 foreground-sink-group 1 merc-sink) - ) + (-> *level* level1 foreground-sink-group 1 generic-sink) ) ;; failed to figure out what this is: (set! (-> *generic-foreground-sinks* 4) - (the-as - generic-dma-foreground-sink - (-> *level* level-default foreground-sink-group 0 merc-sink) - ) + (-> *level* level-default foreground-sink-group 0 generic-sink) ) ;; failed to figure out what this is: (set! (-> *generic-foreground-sinks* 5) - (the-as - generic-dma-foreground-sink - (-> *level* level-default foreground-sink-group 1 merc-sink) - ) + (-> *level* level-default foreground-sink-group 1 generic-sink) ) ;; failed to figure out what this is: @@ -76,19 +58,13 @@ ;; failed to figure out what this is: (set! (-> *generic-foreground-sinks* 7) - (the-as - generic-dma-foreground-sink - (-> *level* level0 foreground-sink-group 2 merc-sink) - ) + (-> *level* level0 foreground-sink-group 2 generic-sink) ) ;; failed to figure out what this is: (set! (-> *generic-foreground-sinks* 8) - (the-as - generic-dma-foreground-sink - (-> *level* level1 foreground-sink-group 2 merc-sink) - ) + (-> *level* level1 foreground-sink-group 2 generic-sink) ) ;; definition for function generic-dma-foreground-sink-init diff --git a/test/decompiler/test_DataParser.cpp b/test/decompiler/test_DataParser.cpp index 5341649643..b369ecb11a 100644 --- a/test/decompiler/test_DataParser.cpp +++ b/test/decompiler/test_DataParser.cpp @@ -390,3 +390,15 @@ TEST_F(DataDecompTest, KernelContext) { " :relocating-process #f\n" " :low-memory-message #t)\n"); } + +TEST_F(DataDecompTest, ReverseArtExt) { + FieldReverseLookupInput input; + input.base_type = TypeSpec("external-art-control"); + input.offset = 124; + auto result = dts->ts.reverse_field_multi_lookup(input); + EXPECT_EQ(result.results.at(0).tokens.at(2).print(), "name"); + + input.offset = 108; + result = dts->ts.reverse_field_multi_lookup(input); + EXPECT_EQ(result.results.at(0).tokens.at(2).print(), "type"); +} \ No newline at end of file From 77667d918528bc567040f2c0ad6e4a9635a3435d Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 12 Jul 2021 23:31:10 +0000 Subject: [PATCH 15/63] Updated github pages site --- docs/gh-pages-proj/src/config/progress.json | 2 +- docs/index.html | 2 +- docs/js/{about.cd7ee04c.js => about.bc1b293a.js} | 4 ++-- docs/js/{about.cd7ee04c.js.map => about.bc1b293a.js.map} | 2 +- docs/js/{app.373b3d7d.js => app.f4cdc4a2.js} | 4 ++-- docs/js/{app.373b3d7d.js.map => app.f4cdc4a2.js.map} | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) rename docs/js/{about.cd7ee04c.js => about.bc1b293a.js} (99%) rename docs/js/{about.cd7ee04c.js.map => about.bc1b293a.js.map} (99%) rename docs/js/{app.373b3d7d.js => app.f4cdc4a2.js} (97%) rename docs/js/{app.373b3d7d.js.map => app.f4cdc4a2.js.map} (98%) diff --git a/docs/gh-pages-proj/src/config/progress.json b/docs/gh-pages-proj/src/config/progress.json index eef0bf2d14..4bc195d67a 100644 --- a/docs/gh-pages-proj/src/config/progress.json +++ b/docs/gh-pages-proj/src/config/progress.json @@ -1,7 +1,7 @@ { "jak1": { "locPercentage": { - "value": 107160, + "value": 107136, "label": "Lines of Code" } } diff --git a/docs/index.html b/docs/index.html index 06f251d31a..ad7850acf2 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1 +1 @@ -OpenGOAL Tooling
\ No newline at end of file +OpenGOAL Tooling
\ No newline at end of file diff --git a/docs/js/about.cd7ee04c.js b/docs/js/about.bc1b293a.js similarity index 99% rename from docs/js/about.cd7ee04c.js rename to docs/js/about.bc1b293a.js index 25d579eaf4..e76e773207 100644 --- a/docs/js/about.cd7ee04c.js +++ b/docs/js/about.bc1b293a.js @@ -1,2 +1,2 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":107160,"label":"Lines of Code"}}}')}}]); -//# sourceMappingURL=about.cd7ee04c.js.map \ No newline at end of file +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":107136,"label":"Lines of Code"}}}')}}]); +//# sourceMappingURL=about.bc1b293a.js.map \ No newline at end of file diff --git a/docs/js/about.cd7ee04c.js.map b/docs/js/about.bc1b293a.js.map similarity index 99% rename from docs/js/about.cd7ee04c.js.map rename to docs/js/about.bc1b293a.js.map index d437350eaf..6fa78d9bd2 100644 --- a/docs/js/about.cd7ee04c.js.map +++ b/docs/js/about.bc1b293a.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?b24d","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.cd7ee04c.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?a70f","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.bc1b293a.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/js/app.373b3d7d.js b/docs/js/app.f4cdc4a2.js similarity index 97% rename from docs/js/app.373b3d7d.js rename to docs/js/app.f4cdc4a2.js index 1a2422b812..e04a4ab70e 100644 --- a/docs/js/app.373b3d7d.js +++ b/docs/js/app.f4cdc4a2.js @@ -1,2 +1,2 @@ -(function(e){function t(t){for(var n,o,i=t[0],c=t[1],l=t[2],s=0,p=[];s\n \n \n \n \n \n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?69b5","webpack:///src/App.vue","webpack:///./src/App.vue?1160","webpack:///./src/App.vue","webpack:///./src/plugins/vuetify.js","webpack:///./src/router/index.js","webpack:///./src/main.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_h","$createElement","_c","_self","staticRenderFns","components","component","VApp","VMain","Vue","use","Vuetify","theme","dark","VueRouter","routes","path","router","base","process","config","productionTip","vuetify","render","h","App","$mount"],"mappings":"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","file":"js/app.f4cdc4a2.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"bc1b293a\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"about\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"8d0e9591\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/jak-project/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[_c('v-main',[_c('router-view')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file From ef011f4fe89fd400df65636810ebc64aa6540afc Mon Sep 17 00:00:00 2001 From: water111 <48171810+water111@users.noreply.github.com> Date: Thu, 15 Jul 2021 21:37:15 -0400 Subject: [PATCH 16/63] [goalc] add a build system (#704) * add first attempt at build system * fix stupid bug * try again --- common/goos/Interpreter.cpp | 43 +- common/goos/Interpreter.h | 17 +- decompiler/ObjectFile/ObjectFileDB.cpp | 4 + decompiler/config/jak1_ntsc_black_label.jsonc | 2 +- decompiler/main.cpp | 12 +- game/graphics/gfx.cpp | 2 +- goal_src/dgos/engine.gd | 295 +++++++++ goal_src/dgos/game.gd | 330 +++++++++ goal_src/dgos/kernel.gd | 10 + goal_src/dgos/vi1.gd | 57 ++ goal_src/engine/ui/text.gc | 3 + goal_src/game.gp | 626 ++++++++++++++++++ goal_src/goal-lib.gc | 30 + goalc/CMakeLists.txt | 13 +- goalc/compiler/Compiler.cpp | 20 +- goalc/compiler/Compiler.h | 57 +- goalc/compiler/compilation/Atoms.cpp | 2 + .../compiler/compilation/CompilerControl.cpp | 50 +- goalc/data_compiler/dir_tpages.cpp | 2 - goalc/data_compiler/game_count.cpp | 1 - goalc/debugger/Debugger.cpp | 12 +- goalc/debugger/Debugger.h | 11 +- goalc/main.cpp | 3 +- goalc/make/MakeSystem.cpp | 328 +++++++++ goalc/make/MakeSystem.h | 61 ++ goalc/make/Tool.cpp | 59 ++ goalc/make/Tool.h | 25 + goalc/make/Tools.cpp | 121 ++++ goalc/make/Tools.h | 57 ++ scripts/emacs/goal-config.el | 2 + scripts/shell/offline_test_git_branch.sh | 7 +- test/goalc/test_with_game.cpp | 4 + test/test_goos.cpp | 14 + 33 files changed, 2208 insertions(+), 72 deletions(-) create mode 100644 goal_src/dgos/engine.gd create mode 100644 goal_src/dgos/game.gd create mode 100644 goal_src/dgos/kernel.gd create mode 100644 goal_src/dgos/vi1.gd create mode 100644 goal_src/game.gp create mode 100644 goalc/make/MakeSystem.cpp create mode 100644 goalc/make/MakeSystem.h create mode 100644 goalc/make/Tool.cpp create mode 100644 goalc/make/Tool.h create mode 100644 goalc/make/Tools.cpp create mode 100644 goalc/make/Tools.h diff --git a/common/goos/Interpreter.cpp b/common/goos/Interpreter.cpp index 990ff4fbaf..3941ee0393 100644 --- a/common/goos/Interpreter.cpp +++ b/common/goos/Interpreter.cpp @@ -72,7 +72,8 @@ Interpreter::Interpreter() { {"string-ref", &Interpreter::eval_string_ref}, {"string-length", &Interpreter::eval_string_length}, {"string-append", &Interpreter::eval_string_append}, - {"ash", &Interpreter::eval_ash}}; + {"ash", &Interpreter::eval_ash}, + {"symbol->string", &Interpreter::eval_symbol_to_string}}; string_to_type = {{"empty-list", ObjectType::EMPTY_LIST}, {"integer", ObjectType::INTEGER}, @@ -90,6 +91,17 @@ Interpreter::Interpreter() { load_goos_library(); } +/*! + * Add a user defined special form. The given function will be called with unevaluated arguments. + * Lookup from these forms occurs after special/builtin, but before any env lookups. + */ +void Interpreter::register_form( + const std::string& name, + const std::function< + Object(const Object&, Arguments&, const std::shared_ptr&)>& form) { + m_custom_forms[name] = form; +} + Interpreter::~Interpreter() { // There are some circular references that prevent shared_ptrs from cleaning up if we // don't do this. @@ -191,6 +203,19 @@ bool Interpreter::get_global_variable_by_name(const std::string& name, Object* d return false; } +/*! + * Sets the variable to the value. Overwrites an existing value, or creates a new global. + */ +void Interpreter::set_global_variable_by_name(const std::string& name, const Object& value) { + auto sym = SymbolObject::make_new(reader.symbolTable, name).as_symbol(); + global_environment.as_env()->vars[sym] = value; +} + +void Interpreter::set_global_variable_to_symbol(const std::string& name, const std::string& value) { + auto sym = SymbolObject::make_new(reader.symbolTable, value); + set_global_variable_by_name(name, sym); +} + /*! * Get arguments being passed to a form. Don't evaluate them. There are two modes, "varargs" and * "not varargs". With varargs enabled, any number of unnamed and named arguments can be given. @@ -525,6 +550,13 @@ Object Interpreter::eval_pair(const Object& obj, const std::shared_ptrsecond))(obj, args, env); } + // try custom forms next + auto kv_u = m_custom_forms.find(head_sym->name); + if (kv_u != m_custom_forms.end()) { + Arguments args = get_args(obj, rest, make_varargs()); + return (kv_u->second)(obj, args, env); + } + // try macros next Object macro_obj; if (try_symbol_lookup(head, env, ¯o_obj) && macro_obj.is_macro()) { @@ -1586,10 +1618,17 @@ Object Interpreter::eval_ash(const Object& form, if (sa >= 0 && sa < 64) { return Object::make_integer(val << sa); } else if (sa > -64) { - return Object::make_integer(val >> sa); + return Object::make_integer(val >> -sa); } else { throw_eval_error(form, fmt::format("Shift amount {} is out of range", sa)); return EmptyListObject::make_new(); } } + +Object Interpreter::eval_symbol_to_string(const Object& form, + Arguments& args, + const std::shared_ptr&) { + vararg_check(form, args, {ObjectType::SYMBOL}, {}); + return StringObject::make_new(args.unnamed.at(0).as_symbol()->name); +} } // namespace goos diff --git a/common/goos/Interpreter.h b/common/goos/Interpreter.h index db82258017..50fb75750a 100644 --- a/common/goos/Interpreter.h +++ b/common/goos/Interpreter.h @@ -19,6 +19,8 @@ class Interpreter { void throw_eval_error(const Object& o, const std::string& err); Object eval_with_rewind(const Object& obj, const std::shared_ptr& env); bool get_global_variable_by_name(const std::string& name, Object* dest); + void set_global_variable_by_name(const std::string& name, const Object& value); + void set_global_variable_to_symbol(const std::string& name, const std::string& value); Object eval(Object obj, const std::shared_ptr& env); Object intern(const std::string& name); void disable_printfs(); @@ -36,6 +38,12 @@ class Interpreter { const std::shared_ptr& env); bool truthy(const Object& o); + void register_form( + const std::string& name, + const std::function< + Object(const Object&, Arguments&, const std::shared_ptr&)>& form); + void eval_args(Arguments* args, const std::shared_ptr& env); + Reader reader; Object global_environment; Object goal_env; @@ -59,7 +67,6 @@ class Interpreter { const std::unordered_map>>& named); Object eval_pair(const Object& o, const std::shared_ptr& env); - void eval_args(Arguments* args, const std::shared_ptr& env); ArgumentSpec parse_arg_spec(const Object& form, Object& rest); Object quasiquote_helper(const Object& form, const std::shared_ptr& env); @@ -198,6 +205,9 @@ class Interpreter { Object eval_ash(const Object& form, Arguments& args, const std::shared_ptr& env); + Object eval_symbol_to_string(const Object& form, + Arguments& args, + const std::shared_ptr& env); // specials Object eval_define(const Object& form, @@ -239,6 +249,11 @@ class Interpreter { Arguments& args, const std::shared_ptr& env)> builtin_forms; + + std::unordered_map< + std::string, + std::function&)>> + m_custom_forms; std::unordered_map f) { // exit if display window was closed if (glfwWindowShouldClose(Display::display)) { // Display::KillDisplay(Display::display); - MasterExit = 1; + MasterExit = 2; } } } diff --git a/goal_src/dgos/engine.gd b/goal_src/dgos/engine.gd new file mode 100644 index 0000000000..44d32faccd --- /dev/null +++ b/goal_src/dgos/engine.gd @@ -0,0 +1,295 @@ +("ENGINE.CGO" + ("types-h.o" "types-h") + ("vu1-macros.o" "vu1-macros") + + ;; the "math" section + ("math.o" "math") + ("vector-h.o" "vector-h") + ("gravity-h.o" "gravity-h") + ("bounding-box-h.o" "bounding-box-h") + ("matrix-h.o" "matrix-h") + ("quaternion-h.o" "quaternion-h") + ("euler-h.o" "euler-h") + ("transform-h.o" "transform-h") + ("geometry-h.o" "geometry-h") + ("trigonometry-h.o" "trigonometry-h") + ("transformq-h.o" "transformq-h") + ("bounding-box.o" "bounding-box") + ("matrix.o" "matrix") + ("transform.o" "transform") + ("quaternion.o" "quaternion") + ("euler.o" "euler") + ("geometry.o" "geometry") + ("trigonometry.o" "trigonometry") + + + ("gsound-h.o" "gsound-h") + ("timer-h.o" "timer-h") + ("timer.o" "timer") + ("vif-h.o" "vif-h") + ("dma-h.o" "dma-h") + ("video-h.o" "video-h") + ("vu1-user-h.o" "vu1-user-h") + ("dma.o" "dma") + ("dma-buffer.o" "dma-buffer") + ("dma-bucket.o" "dma-bucket") + ("dma-disasm.o" "dma-disasm") + ("pad.o" "pad") + ("gs.o" "gs") + ("display-h.o" "display-h") + ("vector.o" "vector") + ("file-io.o" "file-io") + ("loader-h.o" "loader-h") + ("texture-h.o" "texture-h") + ("level-h.o" "level-h") + ("math-camera-h.o" "math-camera-h") + ("math-camera.o" "math-camera") + ("font-h.o" "font-h") + ("decomp-h.o" "decomp-h") + ("display.o" "display") + ("connect.o" "connect") + ("text-h.o" "text-h") + ("settings-h.o" "settings-h") + ("capture.o" "capture") + ("memory-usage-h.o" "memory-usage-h") + ("texture.o" "texture") + ("main-h.o" "main-h") + ("mspace-h.o" "mspace-h") + ("drawable-h.o" "drawable-h") + ("drawable-group-h.o" "drawable-group-h") + ("drawable-inline-array-h.o" "drawable-inline-array-h") + ("draw-node-h.o" "draw-node-h") + ("drawable-tree-h.o" "drawable-tree-h") + ("drawable-actor-h.o" "drawable-actor-h") + ("drawable-ambient-h.o" "drawable-ambient-h") + ("game-task-h.o" "game-task-h") + ("hint-control-h.o" "hint-control-h") + ("generic-h.o" "generic-h") + ("lights-h.o" "lights-h") + ("ocean-h.o" "ocean-h") + ("ocean-trans-tables.o" "ocean-trans-tables") + ("ocean-tables.o" "ocean-tables") + ("ocean-frames.o" "ocean-frames") + ("sky-h.o" "sky-h") + ("mood-h.o" "mood-h") + ("time-of-day-h.o" "time-of-day-h") + ("art-h.o" "art-h") + ("generic-vu1-h.o" "generic-vu1-h") + ("merc-h.o" "merc-h") + ("generic-merc-h.o" "generic-merc-h") + ("generic-tie-h.o" "generic-tie-h") + ("generic-work-h.o" "generic-work-h") + ("shadow-cpu-h.o" "shadow-cpu-h") + ("shadow-vu1-h.o" "shadow-vu1-h") + ("memcard-h.o" "memcard-h") + ("game-info-h.o" "game-info-h") + ("wind-h.o" "wind-h") + ("prototype-h.o" "prototype-h") + ("joint-h.o" "joint-h") + ("bones-h.o" "bones-h") + ("engines.o" "engines") + ("res-h.o" "res-h") + ("res.o" "res") + ("lights.o" "lights") + ("dynamics-h.o" "dynamics-h") + ("surface-h.o" "surface-h") + ("pat-h.o" "pat-h") + ("fact-h.o" "fact-h") + ("aligner-h.o" "aligner-h") + ("game-h.o" "game-h") + ("generic-obs-h.o" "generic-obs-h") + ("pov-camera-h.o" "pov-camera-h") + ("sync-info-h.o" "sync-info-h") + ("smush-control-h.o" "smush-control-h") + ("trajectory-h.o" "trajectory-h") + ("debug-h.o" "debug-h") + ("joint-mod-h.o" "joint-mod-h") + ("collide-func-h.o" "collide-func-h") + ("collide-mesh-h.o" "collide-mesh-h") + ("collide-shape-h.o" "collide-shape-h") + ("collide-target-h.o" "collide-target-h") + ("collide-touch-h.o" "collide-touch-h") + ("collide-edge-grab-h.o" "collide-edge-grab-h") + ("process-drawable-h.o" "process-drawable-h") + ("effect-control-h.o" "effect-control-h") + ("collide-frag-h.o" "collide-frag-h") + ("projectiles-h.o" "projectiles-h") + ("target-h.o" "target-h") + ("depth-cue-h.o" "depth-cue-h") + ("stats-h.o" "stats-h") + ("bsp-h.o" "bsp-h") + ("collide-cache-h.o" "collide-cache-h") + ("collide-h.o" "collide-h") + ("shrubbery-h.o" "shrubbery-h") + ("tie-h.o" "tie-h") + ("tfrag-h.o" "tfrag-h") + ("background-h.o" "background-h") + ("subdivide-h.o" "subdivide-h") + ("entity-h.o" "entity-h") + ("sprite-h.o" "sprite-h") + ("shadow-h.o" "shadow-h") + ("eye-h.o" "eye-h") + ("sparticle-launcher-h.o" "sparticle-launcher-h") + ("sparticle-h.o" "sparticle-h") + ("actor-link-h.o" "actor-link-h") + ("camera-h.o" "camera-h") + ("cam-debug-h.o" "cam-debug-h") + ("cam-interface-h.o" "cam-interface-h") + ("cam-update-h.o" "cam-update-h") + ("assert-h.o" "assert-h") + ("hud-h.o" "hud-h") + ("progress-h.o" "progress-h") + ("rpc-h.o" "rpc-h") + ("path-h.o" "path-h") + ("navigate-h.o" "navigate-h") + ("load-dgo.o" "load-dgo") + ("ramdisk.o" "ramdisk") + ("gsound.o" "gsound") + ("transformq.o" "transformq") + ("collide-func.o" "collide-func") + ("joint.o" "joint") + ("cylinder.o" "cylinder") + ("wind.o" "wind") + ("bsp.o" "bsp") + ("subdivide.o" "subdivide") + ("sprite.o" "sprite") + ("sprite-distort.o" "sprite-distort") + ("debug-sphere.o" "debug-sphere") + ("debug.o" "debug") + ("merc-vu1.o" "merc-vu1") + ("merc-blend-shape.o" "merc-blend-shape") + ("merc.o" "merc") + ("ripple.o" "ripple") + ("bones.o" "bones") + ("generic-vu0.o" "generic-vu0") + ("generic.o" "generic") + ("generic-vu1.o" "generic-vu1") + ("generic-effect.o" "generic-effect") + ("generic-merc.o" "generic-merc") + ("generic-tie.o" "generic-tie") + ("shadow-cpu.o" "shadow-cpu") + ("shadow-vu1.o" "shadow-vu1") + ("depth-cue.o" "depth-cue") + ("font.o" "font") + ("decomp.o" "decomp") + ("background.o" "background") + ("draw-node.o" "draw-node") + ("shrubbery.o" "shrubbery") + ("shrub-work.o" "shrub-work") + ("tfrag-near.o" "tfrag-near") + ("tfrag.o" "tfrag") + ("tfrag-methods.o" "tfrag-methods") + ("tfrag-work.o" "tfrag-work") + ("tie.o" "tie") + ("tie-near.o" "tie-near") + ("tie-work.o" "tie-work") + ("tie-methods.o" "tie-methods") + ("sync-info.o" "sync-info") + ("trajectory.o" "trajectory") + ("sparticle-launcher.o" "sparticle-launcher") + ("sparticle.o" "sparticle") + ("entity-table.o" "entity-table") + ("loader.o" "loader") + ("task-control-h.o" "task-control-h") + ("game-info.o" "game-info") + ("game-save.o" "game-save") + ("settings.o" "settings") + ("mood-tables.o" "mood-tables") + ("mood.o" "mood") + ("weather-part.o" "weather-part") + ("time-of-day.o" "time-of-day") + ("sky-utils.o" "sky-utils") + ("sky.o" "sky") + ("sky-tng.o" "sky-tng") + ("load-boundary-h.o" "load-boundary-h") + ("load-boundary.o" "load-boundary") + ("load-boundary-data.o" "load-boundary-data") + ("level-info.o" "level-info") + ("level.o" "level") + ("text.o" "text") + ("collide-probe.o" "collide-probe") + ("collide-frag.o" "collide-frag") + ("collide-mesh.o" "collide-mesh") + ("collide-touch.o" "collide-touch") + ("collide-edge-grab.o" "collide-edge-grab") + ("collide-shape.o" "collide-shape") + ("collide-shape-rider.o" "collide-shape-rider") + ("collide.o" "collide") + ("collide-planes.o" "collide-planes") + ("merc-death.o" "merc-death") + ("water-h.o" "water-h") + ("camera.o" "camera") + ("cam-interface.o" "cam-interface") + ("cam-master.o" "cam-master") + ("cam-states.o" "cam-states") + ("cam-states-dbg.o" "cam-states-dbg") + ("cam-combiner.o" "cam-combiner") + ("cam-update.o" "cam-update") + ("vol-h.o" "vol-h") + ("cam-layout.o" "cam-layout") + ("cam-debug.o" "cam-debug") + ("cam-start.o" "cam-start") + ("process-drawable.o" "process-drawable") + ("hint-control.o" "hint-control") + ("ambient.o" "ambient") + ("assert.o" "assert") + ("generic-obs.o" "generic-obs") + ("target-util.o" "target-util") + ("target-part.o" "target-part") + ("collide-reaction-target.o" "collide-reaction-target") + ("logic-target.o" "logic-target") + ("sidekick.o" "sidekick") + ("voicebox.o" "voicebox") + ("target-handler.o" "target-handler") + ("target.o" "target") + ("target2.o" "target2") + ("target-death.o" "target-death") + ("menu.o" "menu") + ("drawable.o" "drawable") + ("drawable-group.o" "drawable-group") + ("drawable-inline-array.o" "drawable-inline-array") + ("drawable-tree.o" "drawable-tree") + ("prototype.o" "prototype") + ("main-collide.o" "main-collide") + ("video.o" "video") + ("main.o" "main") + ("collide-cache.o" "collide-cache") + ("relocate.o" "relocate") + ("memory-usage.o" "memory-usage") + ("entity.o" "entity") + ("path.o" "path") + ("vol.o" "vol") + ("navigate.o" "navigate") + ("aligner.o" "aligner") + ("effect-control.o" "effect-control") + ("water.o" "water") + ("collectables-part.o" "collectables-part") + ("collectables.o" "collectables") + ("task-control.o" "task-control") + ("process-taskable.o" "process-taskable") + ("pov-camera.o" "pov-camera") + ("powerups.o" "powerups") + ("crates.o" "crates") + ("hud.o" "hud") + ("hud-classes.o" "hud-classes") + ("progress-static.o" "progress-static") + ("progress-part.o" "progress-part") + ("progress-draw.o" "progress-draw") + ("progress.o" "progress") + ("credits.o" "credits") + ("projectiles.o" "projectiles") + ("ocean.o" "ocean") + ("ocean-vu0.o" "ocean-vu0") + ("ocean-texture.o" "ocean-texture") + ("ocean-mid.o" "ocean-mid") + ("ocean-transition.o" "ocean-transition") + ("ocean-near.o" "ocean-near") + ("shadow.o" "shadow") + ("eye.o" "eye") + ("glist-h.o" "glist-h") + ("glist.o" "glist") + ("anim-tester.o" "anim-tester") + ("viewer.o" "viewer") + ("part-tester.o" "part-tester") + ("default-menu.o" "default-menu") + ) \ No newline at end of file diff --git a/goal_src/dgos/game.gd b/goal_src/dgos/game.gd new file mode 100644 index 0000000000..331d940774 --- /dev/null +++ b/goal_src/dgos/game.gd @@ -0,0 +1,330 @@ +("GAME.CGO" + ("types-h.o" "types-h") + ("vu1-macros.o" "vu1-macros") + ("math.o" "math") + ("vector-h.o" "vector-h") + ("gravity-h.o" "gravity-h") + ("bounding-box-h.o" "bounding-box-h") + ("matrix-h.o" "matrix-h") + ("quaternion-h.o" "quaternion-h") + ("euler-h.o" "euler-h") + ("transform-h.o" "transform-h") + ("geometry-h.o" "geometry-h") + ("trigonometry-h.o" "trigonometry-h") + ("transformq-h.o" "transformq-h") + ("bounding-box.o" "bounding-box") + ("matrix.o" "matrix") + ("transform.o" "transform") + ("quaternion.o" "quaternion") + ("euler.o" "euler") + ("geometry.o" "geometry") + ("trigonometry.o" "trigonometry") + ("gsound-h.o" "gsound-h") + ("timer-h.o" "timer-h") + ("timer.o" "timer") + ("vif-h.o" "vif-h") + ("dma-h.o" "dma-h") + ("video-h.o" "video-h") + ("vu1-user-h.o" "vu1-user-h") + ("dma.o" "dma") + ("dma-buffer.o" "dma-buffer") + ("dma-bucket.o" "dma-bucket") + ("dma-disasm.o" "dma-disasm") + ("pad.o" "pad") + ("gs.o" "gs") + ("display-h.o" "display-h") + ("vector.o" "vector") + ("file-io.o" "file-io") + ("loader-h.o" "loader-h") + ("texture-h.o" "texture-h") + ("level-h.o" "level-h") + ("math-camera-h.o" "math-camera-h") + ("math-camera.o" "math-camera") + ("font-h.o" "font-h") + ("decomp-h.o" "decomp-h") + ("display.o" "display") + ("connect.o" "connect") + ("text-h.o" "text-h") + ("settings-h.o" "settings-h") + ("capture.o" "capture") + ("memory-usage-h.o" "memory-usage-h") + ("texture.o" "texture") + ("main-h.o" "main-h") + ("mspace-h.o" "mspace-h") + ("drawable-h.o" "drawable-h") + ("drawable-group-h.o" "drawable-group-h") + ("drawable-inline-array-h.o" "drawable-inline-array-h") + ("draw-node-h.o" "draw-node-h") + ("drawable-tree-h.o" "drawable-tree-h") + ("drawable-actor-h.o" "drawable-actor-h") + ("drawable-ambient-h.o" "drawable-ambient-h") + ("game-task-h.o" "game-task-h") + ("hint-control-h.o" "hint-control-h") + ("generic-h.o" "generic-h") + ("lights-h.o" "lights-h") + ("ocean-h.o" "ocean-h") + ("ocean-trans-tables.o" "ocean-trans-tables") + ("ocean-tables.o" "ocean-tables") + ("ocean-frames.o" "ocean-frames") + ("sky-h.o" "sky-h") + ("mood-h.o" "mood-h") + ("time-of-day-h.o" "time-of-day-h") + ("art-h.o" "art-h") + ("generic-vu1-h.o" "generic-vu1-h") + ("merc-h.o" "merc-h") + ("generic-merc-h.o" "generic-merc-h") + ("generic-tie-h.o" "generic-tie-h") + ("generic-work-h.o" "generic-work-h") + ("shadow-cpu-h.o" "shadow-cpu-h") + ("shadow-vu1-h.o" "shadow-vu1-h") + ("memcard-h.o" "memcard-h") + ("game-info-h.o" "game-info-h") + ("wind-h.o" "wind-h") + ("prototype-h.o" "prototype-h") + ("joint-h.o" "joint-h") + ("bones-h.o" "bones-h") + ("engines.o" "engines") + ("res-h.o" "res-h") + ("res.o" "res") + ("lights.o" "lights") + ("dynamics-h.o" "dynamics-h") + ("surface-h.o" "surface-h") + ("pat-h.o" "pat-h") + ("fact-h.o" "fact-h") + ("aligner-h.o" "aligner-h") + ("game-h.o" "game-h") + ("generic-obs-h.o" "generic-obs-h") + ("pov-camera-h.o" "pov-camera-h") + ("sync-info-h.o" "sync-info-h") + ("smush-control-h.o" "smush-control-h") + ("trajectory-h.o" "trajectory-h") + ("debug-h.o" "debug-h") + ("joint-mod-h.o" "joint-mod-h") + ("collide-func-h.o" "collide-func-h") + ("collide-mesh-h.o" "collide-mesh-h") + ("collide-shape-h.o" "collide-shape-h") + ("collide-target-h.o" "collide-target-h") + ("collide-touch-h.o" "collide-touch-h") + ("collide-edge-grab-h.o" "collide-edge-grab-h") + ("process-drawable-h.o" "process-drawable-h") + ("effect-control-h.o" "effect-control-h") + ("collide-frag-h.o" "collide-frag-h") + ("projectiles-h.o" "projectiles-h") + ("target-h.o" "target-h") + ("depth-cue-h.o" "depth-cue-h") + ("stats-h.o" "stats-h") + ("bsp-h.o" "bsp-h") + ("collide-cache-h.o" "collide-cache-h") + ("collide-h.o" "collide-h") + ("shrubbery-h.o" "shrubbery-h") + ("tie-h.o" "tie-h") + ("tfrag-h.o" "tfrag-h") + ("background-h.o" "background-h") + ("subdivide-h.o" "subdivide-h") + ("entity-h.o" "entity-h") + ("sprite-h.o" "sprite-h") + ("shadow-h.o" "shadow-h") + ("eye-h.o" "eye-h") + ("sparticle-launcher-h.o" "sparticle-launcher-h") + ("sparticle-h.o" "sparticle-h") + ("actor-link-h.o" "actor-link-h") + ("camera-h.o" "camera-h") + ("cam-debug-h.o" "cam-debug-h") + ("cam-interface-h.o" "cam-interface-h") + ("cam-update-h.o" "cam-update-h") + ("assert-h.o" "assert-h") + ("hud-h.o" "hud-h") + ("progress-h.o" "progress-h") + ("rpc-h.o" "rpc-h") + ("path-h.o" "path-h") + ("navigate-h.o" "navigate-h") + ("load-dgo.o" "load-dgo") + ("ramdisk.o" "ramdisk") + ("gsound.o" "gsound") + ("transformq.o" "transformq") + ("collide-func.o" "collide-func") + ("joint.o" "joint") + ("cylinder.o" "cylinder") + ("wind.o" "wind") + ("bsp.o" "bsp") + ("subdivide.o" "subdivide") + ("sprite.o" "sprite") + ("sprite-distort.o" "sprite-distort") + ("debug-sphere.o" "debug-sphere") + ("debug.o" "debug") + ("merc-vu1.o" "merc-vu1") + ("merc-blend-shape.o" "merc-blend-shape") + ("merc.o" "merc") + ("ripple.o" "ripple") + ("bones.o" "bones") + ("generic-vu0.o" "generic-vu0") + ("generic.o" "generic") + ("generic-vu1.o" "generic-vu1") + ("generic-effect.o" "generic-effect") + ("generic-merc.o" "generic-merc") + ("generic-tie.o" "generic-tie") + ("shadow-cpu.o" "shadow-cpu") + ("shadow-vu1.o" "shadow-vu1") + ("depth-cue.o" "depth-cue") + ("font.o" "font") + ("decomp.o" "decomp") + ("background.o" "background") + ("draw-node.o" "draw-node") + ("shrubbery.o" "shrubbery") + ("shrub-work.o" "shrub-work") + ("tfrag-near.o" "tfrag-near") + ("tfrag.o" "tfrag") + ("tfrag-methods.o" "tfrag-methods") + ("tfrag-work.o" "tfrag-work") + ("tie.o" "tie") + ("tie-near.o" "tie-near") + ("tie-work.o" "tie-work") + ("tie-methods.o" "tie-methods") + ("sync-info.o" "sync-info") + ("trajectory.o" "trajectory") + ("sparticle-launcher.o" "sparticle-launcher") + ("sparticle.o" "sparticle") + ("entity-table.o" "entity-table") + ("loader.o" "loader") + ("task-control-h.o" "task-control-h") + ("game-info.o" "game-info") + ("game-save.o" "game-save") + ("settings.o" "settings") + ("mood-tables.o" "mood-tables") + ("mood.o" "mood") + ("weather-part.o" "weather-part") + ("time-of-day.o" "time-of-day") + ("sky-utils.o" "sky-utils") + ("sky.o" "sky") + ("sky-tng.o" "sky-tng") + ("load-boundary-h.o" "load-boundary-h") + ("load-boundary.o" "load-boundary") + ("load-boundary-data.o" "load-boundary-data") + ("level-info.o" "level-info") + ("level.o" "level") + ("text.o" "text") + ("collide-probe.o" "collide-probe") + ("collide-frag.o" "collide-frag") + ("collide-mesh.o" "collide-mesh") + ("collide-touch.o" "collide-touch") + ("collide-edge-grab.o" "collide-edge-grab") + ("collide-shape.o" "collide-shape") + ("collide-shape-rider.o" "collide-shape-rider") + ("collide.o" "collide") + ("collide-planes.o" "collide-planes") + ("merc-death.o" "merc-death") + ("water-h.o" "water-h") + ("camera.o" "camera") + ("cam-interface.o" "cam-interface") + ("cam-master.o" "cam-master") + ("cam-states.o" "cam-states") + ("cam-states-dbg.o" "cam-states-dbg") + ("cam-combiner.o" "cam-combiner") + ("cam-update.o" "cam-update") + ("vol-h.o" "vol-h") + ("cam-layout.o" "cam-layout") + ("cam-debug.o" "cam-debug") + ("cam-start.o" "cam-start") + ("process-drawable.o" "process-drawable") + ("hint-control.o" "hint-control") + ("ambient.o" "ambient") + ("assert.o" "assert") + ("generic-obs.o" "generic-obs") + ("target-util.o" "target-util") + ("target-part.o" "target-part") + ("collide-reaction-target.o" "collide-reaction-target") + ("logic-target.o" "logic-target") + ("sidekick.o" "sidekick") + ("voicebox.o" "voicebox") + ("target-handler.o" "target-handler") + ("target.o" "target") + ("target2.o" "target2") + ("target-death.o" "target-death") + ("menu.o" "menu") + ("drawable.o" "drawable") + ("drawable-group.o" "drawable-group") + ("drawable-inline-array.o" "drawable-inline-array") + ("drawable-tree.o" "drawable-tree") + ("prototype.o" "prototype") + ("main-collide.o" "main-collide") + ("video.o" "video") + ("main.o" "main") + ("collide-cache.o" "collide-cache") + ("relocate.o" "relocate") + ("memory-usage.o" "memory-usage") + ("entity.o" "entity") + ("path.o" "path") + ("vol.o" "vol") + ("navigate.o" "navigate") + ("aligner.o" "aligner") + ("effect-control.o" "effect-control") + ("water.o" "water") + ("collectables-part.o" "collectables-part") + ("collectables.o" "collectables") + ("task-control.o" "task-control") + ("process-taskable.o" "process-taskable") + ("pov-camera.o" "pov-camera") + ("powerups.o" "powerups") + ("crates.o" "crates") + ("hud.o" "hud") + ("hud-classes.o" "hud-classes") + ("progress-static.o" "progress-static") + ("progress-part.o" "progress-part") + ("progress-draw.o" "progress-draw") + ("progress.o" "progress") + ("credits.o" "credits") + ("projectiles.o" "projectiles") + ("ocean.o" "ocean") + ("ocean-vu0.o" "ocean-vu0") + ("ocean-texture.o" "ocean-texture") + ("ocean-mid.o" "ocean-mid") + ("ocean-transition.o" "ocean-transition") + ("ocean-near.o" "ocean-near") + ("shadow.o" "shadow") + ("eye.o" "eye") + ("glist-h.o" "glist-h") + ("glist.o" "glist") + ("anim-tester.o" "anim-tester") + ("viewer.o" "viewer") + ("part-tester.o" "part-tester") + ("default-menu.o" "default-menu") + ("dir-tpages.go" "dir-tpages") + ("tpage-463.go" "tpage-463") + ("tpage-2.go" "tpage-2") + ("tpage-880.go" "tpage-880") + ("tpage-256.go" "tpage-256") + ("tpage-1278.go" "tpage-1278") + ("texture-upload.o" "texture-upload") + ("tpage-1032.go" "tpage-1032") + ("tpage-62.go" "tpage-62") + ("tpage-1532.go" "tpage-1532") + ("fuel-cell-ag.go" "fuel-cell") + ("money-ag.go" "money") + ("buzzer-ag.go" "buzzer") + ("ecovalve-ag-ART-GAME.go" "ecovalve") + ("crate-ag.go" "crate") + ("speaker-ag.go" "speaker") + ("fuelcell-naked-ag.go" "fuelcell-naked") + ("eichar-ag.go" "eichar") + ("sidekick-ag.go" "sidekick") + ("deathcam-ag.go" "deathcam") + ("game-cnt.go" "game-cnt") + ("rigid-body-h.o" "rigid-body-h") + ("water-anim.o" "water-anim") + ("dark-eco-pool.o" "dark-eco-pool") + ("rigid-body.o" "rigid-body") + ("nav-enemy-h.o" "nav-enemy-h") + ("nav-enemy.o" "nav-enemy") + ("baseplat.o" "baseplat") + ("basebutton.o" "basebutton") + ("tippy.o" "tippy") + ("joint-exploder.o" "joint-exploder") + ("babak.o" "babak") + ("sharkey.o" "sharkey") + ("orb-cache.o" "orb-cache") + ("plat.o" "plat") + ("plat-button.o" "plat-button") + ("plat-eco.o" "plat-eco") + ("ropebridge.o" "ropebridge") + ("ticky.o" "ticky") + ) diff --git a/goal_src/dgos/kernel.gd b/goal_src/dgos/kernel.gd new file mode 100644 index 0000000000..4df9a0e142 --- /dev/null +++ b/goal_src/dgos/kernel.gd @@ -0,0 +1,10 @@ +("KERNEL.CGO" + ("gcommon.o" "gcommon") + ("gstring-h.o" "gstring-h") + ("gkernel-h.o" "gkernel-h") + ("gkernel.o" "gkernel") + ("pskernel.o" "pskernel") + ("gstring.o" "gstring") + ("dgo-h.o" "dgo-h") + ("gstate.o" "gstate") + ) \ No newline at end of file diff --git a/goal_src/dgos/vi1.gd b/goal_src/dgos/vi1.gd new file mode 100644 index 0000000000..150358c84c --- /dev/null +++ b/goal_src/dgos/vi1.gd @@ -0,0 +1,57 @@ +("VI1.DGO" + ("villagep-obs.o" "villagep-obs") + ("oracle.o" "oracle") + ("farmer.o" "farmer") + ("explorer.o" "explorer") + ("assistant.o" "assistant") + ("sage.o" "sage") + ("yakow.o" "yakow") + ("village-obs-VI1.o" "village-obs") + ("fishermans-boat.o" "fishermans-boat") + ("village1-part.o" "village1-part") + ("village1-part2.o" "village1-part2") + ("sequence-a-village1.o" "sequence-a-village1") + ("tpage-398.go" "tpage-398") + ("tpage-400.go" "tpage-400") + ("tpage-399.go" "tpage-399") + ("tpage-401.go" "tpage-401") + ("tpage-1470.go" "tpage-1470") + ("assistant-ag.go" "assistant") + ("evilplant-ag.go" "evilplant") + ("explorer-ag.go" "explorer") + ("farmer-ag.go" "farmer") + ("fishermans-boat-ag.go" "fishermans-boat") + ("hutlamp-ag.go" "hutlamp") + ("mayorgears-ag.go" "mayorgears") + ("medres-beach-ag.go" "medres-beach") + ("medres-beach1-ag.go" "medres-beach1") + ("medres-beach2-ag.go" "medres-beach2") + ("medres-beach3-ag.go" "medres-beach3") + ("medres-jungle-ag.go" "medres-jungle") + ("medres-jungle1-ag.go" "medres-jungle1") + ("medres-jungle2-ag.go" "medres-jungle2") + ("medres-misty-ag.go" "medres-misty") + ("medres-training-ag.go" "medres-training") + ("medres-village11-ag.go" "medres-village11") + ("medres-village12-ag.go" "medres-village12") + ("medres-village13-ag.go" "medres-village13") + ("oracle-ag-VI1.go" "oracle") + ("orb-cache-top-ag-VI1.go" "orb-cache-top") + ("reflector-middle-ag.go" "reflector-middle") + ("revcycle-ag.go" "revcycle") + ("revcycleprop-ag.go" "revcycleprop") + ("ropebridge-32-ag.go" "ropebridge-32") + ("sage-ag.go" "sage") + ("sagesail-ag.go" "sagesail") + ("sharkey-ag-VI1.go" "sharkey") + ("villa-starfish-ag.go" "villa-starfish") + ("village-cam-ag-VI1.go" "village-cam") + ("village1cam-ag.go" "village1cam") + ("warp-gate-switch-ag-VI1-VI3.go" "warp-gate-switch") + ("warpgate-ag.go" "warpgate") + ("water-anim-village1-ag.go" "water-anim-village1") + ("windmill-sail-ag.go" "windmill-sail") + ("windspinner-ag.go" "windspinner") + ("yakow-ag.go" "yakow") + ("village1-vis.go" "village1-vis") + ) \ No newline at end of file diff --git a/goal_src/engine/ui/text.gc b/goal_src/engine/ui/text.gc index af762a8bfd..9dde22be71 100644 --- a/goal_src/engine/ui/text.gc +++ b/goal_src/engine/ui/text.gc @@ -189,6 +189,8 @@ (s3-1 s2-1 (-> *temp-string* data) load-status heap 0) ) ) + (format 0 "loaded text ~A~%" *common-text*) + (format 0 "~A~%" (lookup-text! *common-text* (game-text-id continue-without-saving) #f)) ) (if (<= (the-as int (-> curr-text value)) 0) (set! (-> curr-text value) (the-as object #f)) @@ -196,6 +198,7 @@ ) (set! v0-2 0) (label cfg-27) + v0-2 ) diff --git a/goal_src/game.gp b/goal_src/game.gp new file mode 100644 index 0000000000..e2bced6698 --- /dev/null +++ b/goal_src/game.gp @@ -0,0 +1,626 @@ +;;-*-Lisp-*- + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Jak 1 Project File +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; This file sets up the OpenGOAL build system for Jak 1. + +;;;;;;;;;;;;;;;;;;;;;;; +;; Build system macros +;;;;;;;;;;;;;;;;;;;;;;; + +;; use defmacro to define goos macros. +(define defmacro defsmacro) +(define defun desfun) + +(defun gc-file->o-file (filename) + "Get the name of the object file for the given GOAL (*.gc) source file." + (string-append "out/obj/" (stem filename) ".o") + ) + +(defmacro goal-src (src-file &rest deps) + "Add a GOAL source file with the given dependencies" + `(defstep :in ,(string-append "goal_src/" src-file) + ;; use goal compiler + :tool 'goalc + ;; will output the obj file + :out '(,(gc-file->o-file src-file)) + ;; dependencies are the obj files + :dep '(,@(apply gc-file->o-file deps)) + ) + ) + +(defun make-src-sequence-elt (current previous prefix) + "Helper for goal-src-sequence" + `(defstep :in ,(string-append "goal_src/" prefix current) + :tool 'goalc + :out '(,(gc-file->o-file current)) + :dep '(#|"iso/KERNEL.CGO"|# + ,(gc-file->o-file previous)) + ) + ) + +(defmacro goal-src-sequence (prefix &key (deps '()) &rest sequence) + "Add a sequence of GOAL files (each depending on the previous) in the given directory, + with all depending on the given deps." + (let* ((first-thing `(goal-src ,(string-append prefix (first sequence)) ,@deps)) + (result (cons first-thing '())) + (iter result)) + + (let ((prev (first sequence)) + (in-iter (rest sequence))) + + (while (not (null? in-iter)) + ;; (fmt #t "{} dep on {}\n" (first in-iter) prev) + (let ((next (make-src-sequence-elt (first in-iter) prev prefix))) + (set-cdr! iter (cons next '())) + (set! iter (cdr iter)) + ) + + (set! prev (car in-iter)) + (set! in-iter (cdr in-iter)) + ) + ) + + `(begin ,@result) + ) + ) + +(defmacro cgo (output-name desc-file-name &rest objs) + "Add a CGO with the given output name (in out/iso) and input name (in goal_src/dgos)" + `(defstep :in ,(string-append "goal_src/dgos/" desc-file-name) + :tool 'dgo + :out '(,(string-append "out/iso/" output-name)) + ) + ) + +(defun tpage-name (id) + (fmt #f "tpage-{}.go" id) + ) + +(defmacro copy-texture (tpage-id) + `(defstep :in ,(string-append "decompiler_out/raw_obj/" (tpage-name tpage-id)) + :tool 'copy + :out '(,(string-append "out/obj/" (tpage-name tpage-id))) + ) + ) + +(defmacro copy-textures (&rest ids) + `(begin + ,@(apply (lambda (x) `(copy-texture ,x)) ids) + ) + ) + +(defmacro copy-go (name) + `(defstep :in ,(string-append "decompiler_out/raw_obj/" name ".go") + :tool 'copy + :out '(,(string-append "out/obj/" name ".go")) + ) + ) + +(defmacro copy-gos (&rest gos) + `(begin + ,@(apply (lambda (x) `(copy-go ,x)) gos) + ) + ) + +(defmacro group (name &rest stuff) + `(defstep :in "" + :tool 'group + :out '(,(string-append "GROUP:" name)) + :dep '(,@stuff)) + ) + +;;;;;;;;;;;;;;;;;;;;;; +;; CGO's +;;;;;;;;;;;;;;;;;;;;;; +(cgo "KERNEL.CGO" "kernel.gd") +(cgo "ENGINE.CGO" "engine.gd") +(cgo "GAME.CGO" "game.gd") + +;;;;;;;;;;;;;;;;; +;; GOAL Kernel +;;;;;;;;;;;;;;;;; + +;; These are set up with proper dependencies + +(goal-src "kernel/gcommon.gc") +(goal-src "kernel/gstring-h.gc") +(goal-src "kernel/gkernel-h.gc" + "gcommon" + "gstring-h") +(goal-src "kernel/gkernel.gc" + "gkernel-h") +(goal-src "kernel/pskernel.gc" + "gcommon" + "gkernel-h") +(goal-src "kernel/gstring.gc" + "gcommon" + "gstring-h") +(goal-src "kernel/dgo-h.gc") +(goal-src "kernel/gstate.gc" + "gkernel") + + +;;;;;;;;;;;;;;;;;;;;;;;; +;; Weird special things +;;;;;;;;;;;;;;;;;;;;;;;; + +;; The tpage directory +(defstep :in "assets/tpage-dir.txt" + :tool 'tpage-dir + :out '("out/obj/dir-tpages.go") + ) + +;; the count file. +(defstep :in "assets/game_count.txt" + :tool 'game-cnt + :out '("out/obj/game-cnt.go") + ) + + +;;;;;;;;;;;;;;;;;;;;; +;; Textures (Common) +;;;;;;;;;;;;;;;;;;;;; + +(copy-textures 463 2 880 256 1278 1032 62 1532) + + +;;;;;;;;;;;;;;;;;;;;; +;; Art (Common) +;;;;;;;;;;;;;;;;;;;;; + +(copy-gos + "fuel-cell-ag" + "money-ag" + "buzzer-ag" + "ecovalve-ag-ART-GAME" + "crate-ag" + "speaker-ag" + "fuelcell-naked-ag" + "eichar-ag" + "sidekick-ag" + "deathcam-ag" + ) + +;;;;;;;;;;;;;;;;;;;;; +;; Text +;;;;;;;;;;;;;;;;;;;;; + +(defstep :in "assets/game_text.txt" + :tool 'text + :out '("out/iso/0COMMON.TXT" + "out/iso/1COMMON.TXT" + "out/iso/2COMMON.TXT" + "out/iso/3COMMON.TXT" + "out/iso/4COMMON.TXT" + "out/iso/5COMMON.TXT" + "out/iso/6COMMON.TXT") + ) + + +;;;;;;;;;;;;;;;;;;;;; +;; ISO Group +;;;;;;;;;;;;;;;;;;;;; +;; the iso group is a group of files required to boot. + +(group "iso" + "out/iso/0COMMON.TXT" + "out/iso/KERNEL.CGO" + "out/iso/GAME.CGO" + "out/iso/VI1.DGO" + ) + + +;;;;;;;;;;;;;;;;;;;;; +;; Village 1 +;;;;;;;;;;;;;;;;;;;;; + +;; the definition for the DGO file. +(cgo "VI1.DGO" + "vi1.gd" + ) + +;; the code +(goal-src-sequence + "levels/" + :deps ;; no idea what these depend on, make it depend on the whole engine + ("out/obj/default-menu.o") + + "village_common/villagep-obs.gc" + "village_common/oracle.gc" + "village1/farmer.gc" + "village1/explorer.gc" + "village1/assistant.gc" + "village1/sage.gc" + "village1/yakow.gc" + "village1/village-obs-VI1.gc" + "village1/fishermans-boat.gc" + "village1/village1-part.gc" + "village1/village1-part2.gc" + "village1/sequence-a-village1.gc" + ) + +;; the textures +(copy-textures 398 400 399 401 1470) + +;; the art +(copy-gos + "assistant-ag" + "evilplant-ag" + "explorer-ag" + "farmer-ag" + "fishermans-boat-ag" + "hutlamp-ag" + "mayorgears-ag" + "medres-beach-ag" + "medres-beach1-ag" + "medres-beach2-ag" + "medres-beach3-ag" + "medres-jungle-ag" + "medres-jungle1-ag" + "medres-jungle2-ag" + "medres-misty-ag" + "medres-training-ag" + "medres-village11-ag" + "medres-village12-ag" + "medres-village13-ag" + "oracle-ag-VI1" + "orb-cache-top-ag-VI1" + "reflector-middle-ag" + "revcycle-ag" + "revcycleprop-ag" + "ropebridge-32-ag" + "sage-ag" + "sagesail-ag" + "sharkey-ag-VI1" + "villa-starfish-ag" + "village-cam-ag-VI1" + "village1cam-ag" + "warp-gate-switch-ag-VI1-VI3" + "warpgate-ag" + "water-anim-village1-ag" + "windmill-sail-ag" + "windspinner-ag" + "yakow-ag" + "village1-vis" + ) + + +;;;;;;;;;;;;;;;;;;;;; +;; Game Engine Code +;;;;;;;;;;;;;;;;;;;;; + +;; We don't know the actual dependencies, but the build +;; order is a possibly ordering, and the goal-src-sequence +;; will force these to always build in this order. + +(goal-src-sequence + ;; prefix + "engine/" + + :deps + ("out/obj/gcommon.o" + "out/obj/gstate.o" + "out/obj/gstring.o" + "out/obj/gkernel.o" + ) + + ;; sources + "util/types-h.gc" + "ps2/vu1-macros.gc" + "math/math.gc" + "math/vector-h.gc" + "physics/gravity-h.gc" + "geometry/bounding-box-h.gc" + "math/matrix-h.gc" + "math/quaternion-h.gc" + "math/euler-h.gc" + "math/transform-h.gc" + "geometry/geometry-h.gc" + "math/trigonometry-h.gc" + "math/transformq-h.gc" + "geometry/bounding-box.gc" + "math/matrix.gc" + "math/transform.gc" + "math/quaternion.gc" + "math/euler.gc" + "geometry/geometry.gc" + "math/trigonometry.gc" + "sound/gsound-h.gc" + "ps2/timer-h.gc" + "ps2/timer.gc" + "ps2/vif-h.gc" + "dma/dma-h.gc" + "gfx/hw/video-h.gc" + "gfx/hw/vu1-user-h.gc" + "dma/dma.gc" + "dma/dma-buffer.gc" + "dma/dma-bucket.gc" + "dma/dma-disasm.gc" + "ps2/pad.gc" + "gfx/hw/gs.gc" + "gfx/hw/display-h.gc" + "math/vector.gc" + "load/file-io.gc" + "load/loader-h.gc" + "gfx/texture-h.gc" + "level/level-h.gc" + "camera/math-camera-h.gc" + "camera/math-camera.gc" + "gfx/font-h.gc" + "gfx/decomp-h.gc" + "gfx/hw/display.gc" + "engine/connect.gc" + "ui/text-h.gc" + "game/settings-h.gc" + "gfx/capture.gc" + "debug/memory-usage-h.gc" + "gfx/texture.gc" + "game/main-h.gc" + "anim/mspace-h.gc" + "draw/drawable-h.gc" + "draw/drawable-group-h.gc" + "draw/drawable-inline-array-h.gc" + "draw/draw-node-h.gc" + "draw/drawable-tree-h.gc" + "draw/drawable-actor-h.gc" + "draw/drawable-ambient-h.gc" + "game/task/game-task-h.gc" + "game/task/hint-control-h.gc" + "gfx/generic/generic-h.gc" + "gfx/lights-h.gc" + "gfx/ocean/ocean-h.gc" + "gfx/ocean/ocean-trans-tables.gc" + "gfx/ocean/ocean-tables.gc" + "gfx/ocean/ocean-frames.gc" + "gfx/sky/sky-h.gc" + "gfx/mood-h.gc" + "gfx/time-of-day-h.gc" + "data/art-h.gc" + "gfx/generic/generic-vu1-h.gc" + "gfx/merc/merc-h.gc" + "gfx/merc/generic-merc-h.gc" + "gfx/tie/generic-tie-h.gc" + "gfx/generic/generic-work-h.gc" + "gfx/shadow/shadow-cpu-h.gc" + "gfx/shadow/shadow-vu1-h.gc" + "ps2/memcard-h.gc" + "game/game-info-h.gc" + "gfx/wind-h.gc" + "gfx/tie/prototype-h.gc" + "anim/joint-h.gc" + "anim/bones-h.gc" + "engine/engines.gc" + "data/res-h.gc" + "data/res.gc" + "gfx/lights.gc" + "physics/dynamics-h.gc" + "target/surface-h.gc" + "target/pat-h.gc" + "game/fact-h.gc" + "anim/aligner-h.gc" + "game/game-h.gc" + "game/generic-obs-h.gc" + "camera/pov-camera-h.gc" + "util/sync-info-h.gc" + "util/smush-control-h.gc" + "physics/trajectory-h.gc" + "debug/debug-h.gc" + "target/joint-mod-h.gc" + "collide/collide-func-h.gc" + "collide/collide-mesh-h.gc" + "collide/collide-shape-h.gc" + "collide/collide-target-h.gc" + "collide/collide-touch-h.gc" + "collide/collide-edge-grab-h.gc" + "draw/process-drawable-h.gc" + "game/effect-control-h.gc" + "collide/collide-frag-h.gc" + "game/projectiles-h.gc" + "target/target-h.gc" + "gfx/depth-cue-h.gc" + "debug/stats-h.gc" + "gfx/vis/bsp-h.gc" + "collide/collide-cache-h.gc" + "collide/collide-h.gc" + "gfx/shrub/shrubbery-h.gc" + "gfx/tie/tie-h.gc" + "gfx/tfrag/tfrag-h.gc" + "gfx/background-h.gc" + "gfx/tfrag/subdivide-h.gc" + "entity/entity-h.gc" + "gfx/sprite/sprite-h.gc" + "gfx/shadow/shadow-h.gc" + "gfx/eye-h.gc" + "sparticle/sparticle-launcher-h.gc" + "sparticle/sparticle-h.gc" + "entity/actor-link-h.gc" + "camera/camera-h.gc" + "camera/cam-debug-h.gc" + "camera/cam-interface-h.gc" + "camera/cam-update-h.gc" + "debug/assert-h.gc" + "ui/hud-h.gc" + "ui/progress-h.gc" + "ps2/rpc-h.gc" + "nav/path-h.gc" + "nav/navigate-h.gc" + "load/load-dgo.gc" + "load/ramdisk.gc" + "sound/gsound.gc" + "math/transformq.gc" + "collide/collide-func.gc" + "anim/joint.gc" + "geometry/cylinder.gc" + "gfx/wind.gc" + "gfx/vis/bsp.gc" + "gfx/tfrag/subdivide.gc" + "gfx/sprite/sprite.gc" + "gfx/sprite/sprite-distort.gc" + "debug/debug-sphere.gc" + "debug/debug.gc" + "gfx/merc/merc-vu1.gc" + "gfx/merc/merc-blend-shape.gc" + "gfx/merc/merc.gc" + "gfx/ripple.gc" + "anim/bones.gc" + "gfx/generic/generic-vu0.gc" + "gfx/generic/generic.gc" + "gfx/generic/generic-vu1.gc" + "gfx/generic/generic-effect.gc" + "gfx/generic/generic-merc.gc" + "gfx/generic/generic-tie.gc" + "gfx/shadow/shadow-cpu.gc" + "gfx/shadow/shadow-vu1.gc" + "gfx/depth-cue.gc" + "gfx/font.gc" + "load/decomp.gc" + "gfx/background.gc" + "draw/draw-node.gc" + "gfx/shrub/shrubbery.gc" + "gfx/shrub/shrub-work.gc" + "gfx/tfrag/tfrag-near.gc" + "gfx/tfrag/tfrag.gc" + "gfx/tfrag/tfrag-methods.gc" + "gfx/tfrag/tfrag-work.gc" + "gfx/tie/tie.gc" + "gfx/tie/tie-near.gc" + "gfx/tie/tie-work.gc" + "gfx/tie/tie-methods.gc" + "util/sync-info.gc" + "physics/trajectory.gc" + "sparticle/sparticle-launcher.gc" + "sparticle/sparticle.gc" + "entity/entity-table.gc" + "load/loader.gc" + "game/task/task-control-h.gc" + "game/game-info.gc" + "game/game-save.gc" + "game/settings.gc" + "ambient/mood-tables.gc" + "ambient/mood.gc" + "ambient/weather-part.gc" + "gfx/time-of-day.gc" + "gfx/sky/sky-utils.gc" + "gfx/sky/sky.gc" + "gfx/sky/sky-tng.gc" + "level/load-boundary-h.gc" + "level/load-boundary.gc" + "level/load-boundary-data.gc" + "level/level-info.gc" + "level/level.gc" + "ui/text.gc" + "collide/collide-probe.gc" + "collide/collide-frag.gc" + "collide/collide-mesh.gc" + "collide/collide-touch.gc" + "collide/collide-edge-grab.gc" + "collide/collide-shape.gc" + "collide/collide-shape-rider.gc" + "collide/collide.gc" + "collide/collide-planes.gc" + "gfx/merc/merc-death.gc" + "gfx/water/water-h.gc" + "camera/camera.gc" + "camera/cam-interface.gc" + "camera/cam-master.gc" + "camera/cam-states.gc" + "camera/cam-states-dbg.gc" + "camera/cam-combiner.gc" + "camera/cam-update.gc" + "geometry/vol-h.gc" + "camera/cam-layout.gc" + "camera/cam-debug.gc" + "camera/cam-start.gc" + "draw/process-drawable.gc" + "game/task/hint-control.gc" + "ambient/ambient.gc" + "debug/assert.gc" + "game/generic-obs.gc" + "target/target-util.gc" + "target/target-part.gc" + "collide/collide-reaction-target.gc" + "target/logic-target.gc" + "target/sidekick.gc" + "game/voicebox.gc" + "target/target-handler.gc" + "target/target.gc" + "target/target2.gc" + "target/target-death.gc" + "debug/menu.gc" + "draw/drawable.gc" + "draw/drawable-group.gc" + "draw/drawable-inline-array.gc" + "draw/drawable-tree.gc" + "gfx/tie/prototype.gc" + "collide/main-collide.gc" + "game/video.gc" + "game/main.gc" + "collide/collide-cache.gc" + "entity/relocate.gc" + "debug/memory-usage.gc" + "entity/entity.gc" + "nav/path.gc" + "geometry/vol.gc" + "nav/navigate.gc" + "anim/aligner.gc" + "game/effect-control.gc" + "gfx/water/water.gc" + "game/collectables-part.gc" + "game/collectables.gc" + "game/task/task-control.gc" + "game/task/process-taskable.gc" + "camera/pov-camera.gc" + "game/powerups.gc" + "game/crates.gc" + "ui/hud.gc" + "ui/hud-classes.gc" + "ui/progress/progress-static.gc" + "ui/progress/progress-part.gc" + "ui/progress/progress-draw.gc" + "ui/progress/progress.gc" + "ui/credits.gc" + "game/projectiles.gc" + "gfx/ocean/ocean.gc" + "gfx/ocean/ocean-vu0.gc" + "gfx/ocean/ocean-texture.gc" + "gfx/ocean/ocean-mid.gc" + "gfx/ocean/ocean-transition.gc" + "gfx/ocean/ocean-near.gc" + "gfx/shadow/shadow.gc" + "gfx/eye.gc" + "util/glist-h.gc" + "util/glist.gc" + "debug/anim-tester.gc" + "debug/viewer.gc" + "debug/part-tester.gc" + "debug/default-menu.gc" + ) + +(goal-src-sequence + "levels/common/" + :deps ("out/obj/default-menu.o") + "texture-upload.gc" + "rigid-body-h.gc" + "water-anim.gc" + "dark-eco-pool.gc" + "rigid-body.gc" + "nav-enemy-h.gc" + "nav-enemy.gc" + "baseplat.gc" + "basebutton.gc" + "tippy.gc" + "joint-exploder.gc" + "babak.gc" + "sharkey.gc" + "orb-cache.gc" + "plat.gc" + "plat-button.gc" + "plat-eco.gc" + "ropebridge.gc" + "ticky.gc" + ) + + diff --git a/goal_src/goal-lib.gc b/goal_src/goal-lib.gc index 3c01a6d466..4f69000dcf 100644 --- a/goal_src/goal-lib.gc +++ b/goal_src/goal-lib.gc @@ -625,3 +625,33 @@ (defmacro fake-asm (asm-name &rest args) `(defmacro ,asm-name (,@args) `(none)) ) + + +;;;;;;;;;;;;;;;;;;;;;;;;; +;; Build System +;;;;;;;;;;;;;;;;;;;;;;;;; + +(defmacro makeo (object-name &rest flags) + "Make the given object. Can use a string, or not." + `(make ,(string-append + "out/obj/" + (if (string? object-name) object-name (symbol->string object-name)) + ".o" + ) + ,@flags) + ) + +(defmacro make-cgo (file) + `(make ,(string-append "out/iso/" file ".CGO")) + ) + +(defmacro make-dgo (file) + `(make ,(string-append "out/iso/" file ".DGO")) + ) + +(defmacro make-group (name &key (verbose #f) &key (force #f)) + `(make ,(string-append "GROUP:" name) :verbose ,verbose :force ,force) + ) + +;; load the default project +(load-project "goal_src/game.gp") diff --git a/goalc/CMakeLists.txt b/goalc/CMakeLists.txt index c5b6a9c006..02824890e8 100644 --- a/goalc/CMakeLists.txt +++ b/goalc/CMakeLists.txt @@ -34,6 +34,9 @@ add_library(compiler debugger/DebugInfo.cpp listener/Listener.cpp listener/MemoryMap.cpp + make/MakeSystem.cpp + make/Tool.cpp + make/Tools.cpp regalloc/IRegister.cpp regalloc/Allocator.cpp regalloc/allocate.cpp @@ -42,15 +45,15 @@ add_library(compiler target_link_libraries(compiler common Zydis) -if(WIN32) +if (WIN32) target_link_libraries(compiler mman) -endif() +endif () -if(UNIX) +if (UNIX) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2") -elseif(WIN32) +elseif (WIN32) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /O2") -endif() +endif () add_executable(goalc main.cpp) target_link_libraries(goalc common Zydis compiler) diff --git a/goalc/compiler/Compiler.cpp b/goalc/compiler/Compiler.cpp index edc4c59f10..37f702d729 100644 --- a/goalc/compiler/Compiler.cpp +++ b/goalc/compiler/Compiler.cpp @@ -1,11 +1,12 @@ #include "Compiler.h" -#include "common/link_types.h" -#include "IR.h" -#include "goalc/regalloc/allocate.h" -#include "third-party/fmt/core.h" -#include "CompilerException.h" #include #include +#include "CompilerException.h" +#include "IR.h" +#include "common/link_types.h" +#include "goalc/make/Tools.h" +#include "goalc/regalloc/allocate.h" +#include "third-party/fmt/core.h" using namespace goos; @@ -16,7 +17,10 @@ Compiler::Compiler(std::unique_ptr repl) m_global_env = std::make_unique(); m_none = std::make_unique(m_ts.make_typespec("none")); - // compile GOAL library + // let the build system run us + m_make.add_tool(std::make_shared(this)); + + // load GOAL library Object library_code = m_goos.reader.read_from_file({"goal_src", "goal-lib.gc"}); compile_object_file("goal-lib", library_code, false); @@ -410,3 +414,7 @@ void Compiler::typecheck_reg_type_allow_false(const goos::Object& form, } typecheck(form, expected, coerce_to_reg_type(actual->type()), error_message); } + +bool Compiler::knows_object_file(const std::string& name) { + return m_debugger.knows_object(name); +} \ No newline at end of file diff --git a/goalc/compiler/Compiler.h b/goalc/compiler/Compiler.h index 56353295d1..cc58e00790 100644 --- a/goalc/compiler/Compiler.h +++ b/goalc/compiler/Compiler.h @@ -2,19 +2,22 @@ #include #include -#include "common/type_system/TypeSystem.h" -#include "Env.h" -#include "goalc/listener/Listener.h" + +#include "third-party/fmt/color.h" +#include "third-party/fmt/core.h" + #include "common/goos/Interpreter.h" +#include "common/goos/ReplUtils.h" +#include "common/type_system/TypeSystem.h" +#include "goalc/compiler/CompilerException.h" +#include "goalc/compiler/CompilerSettings.h" +#include "goalc/compiler/Env.h" #include "goalc/compiler/IR.h" +#include "goalc/compiler/SymbolInfo.h" #include "goalc/debugger/Debugger.h" #include "goalc/emitter/Register.h" -#include "CompilerSettings.h" -#include "third-party/fmt/core.h" -#include "third-party/fmt/color.h" -#include "CompilerException.h" -#include "goalc/compiler/SymbolInfo.h" -#include "common/goos/ReplUtils.h" +#include "goalc/listener/Listener.h" +#include "goalc/make/MakeSystem.h" enum MathMode { MATH_INT, MATH_BINT, MATH_FLOAT, MATH_INVALID }; @@ -56,8 +59,26 @@ class Compiler { void repl_coloring(std::string const& str, Replxx::colors_t& colors, std::vector> const& user_data); + bool knows_object_file(const std::string& name); private: + TypeSystem m_ts; + std::unique_ptr m_global_env = nullptr; + std::unique_ptr m_none = nullptr; + bool m_want_exit = false; + bool m_want_reload = false; + listener::Listener m_listener; + Debugger m_debugger; + goos::Interpreter m_goos; + std::unordered_map m_symbol_types; + std::unordered_map, goos::Object> m_global_constants; + std::unordered_map, LambdaVal*> m_inlineable_functions; + CompilerSettings m_settings; + bool m_throw_on_define_extern_redefinition = false; + SymbolInfoMap m_symbol_info; + std::unique_ptr m_repl; + MakeSystem m_make; + std::set lookup_symbol_infos_starting_with(const std::string& prefix) const; std::vector* lookup_exact_name_info(const std::string& name) const; bool get_true_or_false(const goos::Object& form, const goos::Object& boolean); @@ -223,22 +244,6 @@ class Compiler { std::string make_symbol_info_description(const SymbolInfo& info); - TypeSystem m_ts; - std::unique_ptr m_global_env = nullptr; - std::unique_ptr m_none = nullptr; - bool m_want_exit = false; - bool m_want_reload = false; - listener::Listener m_listener; - Debugger m_debugger; - goos::Interpreter m_goos; - std::unordered_map m_symbol_types; - std::unordered_map, goos::Object> m_global_constants; - std::unordered_map, LambdaVal*> m_inlineable_functions; - CompilerSettings m_settings; - bool m_throw_on_define_extern_redefinition = false; - SymbolInfoMap m_symbol_info; - std::unique_ptr m_repl; - MathMode get_math_mode(const TypeSpec& ts); bool is_number(const TypeSpec& ts); bool is_float(const TypeSpec& ts); @@ -492,6 +497,8 @@ class Compiler { Val* compile_add_macro_to_autocomplete(const goos::Object& form, const goos::Object& rest, Env* env); + Val* compile_load_project(const goos::Object& form, const goos::Object& rest, Env* env); + Val* compile_make(const goos::Object& form, const goos::Object& rest, Env* env); // ControlFlow Condition compile_condition(const goos::Object& condition, Env* env, bool invert); diff --git a/goalc/compiler/compilation/Atoms.cpp b/goalc/compiler/compilation/Atoms.cpp index f1b03485ea..611cc663bb 100644 --- a/goalc/compiler/compilation/Atoms.cpp +++ b/goalc/compiler/compilation/Atoms.cpp @@ -128,6 +128,8 @@ const std::unordered_map< {"get-info", &Compiler::compile_get_info}, {"autocomplete", &Compiler::compile_autocomplete}, {"add-macro-to-autocomplete", &Compiler::compile_add_macro_to_autocomplete}, + {"load-project", &Compiler::compile_load_project}, + {"make", &Compiler::compile_make}, // CONDITIONAL COMPILATION {"#cond", &Compiler::compile_gscond}, diff --git a/goalc/compiler/compilation/CompilerControl.cpp b/goalc/compiler/compilation/CompilerControl.cpp index 2a945be967..05deb05568 100644 --- a/goalc/compiler/compilation/CompilerControl.cpp +++ b/goalc/compiler/compilation/CompilerControl.cpp @@ -4,18 +4,19 @@ */ #include -#include "goalc/compiler/Compiler.h" -#include "goalc/compiler/IR.h" -#include "common/util/Timer.h" -#include "common/util/DgoWriter.h" -#include "common/util/FileUtil.h" -#include "goalc/data_compiler/game_text.h" -#include "goalc/data_compiler/game_count.h" -#include "goalc/data_compiler/dir_tpages.h" -#include "common/goos/ReplUtils.h" #include #include +#include "common/goos/ReplUtils.h" +#include "common/util/DgoWriter.h" +#include "common/util/FileUtil.h" +#include "common/util/Timer.h" +#include "goalc/compiler/Compiler.h" +#include "goalc/compiler/IR.h" +#include "goalc/data_compiler/dir_tpages.h" +#include "goalc/data_compiler/game_count.h" +#include "goalc/data_compiler/game_text.h" + /*! * Exit the compiler. Disconnects the listener and tells the target to reset itself. * Will actually exit the next time the REPL runs. @@ -90,6 +91,7 @@ Val* Compiler::compile_asm_file(const goos::Object& form, const goos::Object& re bool write = false; bool no_code = false; bool disassemble = false; + bool no_time_prints = false; std::vector> timing; Timer total_timer; @@ -120,6 +122,8 @@ Val* Compiler::compile_asm_file(const goos::Object& form, const goos::Object& re } else if (setting == ":disassemble") { disassemble = true; last_was_disasm = true; + } else if (setting == ":no-time-prints") { + no_time_prints = true; } else { throw_compiler_error(form, "The option {} was not recognized for asm-file.", setting); } @@ -208,7 +212,7 @@ Val* Compiler::compile_asm_file(const goos::Object& form, const goos::Object& re printf("\n"); } else { auto total_time = total_timer.getMs(); - if (total_time > 10.0 && color) { + if (total_time > 10.0 && color && !no_time_prints) { fmt::print("[ASM-FILE] {} took {:.2f} ms\n", obj_file_name, total_time); } } @@ -574,4 +578,30 @@ std::vector* Compiler::lookup_exact_name_info(const std::string& nam } else { return nullptr; } +} + +Val* Compiler::compile_load_project(const goos::Object& form, const goos::Object& rest, Env*) { + auto args = get_va(form, rest); + va_check(form, args, {goos::ObjectType::STRING}, {}); + m_make.load_project_file(args.unnamed.at(0).as_string()->data); + return get_none(); +} + +Val* Compiler::compile_make(const goos::Object& form, const goos::Object& rest, Env*) { + auto args = get_va(form, rest); + va_check(form, args, {goos::ObjectType::STRING}, + {{"force", {false, {goos::ObjectType::SYMBOL}}}, + {"verbose", {false, {goos::ObjectType::SYMBOL}}}}); + bool force = false; + if (args.has_named("force")) { + force = get_true_or_false(form, args.get_named("force")); + } + + bool verbose = false; + if (args.has_named("verbose")) { + verbose = get_true_or_false(form, args.get_named("verbose")); + } + + m_make.make(args.unnamed.at(0).as_string()->data, force, verbose); + return get_none(); } \ No newline at end of file diff --git a/goalc/data_compiler/dir_tpages.cpp b/goalc/data_compiler/dir_tpages.cpp index 37dca4041c..93b2449803 100644 --- a/goalc/data_compiler/dir_tpages.cpp +++ b/goalc/data_compiler/dir_tpages.cpp @@ -8,8 +8,6 @@ void compile_dir_tpages(const std::string& filename) { std::vector lengths; - printf("[Build tpage dir] %s\n", filename.c_str()); - goos::Reader reader; auto code = reader.read_from_file({filename}); std::string err; diff --git a/goalc/data_compiler/game_count.cpp b/goalc/data_compiler/game_count.cpp index c15a5b17ac..0edcf726bd 100644 --- a/goalc/data_compiler/game_count.cpp +++ b/goalc/data_compiler/game_count.cpp @@ -6,7 +6,6 @@ #include "game_count.h" void compile_game_count(const std::string& filename) { - printf("[Build Game Count] %s\n", filename.c_str()); struct Count { int buzzer; int money; diff --git a/goalc/debugger/Debugger.cpp b/goalc/debugger/Debugger.cpp index ffa1c982ce..88f7520e51 100644 --- a/goalc/debugger/Debugger.cpp +++ b/goalc/debugger/Debugger.cpp @@ -4,15 +4,15 @@ * Uses xdbg functions to debug an OpenGOAL target. */ -#include "goalc/emitter/Register.h" -#include "common/util/assert.h" #include "Debugger.h" -#include "common/util/Timer.h" #include "common/goal_constants.h" #include "common/symbols.h" -#include "third-party/fmt/core.h" +#include "common/util/Timer.h" +#include "common/util/assert.h" #include "goalc/debugger/disassemble.h" +#include "goalc/emitter/Register.h" #include "goalc/listener/Listener.h" +#include "third-party/fmt/core.h" /*! * Is the target halted? If we don't know or aren't connected, returns false. @@ -751,4 +751,8 @@ DebugInfo& Debugger::get_debug_info_for_object(const std::string& object_name) { } return m_debug_info.insert(std::make_pair(object_name, DebugInfo(object_name))).first->second; +} + +bool Debugger::knows_object(const std::string& object_name) const { + return m_debug_info.find(object_name) != m_debug_info.end(); } \ No newline at end of file diff --git a/goalc/debugger/Debugger.h b/goalc/debugger/Debugger.h index 50a7736e2d..169b56ac3c 100644 --- a/goalc/debugger/Debugger.h +++ b/goalc/debugger/Debugger.h @@ -6,16 +6,16 @@ #pragma once -#include -#include -#include #include +#include +#include #include +#include +#include +#include "DebugInfo.h" #include "common/common_types.h" #include "common/cross_os_debug/xdbg.h" #include "goalc/listener/MemoryMap.h" -#include "DebugInfo.h" -#include namespace listener { class Listener; @@ -92,6 +92,7 @@ class Debugger { InstructionPointerInfo get_rip_info(u64 x86_rip); DebugInfo& get_debug_info_for_object(const std::string& object_name); + bool knows_object(const std::string& object_name) const; const InstructionPointerInfo& get_cached_break_info() { return m_break_info; } std::string get_info_about_addr(u32 addr); Disassembly disassemble_at_rip(const InstructionPointerInfo& info); diff --git a/goalc/main.cpp b/goalc/main.cpp index 3b0cee6e5d..a0664d20fe 100644 --- a/goalc/main.cpp +++ b/goalc/main.cpp @@ -48,7 +48,7 @@ int main(int argc, char** argv) { // Init REPL // the compiler may throw an exception if it fails to load its standard library. try { - std::unique_ptr compiler = std::make_unique(); + std::unique_ptr compiler; if (argument.empty()) { ReplStatus status = ReplStatus::WANT_RELOAD; while (status == ReplStatus::WANT_RELOAD) { @@ -59,6 +59,7 @@ int main(int argc, char** argv) { } } } else { + compiler = std::make_unique(); compiler->run_front_end_on_string(argument); } } catch (std::exception& e) { diff --git a/goalc/make/MakeSystem.cpp b/goalc/make/MakeSystem.cpp new file mode 100644 index 0000000000..ac5c264d87 --- /dev/null +++ b/goalc/make/MakeSystem.cpp @@ -0,0 +1,328 @@ +#include + +#include "MakeSystem.h" + +#include "third-party/fmt/color.h" +#include "third-party/fmt/core.h" + +#include "common/goos/ParseHelpers.h" +#include "common/util/Timer.h" + +#include "goalc/make/Tools.h" + +std::string MakeStep::print() const { + std::string result = fmt::format("Tool {} with input \"{}\" and deps:\n ", tool, input); + for (auto& dep : deps) { + result += dep; + result += '\n'; + result += ' '; + } + result.pop_back(); + + result += fmt::format("will produce outputs:\n "); + for (auto& o : outputs) { + result += o; + result += '\n'; + result += ' '; + } + result.pop_back(); + return result; +} + +MakeSystem::MakeSystem() { + m_goos.register_form("defstep", [=](const goos::Object& obj, goos::Arguments& args, + const std::shared_ptr& env) { + return handle_defstep(obj, args, env); + }); + + m_goos.register_form("basename", [=](const goos::Object& obj, goos::Arguments& args, + const std::shared_ptr& env) { + return handle_basename(obj, args, env); + }); + + m_goos.register_form("stem", [=](const goos::Object& obj, goos::Arguments& args, + const std::shared_ptr& env) { + return handle_stem(obj, args, env); + }); + + m_goos.set_global_variable_to_symbol("ASSETS", "#t"); + + add_tool(); + add_tool(); + add_tool(); + add_tool(); + add_tool(); + add_tool(); +} + +/*! + * Load a project file, clearing any project info previously loaded. + */ +void MakeSystem::load_project_file(const std::string& file_path) { + Timer timer; + // clear the previous project + clear_project(); + // read the file + auto data = m_goos.reader.read_from_file({file_path}); + // interpret it, which will call various handlers. + m_goos.eval(data, m_goos.global_environment.as_env()); +} + +goos::Object MakeSystem::handle_defstep(const goos::Object& form, + goos::Arguments& args, + const std::shared_ptr& env) { + m_goos.eval_args(&args, env); + va_check(form, args, {}, + {{"out", {true, {goos::ObjectType::PAIR}}}, + {"tool", {true, {goos::ObjectType::SYMBOL}}}, + {"in", {false, {goos::ObjectType::STRING}}}, + {"dep", {false, {}}}}); + + auto step = std::make_shared(); + + goos::for_each_in_list(args.get_named("out"), [&](const goos::Object& obj) { + step->outputs.push_back(obj.as_string()->data); + }); + + step->tool = args.get_named("tool").as_symbol()->name; + + if (m_tools.find(step->tool) == m_tools.end()) { + throw std::runtime_error(fmt::format("The tool {} is unknown.", step->tool)); + } + + if (args.has_named("in")) { + step->input = args.get_named("in").as_string()->data; + } + + if (args.has_named("dep")) { + goos::for_each_in_list(args.get_named("dep"), [&](const goos::Object& obj) { + step->deps.push_back(obj.as_string()->data); + }); + } + + for (auto& output : step->outputs) { + auto existing = m_output_to_step.find(output); + if (existing != m_output_to_step.end()) { + throw std::runtime_error(fmt::format("There are multiple ways to make output {}:\n{}\n{}\n", + output, step->print(), existing->second->print())); + } + m_output_to_step.insert({output, step}); + } + + return goos::EmptyListObject::make_new(); +} + +/*! + * Fully clear the state of the project. + * + */ +void MakeSystem::clear_project() { + m_output_to_step.clear(); +} + +void MakeSystem::va_check( + const goos::Object& form, + const goos::Arguments& args, + const std::vector>& unnamed, + const std::unordered_map>>& + named) { + std::string err; + if (!goos::va_check(args, unnamed, named, &err)) { + m_goos.throw_eval_error(form, err); + } +} + +goos::Object MakeSystem::handle_basename(const goos::Object& form, + goos::Arguments& args, + const std::shared_ptr& env) { + m_goos.eval_args(&args, env); + va_check(form, args, {goos::ObjectType::STRING}, {}); + std::filesystem::path input(args.unnamed.at(0).as_string()->data); + + return goos::StringObject::make_new(input.filename().u8string()); +} + +goos::Object MakeSystem::handle_stem(const goos::Object& form, + goos::Arguments& args, + const std::shared_ptr& env) { + m_goos.eval_args(&args, env); + va_check(form, args, {goos::ObjectType::STRING}, {}); + std::filesystem::path input(args.unnamed.at(0).as_string()->data); + + return goos::StringObject::make_new(input.stem().u8string()); +} + +void MakeSystem::get_dependencies(const std::string& master_target, + const std::string& output, + std::vector* result, + std::unordered_set* result_set) const { + if (result_set->find(output) != result_set->end()) { + return; + } + + const auto& rule_it = m_output_to_step.find(output); + if (rule_it == m_output_to_step.end()) { + throw std::runtime_error( + fmt::format("No rule to make {}, required for {}\n", output, master_target)); + } + + // what deps do we need? + for (auto& dep : rule_it->second->deps) { + get_dependencies(master_target, dep, result, result_set); + } + + const auto& rule = rule_it->second; + for (auto& dep : m_tools.at(rule->tool) + ->get_additional_dependencies({rule->input, rule->deps, rule->outputs})) { + get_dependencies(master_target, dep, result, result_set); + } + + result->push_back(output); + for (auto& op : rule->outputs) { + result_set->insert(op); + } +} + +std::vector MakeSystem::get_dependencies(const std::string& target) const { + Timer timer; + + std::vector result; + std::unordered_set added_deps; + + get_dependencies(target, target, &result, &added_deps); + + fmt::print("Successfully found all {} dependencies for target in {:.3f}s\n", result.size(), + timer.getSeconds()); + return result; +} + +void MakeSystem::add_tool(std::shared_ptr tool) { + auto& name = tool->name(); + assert(m_tools.find(name) == m_tools.end()); + m_tools[name] = tool; +} + +std::vector MakeSystem::filter_dependencies(const std::vector& all_deps) { + Timer timer; + std::vector result; + std::unordered_set stale_deps; + + std::unordered_set compiler_sym_needed; + + for (auto& to_make : all_deps) { + auto& rule = m_output_to_step.at(to_make); + auto& tool = m_tools.at(rule->tool); + + bool added = false; + + if (tool->needs_run({rule->input, rule->deps, rule->outputs})) { + result.push_back(to_make); + stale_deps.insert(to_make); + added = true; + } + + if (!added) { + // check transitive dependencies + for (auto& dep : rule->deps) { + if (stale_deps.find(dep) != stale_deps.end()) { + result.push_back(to_make); + stale_deps.insert(to_make); + added = true; + break; + } + } + } + + if (!added) { + // check transitive dependencies + for (auto& dep : + tool->get_additional_dependencies({rule->input, rule->deps, rule->outputs})) { + if (stale_deps.find(dep) != stale_deps.end()) { + result.push_back(to_make); + stale_deps.insert(to_make); + added = true; + break; + } + } + } + } + + fmt::print("Found that {} of {} targets do need rebuilding in {:.3f}s\n", result.size(), + all_deps.size(), timer.getSeconds()); + return result; +} + +namespace { +void print_input(const std::string& in, char end) { + if (in.length() > 70) { + fmt::print("{}...{}", in.substr(0, 70 - 3), end); + } else { + fmt::print("{}{}{}", in, std::string(70 - in.length(), ' '), end); + } +} +} // namespace + +bool MakeSystem::make(const std::string& target, bool force, bool verbose) { + auto deps = get_dependencies(target); + // fmt::print("All deps:\n"); + // for (auto& dep : deps) { + // fmt::print("{}\n", dep); + // } + if (!force) { + deps = filter_dependencies(deps); + } + + // fmt::print("Filt deps:\n"); + // for (auto& dep : filtered_deps) { + // fmt::print("{}\n", dep); + // } + + Timer make_timer; + fmt::print("Building {} targets...\n", deps.size()); + int i = 0; + for (auto& to_make : deps) { + Timer step_timer; + auto& rule = m_output_to_step.at(to_make); + auto& tool = m_tools.at(rule->tool); + int percent = (100.0 * (1 + (i++)) / (deps.size())) + 0.5; + if (verbose) { + fmt::print("[{:3d}%] [{:8s}] {}\n", percent, tool->name(), rule->input); + } else { + fmt::print("[{:3d}%] [{:8s}] ", percent, tool->name()); + print_input(rule->input, '\r'); + } + + bool success = false; + try { + success = tool->run({rule->input, rule->deps, rule->outputs}); + } catch (std::exception& e) { + fmt::print("\n"); + fmt::print("Error: {}\n", e.what()); + } + if (!success) { + fmt::print("Build failed on {}.\n", rule->input); + throw std::runtime_error("Build failed."); + return false; + } + + if (verbose) { + if (step_timer.getSeconds() > 0.05) { + fmt::print(fg(fmt::color::yellow), " {:.3f}\n", step_timer.getSeconds()); + } else { + fmt::print(" {:.3f}\n", step_timer.getSeconds()); + } + } else { + if (step_timer.getSeconds() > 0.05) { + fmt::print("[{:3d}%] [{:8s}] ", percent, tool->name()); + fmt::print(fg(fmt::color::yellow), "{:.3f} ", step_timer.getSeconds()); + print_input(rule->input, '\n'); + } else { + fmt::print("[{:3d}%] [{:8s}] {:.3f} ", percent, tool->name(), step_timer.getSeconds()); + print_input(rule->input, '\r'); + } + } + } + fmt::print("\nSuccessfully built all {} targets in {:.3f}s\n", deps.size(), + make_timer.getSeconds()); + return true; +} \ No newline at end of file diff --git a/goalc/make/MakeSystem.h b/goalc/make/MakeSystem.h new file mode 100644 index 0000000000..2e53fc1c13 --- /dev/null +++ b/goalc/make/MakeSystem.h @@ -0,0 +1,61 @@ +#pragma once + +#include "common/goos/Interpreter.h" +#include "goalc/make/Tool.h" + +struct MakeStep { + std::string input; + std::vector deps, outputs; + std::string tool; + + std::string print() const; +}; + +class MakeSystem { + public: + MakeSystem(); + void load_project_file(const std::string& file_path); + + goos::Object handle_defstep(const goos::Object& obj, + goos::Arguments& args, + const std::shared_ptr& env); + + goos::Object handle_basename(const goos::Object& obj, + goos::Arguments& args, + const std::shared_ptr& env); + + goos::Object handle_stem(const goos::Object& obj, + goos::Arguments&, + const std::shared_ptr& env); + + std::vector get_dependencies(const std::string& target) const; + std::vector filter_dependencies(const std::vector& all_deps); + + bool make(const std::string& target, bool force, bool verbose); + + void add_tool(std::shared_ptr tool); + + template + void add_tool() { + add_tool(std::make_shared()); + } + + void clear_project(); + + private: + void va_check(const goos::Object& form, + const goos::Arguments& args, + const std::vector>& unnamed, + const std::unordered_map>>& named); + + void get_dependencies(const std::string& master_target, + const std::string& output, + std::vector* result_order, + std::unordered_set* result_set) const; + + goos::Interpreter m_goos; + + std::unordered_map> m_output_to_step; + std::unordered_map> m_tools; +}; diff --git a/goalc/make/Tool.cpp b/goalc/make/Tool.cpp new file mode 100644 index 0000000000..e88189b74f --- /dev/null +++ b/goalc/make/Tool.cpp @@ -0,0 +1,59 @@ + +#include +#include + +#include "third-party/fmt/core.h" + +#include "Tool.h" +#include "common/util/FileUtil.h" + +Tool::Tool(const std::string& name) : m_name(name) {} + +bool Tool::needs_run(const ToolInput& task) { + // for this to return false, all outputs need to be newer than all inputs. + + auto in_file = std::filesystem::path(file_util::get_file_path({task.input})); + + if (!std::filesystem::exists(in_file)) { + throw std::runtime_error(fmt::format("Input file {} does not exist.", task.input)); + } + + auto newest_input = std::filesystem::last_write_time(in_file); + for (auto& dep : task.deps) { + auto dep_path = std::filesystem::path(file_util::get_file_path({dep})); + if (std::filesystem::exists(dep_path)) { + auto dep_time = std::filesystem::last_write_time(dep_path); + if (dep_time > newest_input) { + newest_input = dep_time; + } + } else { + return true; // don't have a dep. + } + } + + for (auto& dep : get_additional_dependencies(task)) { + auto dep_path = std::filesystem::path(file_util::get_file_path({dep})); + if (std::filesystem::exists(dep_path)) { + auto dep_time = std::filesystem::last_write_time(dep_path); + if (dep_time > newest_input) { + newest_input = dep_time; + } + } else { + return true; // don't have a dep. + } + } + + for (auto& out : task.output) { + auto out_path = std::filesystem::path(file_util::get_file_path({out})); + if (std::filesystem::exists(out_path)) { + auto out_time = std::filesystem::last_write_time(out_path); + if (out_time < newest_input) { + return true; + } + } else { + return true; // don't have a dep. + } + } + + return false; +} diff --git a/goalc/make/Tool.h b/goalc/make/Tool.h new file mode 100644 index 0000000000..5f58447993 --- /dev/null +++ b/goalc/make/Tool.h @@ -0,0 +1,25 @@ +#pragma once + +#include +#include +#include + +struct ToolInput { + std::string& input; // the input file + std::vector& deps; // explicit dependencies + std::vector& output; // produced output files. +}; + +class Tool { + public: + Tool(const std::string& name); + virtual bool run(const ToolInput& task) = 0; + virtual std::vector get_additional_dependencies(const ToolInput&) { return {}; } + virtual bool needs_run(const ToolInput& task); + virtual ~Tool() = default; + + const std::string& name() const { return m_name; } + + private: + std::string m_name; +}; \ No newline at end of file diff --git a/goalc/make/Tools.cpp b/goalc/make/Tools.cpp new file mode 100644 index 0000000000..69f96fc579 --- /dev/null +++ b/goalc/make/Tools.cpp @@ -0,0 +1,121 @@ + + +#include "Tools.h" + +#include +#include "goalc/compiler/Compiler.h" +#include "common/goos/ParseHelpers.h" +#include "common/util/DgoWriter.h" +#include "common/util/FileUtil.h" +#include "third-party/fmt/core.h" +#include "goalc/data_compiler/dir_tpages.h" +#include "goalc/data_compiler/game_count.h" +#include "goalc/data_compiler/game_text.h" + +CompilerTool::CompilerTool(Compiler* compiler) : Tool("goalc"), m_compiler(compiler) {} + +bool CompilerTool::needs_run(const ToolInput& task) { + if (!m_compiler->knows_object_file(std::filesystem::path(task.input).stem().u8string())) { + return true; + } + return Tool::needs_run(task); +} + +bool CompilerTool::run(const ToolInput& task) { + // todo check inputs + try { + m_compiler->run_front_end_on_string( + fmt::format("(asm-file \"{}\" :no-time-prints :color :write)", task.input)); + } catch (std::exception& e) { + fmt::print("Compilation failed: {}\n", e.what()); + return false; + } + return true; +} + +namespace { +DgoDescription parse_desc_file(const std::string& filename, goos::Reader& reader) { + auto dgo_desc = reader.read_from_file({filename}).as_pair()->cdr; + if (goos::list_length(dgo_desc) != 1) { + throw std::runtime_error("Invalid DGO description - got too many lists"); + } + auto dgo = dgo_desc.as_pair()->car; + + DgoDescription desc; + auto first = dgo.as_pair()->car; + desc.dgo_name = first.as_string()->data; + auto dgo_rest = dgo.as_pair()->cdr; + + for_each_in_list(dgo_rest, [&](const goos::Object& entry) { + goos::Arguments e_arg; + std::string err; + if (!goos::get_va(entry, &err, &e_arg)) { + throw std::runtime_error(fmt::format("Invalid DGO description: {}\n", err)); + } + + if (!goos::va_check(e_arg, {goos::ObjectType::STRING, goos::ObjectType::STRING}, {}, &err)) { + throw std::runtime_error(fmt::format("Invalid DGO description: {}\n", err)); + } + DgoDescription::DgoEntry o; + o.file_name = e_arg.unnamed.at(0).as_string()->data; + o.name_in_dgo = e_arg.unnamed.at(1).as_string()->data; + desc.entries.push_back(o); + }); + return desc; +} +} // namespace + +DgoTool::DgoTool() : Tool("dgo") {} + +bool DgoTool::run(const ToolInput& task) { + auto desc = parse_desc_file(task.input, m_reader); + build_dgo(desc); + return true; +} + +std::vector DgoTool::get_additional_dependencies(const ToolInput& task) { + std::vector result; + auto desc = parse_desc_file(task.input, m_reader); + for (auto& x : desc.entries) { + result.push_back(fmt::format("out/obj/{}", x.file_name)); + } + return result; +} + +TpageDirTool::TpageDirTool() : Tool("tpage-dir") {} + +bool TpageDirTool::run(const ToolInput& task) { + compile_dir_tpages(task.input); + return true; +} + +CopyTool::CopyTool() : Tool("copy") {} + +bool CopyTool::run(const ToolInput& task) { + for (auto& out : task.output) { + std::filesystem::copy(std::filesystem::path(file_util::get_file_path({task.input})), + std::filesystem::path(file_util::get_file_path({out})), + std::filesystem::copy_options::overwrite_existing); + } + return true; +} + +GameCntTool::GameCntTool() : Tool("game-cnt") {} + +bool GameCntTool::run(const ToolInput& task) { + compile_game_count(task.input); + return true; +} + +TextTool::TextTool() : Tool("text") {} + +bool TextTool::run(const ToolInput& task) { + compile_game_text(task.input); + return true; +} + +GroupTool::GroupTool() : Tool("group") {} + +bool GroupTool::run(const ToolInput&) { + return true; +} \ No newline at end of file diff --git a/goalc/make/Tools.h b/goalc/make/Tools.h new file mode 100644 index 0000000000..17baec819d --- /dev/null +++ b/goalc/make/Tools.h @@ -0,0 +1,57 @@ +#pragma once + +#include "goalc/make/Tool.h" +#include "common/goos/Reader.h" + +class Compiler; + +class CompilerTool : public Tool { + public: + CompilerTool(Compiler* compiler); + + bool run(const ToolInput& task) override; + bool needs_run(const ToolInput& task) override; + + private: + Compiler* m_compiler = nullptr; +}; + +class DgoTool : public Tool { + public: + DgoTool(); + bool run(const ToolInput& task) override; + std::vector get_additional_dependencies(const ToolInput&) override; + + private: + goos::Reader m_reader; +}; + +class TpageDirTool : public Tool { + public: + TpageDirTool(); + bool run(const ToolInput& task) override; +}; + +class CopyTool : public Tool { + public: + CopyTool(); + bool run(const ToolInput& task) override; +}; + +class GameCntTool : public Tool { + public: + GameCntTool(); + bool run(const ToolInput& task) override; +}; + +class TextTool : public Tool { + public: + TextTool(); + bool run(const ToolInput& task) override; +}; + +class GroupTool : public Tool { + public: + GroupTool(); + bool run(const ToolInput& task) override; +}; \ No newline at end of file diff --git a/scripts/emacs/goal-config.el b/scripts/emacs/goal-config.el index da7a123486..69f7fe3e50 100644 --- a/scripts/emacs/goal-config.el +++ b/scripts/emacs/goal-config.el @@ -99,6 +99,8 @@ ;; set up indentation for GOAL keywords (put 'with-pp 'common-lisp-indent-function 0) (put 'while 'common-lisp-indent-function 1) + (put 'goal-src 'common-lisp-indent-function 1) + (put 'engine-src 'common-lisp-indent-function 1) (put 'rlet 'common-lisp-indent-function 1) (put 'until 'common-lisp-indent-function 1) (put 'countdown 'common-lisp-indent-function 1) diff --git a/scripts/shell/offline_test_git_branch.sh b/scripts/shell/offline_test_git_branch.sh index 605a568f92..325f2160bb 100755 --- a/scripts/shell/offline_test_git_branch.sh +++ b/scripts/shell/offline_test_git_branch.sh @@ -47,15 +47,12 @@ echo " ================ Running offline decompiler tests..." echo " ================ Decompiling..." ../scripts/shell/decomp.sh -echo " ================ Building assets..." -../scripts/shell/gc.sh -cmd \(build-data\) +echo " ================ Building project..." +../scripts/shell/gc.sh -cmd \(make-group\ \"iso\"\) echo " ================ Checking assets..." ../scripts/shell/check.sh -echo " ================ Building game..." -../scripts/shell/gc.sh -cmd \(build-game\) - echo " ================ Booting game..." ../scripts/shell/boot_game.sh diff --git a/test/goalc/test_with_game.cpp b/test/goalc/test_with_game.cpp index 09ccf0da3e..aff11c6454 100644 --- a/test/goalc/test_with_game.cpp +++ b/test/goalc/test_with_game.cpp @@ -115,6 +115,10 @@ std::vector get_test_pass_string(const std::string& name, int count } } // namespace +TEST_F(WithGameTests, MakeSystem) { + compiler.run_front_end_on_string("(make \"out/iso/ENGINE.CGO\")"); +} + TEST_F(WithGameTests, ReturnConstant) { runner.run_static_test(env, testCategory, "defun-return-constant.static.gc", {"12\n"}); } diff --git a/test/test_goos.cpp b/test/test_goos.cpp index 4bbd2d5475..5064ea4d72 100644 --- a/test/test_goos.cpp +++ b/test/test_goos.cpp @@ -1319,3 +1319,17 @@ TEST(GoosBuiltins, Error) { Interpreter i; EXPECT_ANY_THROW(e(i, "(error \"hi\")")); } + +TEST(GoosBuiltins, Ash) { + Interpreter i; + EXPECT_EQ(e(i, "(ash 3 2)"), "12"); + EXPECT_EQ(e(i, "(ash 3 -1)"), "1"); +} + +TEST(GoosBuiltins, StringUtils) { + Interpreter i; + EXPECT_EQ(e(i, "(string-ref \"test\" 2)"), "#\\s"); + EXPECT_EQ(e(i, "(string-length \"test\")"), "4"); + EXPECT_EQ(e(i, "(string-append \"hello\" \" \" \"world\")"), "\"hello world\""); + EXPECT_EQ(e(i, "(symbol->string 'test)"), "\"test\""); +} \ No newline at end of file From e7bc3eb3b0ae9be7c0f1f6f10f28a619585fcbec Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 16 Jul 2021 01:38:31 +0000 Subject: [PATCH 17/63] Updated github pages site --- docs/gh-pages-proj/src/config/progress.json | 2 +- docs/index.html | 2 +- docs/js/{about.bc1b293a.js => about.369ba9e3.js} | 4 ++-- docs/js/{about.bc1b293a.js.map => about.369ba9e3.js.map} | 2 +- docs/js/{app.f4cdc4a2.js => app.4862d5e7.js} | 4 ++-- docs/js/{app.f4cdc4a2.js.map => app.4862d5e7.js.map} | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) rename docs/js/{about.bc1b293a.js => about.369ba9e3.js} (99%) rename docs/js/{about.bc1b293a.js.map => about.369ba9e3.js.map} (99%) rename docs/js/{app.f4cdc4a2.js => app.4862d5e7.js} (97%) rename docs/js/{app.f4cdc4a2.js.map => app.4862d5e7.js.map} (98%) diff --git a/docs/gh-pages-proj/src/config/progress.json b/docs/gh-pages-proj/src/config/progress.json index 4bc195d67a..e3cddafd80 100644 --- a/docs/gh-pages-proj/src/config/progress.json +++ b/docs/gh-pages-proj/src/config/progress.json @@ -1,7 +1,7 @@ { "jak1": { "locPercentage": { - "value": 107136, + "value": 107169, "label": "Lines of Code" } } diff --git a/docs/index.html b/docs/index.html index ad7850acf2..e7f8d3fcbc 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1 +1 @@ -OpenGOAL Tooling
\ No newline at end of file +OpenGOAL Tooling
\ No newline at end of file diff --git a/docs/js/about.bc1b293a.js b/docs/js/about.369ba9e3.js similarity index 99% rename from docs/js/about.bc1b293a.js rename to docs/js/about.369ba9e3.js index e76e773207..e9427a9f56 100644 --- a/docs/js/about.bc1b293a.js +++ b/docs/js/about.369ba9e3.js @@ -1,2 +1,2 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":107136,"label":"Lines of Code"}}}')}}]); -//# sourceMappingURL=about.bc1b293a.js.map \ No newline at end of file +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":107169,"label":"Lines of Code"}}}')}}]); +//# sourceMappingURL=about.369ba9e3.js.map \ No newline at end of file diff --git a/docs/js/about.bc1b293a.js.map b/docs/js/about.369ba9e3.js.map similarity index 99% rename from docs/js/about.bc1b293a.js.map rename to docs/js/about.369ba9e3.js.map index 6fa78d9bd2..b92a00aec7 100644 --- a/docs/js/about.bc1b293a.js.map +++ b/docs/js/about.369ba9e3.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?a70f","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.bc1b293a.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?a10c","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.369ba9e3.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/js/app.f4cdc4a2.js b/docs/js/app.4862d5e7.js similarity index 97% rename from docs/js/app.f4cdc4a2.js rename to docs/js/app.4862d5e7.js index e04a4ab70e..2701273080 100644 --- a/docs/js/app.f4cdc4a2.js +++ b/docs/js/app.4862d5e7.js @@ -1,2 +1,2 @@ -(function(e){function t(t){for(var n,o,i=t[0],c=t[1],l=t[2],s=0,p=[];s\n \n \n \n \n \n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?e1af","webpack:///src/App.vue","webpack:///./src/App.vue?1160","webpack:///./src/App.vue","webpack:///./src/plugins/vuetify.js","webpack:///./src/router/index.js","webpack:///./src/main.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_h","$createElement","_c","_self","staticRenderFns","components","component","VApp","VMain","Vue","use","Vuetify","theme","dark","VueRouter","routes","path","router","base","process","config","productionTip","vuetify","render","h","App","$mount"],"mappings":"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","file":"js/app.4862d5e7.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"369ba9e3\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"about\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"8d0e9591\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/jak-project/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[_c('v-main',[_c('router-view')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file From 2754a8f2c4bf58043694c0140b0522356c72d430 Mon Sep 17 00:00:00 2001 From: water111 <48171810+water111@users.noreply.github.com> Date: Sat, 17 Jul 2021 13:41:05 -0400 Subject: [PATCH 18/63] get res decompiling (#705) --- decompiler/IR2/AtomicOpTypeAnalysis.cpp | 17 +- decompiler/IR2/Env.h | 1 + decompiler/IR2/Form.cpp | 7 +- decompiler/IR2/Form.h | 4 + decompiler/IR2/FormExpressionAnalysis.cpp | 157 ++- decompiler/IR2/FormStack.cpp | 3 +- decompiler/IR2/bitfields.cpp | 110 +- decompiler/IR2/bitfields.h | 9 + decompiler/analysis/expression_build.cpp | 13 +- decompiler/analysis/insert_lets.cpp | 4 +- decompiler/analysis/variable_naming.cpp | 19 + decompiler/config/all-types.gc | 11 +- .../jak1_ntsc_black_label/label_types.jsonc | 17 +- .../jak1_ntsc_black_label/type_casts.jsonc | 25 +- .../jak1_ntsc_black_label/var_names.jsonc | 24 +- decompiler/util/TP_Type.cpp | 6 + decompiler/util/TP_Type.h | 13 +- goal_src/engine/data/res-h.gc | 6 +- goal_src/engine/data/res.gc | 281 +++- goal_src/engine/sparticle/sparticle-h.gc | 2 + goal_src/kernel/gcommon.gc | 10 + .../decompiler/reference/decompiler-macros.gc | 7 + .../reference/engine/data/res-h_REF.gc | 7 +- .../reference/engine/data/res_REF.gc | 1151 +++++++++++++++++ .../reference/engine/debug/menu_REF.gc | 24 +- .../engine/draw/process-drawable-h_REF.gc | 19 +- .../engine/entity/entity-table_REF.gc | 2 +- .../engine/game/task/task-control_REF.gc | 2 +- 28 files changed, 1832 insertions(+), 119 deletions(-) create mode 100644 test/decompiler/reference/engine/data/res_REF.gc diff --git a/decompiler/IR2/AtomicOpTypeAnalysis.cpp b/decompiler/IR2/AtomicOpTypeAnalysis.cpp index 58f5c1e941..dabf071443 100644 --- a/decompiler/IR2/AtomicOpTypeAnalysis.cpp +++ b/decompiler/IR2/AtomicOpTypeAnalysis.cpp @@ -187,13 +187,13 @@ TP_Type SimpleExpression::get_type(const TypeState& input, case Kind::XOR: case Kind::LEFT_SHIFT: case Kind::MUL_UNSIGNED: + case Kind::PCPYLD: return get_type_int2(input, env, dts); case Kind::NEG: case Kind::LOGNOT: return get_type_int1(input, env, dts); case Kind::DIV_UNSIGNED: case Kind::MOD_UNSIGNED: - case Kind::PCPYLD: return TP_Type::make_from_ts("uint"); case Kind::VECTOR_PLUS: case Kind::VECTOR_MINUS: @@ -427,6 +427,21 @@ TP_Type SimpleExpression::get_type_int2(const TypeState& input, break; } + if (arg0_type.kind == TP_Type::Kind::PCPYUD_BITFIELD && + (m_kind == Kind::AND || m_kind == Kind::OR)) { + // anding a bitfield should return the bitfield type. + return TP_Type::make_from_pcpyud_bitfield(arg0_type.get_bitfield_type()); + } + + // this is right but breaks something else right now. + if (m_kind == Kind::PCPYLD && arg0_type.kind == TP_Type::Kind::PCPYUD_BITFIELD) { + return arg1_type; + } + + if (m_kind == Kind::PCPYLD) { + return TP_Type::make_from_ts("uint"); + } + if (arg0_type.kind == TP_Type::Kind::INTEGER_CONSTANT_PLUS_VAR_MULT && m_kind == Kind::ADD) { FieldReverseLookupInput rd_in; rd_in.offset = arg0_type.get_add_int_constant(); diff --git a/decompiler/IR2/Env.h b/decompiler/IR2/Env.h index df5de86c37..42afcbcdba 100644 --- a/decompiler/IR2/Env.h +++ b/decompiler/IR2/Env.h @@ -82,6 +82,7 @@ class Env { VariableWithCast get_variable_and_cast(const RegisterAccess& access) const; std::optional get_user_cast_for_access(const RegisterAccess& access) const; TypeSpec get_variable_type(const RegisterAccess& access, bool using_user_var_types) const; + TP_Type get_variable_tp_type(const RegisterAccess& access, bool using_user_var_types) const; /*! * Get the types in registers _after_ the given operation has completed. diff --git a/decompiler/IR2/Form.cpp b/decompiler/IR2/Form.cpp index df47048ee9..189e6b41f4 100644 --- a/decompiler/IR2/Form.cpp +++ b/decompiler/IR2/Form.cpp @@ -1904,10 +1904,11 @@ void GenericElement::get_modified_regs(RegSet& regs) const { CastElement::CastElement(TypeSpec type, Form* source, bool numeric) : m_type(std::move(type)), m_source(source), m_numeric(numeric) { - source->parent_element = this; + m_source->parent_element = this; } goos::Object CastElement::to_form_internal(const Env& env) const { + // assert(m_source->parent_element == this); auto atom = form_as_atom(m_source); if (atom && atom->is_var()) { return pretty_print::build_list( @@ -1919,21 +1920,25 @@ goos::Object CastElement::to_form_internal(const Env& env) const { } void CastElement::apply(const std::function& f) { + // assert(m_source->parent_element == this); f(this); m_source->apply(f); } void CastElement::apply_form(const std::function& f) { + // assert(m_source->parent_element == this); m_source->apply_form(f); } void CastElement::collect_vars(RegAccessSet& vars, bool recursive) const { + // assert(m_source->parent_element == this); if (recursive) { m_source->collect_vars(vars, recursive); } } void CastElement::get_modified_regs(RegSet& regs) const { + assert(m_source->parent_element == this); m_source->get_modified_regs(regs); } diff --git a/decompiler/IR2/Form.h b/decompiler/IR2/Form.h index 06d36e1c1f..d0bc3995e9 100644 --- a/decompiler/IR2/Form.h +++ b/decompiler/IR2/Form.h @@ -54,6 +54,10 @@ class FormElement { bool allow_side_effects); bool is_popped() const { return m_popped; } + FormElement() = default; + FormElement(const FormElement& other) = delete; + FormElement& operator=(const FormElement& other) = delete; + void mark_popped() { assert(!m_popped); m_popped = true; diff --git a/decompiler/IR2/FormExpressionAnalysis.cpp b/decompiler/IR2/FormExpressionAnalysis.cpp index 658ba88ac0..0a98b07948 100644 --- a/decompiler/IR2/FormExpressionAnalysis.cpp +++ b/decompiler/IR2/FormExpressionAnalysis.cpp @@ -1113,6 +1113,29 @@ void SimpleExpressionElement::update_from_stack_pcypld(const Env& env, } } + /* + pcpyud v1, s4, r0 + ld a0, L152(fp) + and v1, v1, a0 + lui a0, 1 + dsll32 a0, a0, 0 + or v1, v1, a0 + pcpyld v1, v1, s4 + por s4, v1, r0 + */ + + auto as_mod = args.at(0)->try_as_element(); + if (as_mod && as_mod->from_pcpyud()) { + auto base_form = as_mod->base()->to_form(env); + auto a1_form = args.at(1)->to_form(env); + if (base_form == a1_form) { + as_mod->clear_pcpyud_flag(); + result->push_back(as_mod); + return; + } else { + fmt::print("pcpyud rewrite form fail: {} {}\n", base_form.print(), a1_form.print()); + } + } auto new_form = pool.alloc_element( GenericOperator::make_fixed(FixedOperatorKind::PCPYLD), args.at(0), args.at(1)); result->push_back(new_form); @@ -1262,16 +1285,45 @@ void SimpleExpressionElement::update_from_stack_logor_or_logand(const Env& env, FormStack& stack, std::vector* result, bool allow_side_effects) { + // grab the normal variable type auto arg0_type = env.get_variable_type(m_expr.get_arg(0).var(), true); + // and try to get it as a bitfield auto type_info = env.dts->ts.lookup_type(arg0_type); auto bitfield_info = dynamic_cast(type_info); + bool had_pcpyud = false; + TypeSpec bitfield_type = arg0_type; + + if (!bitfield_info) { + // the above won't work if we're already done a pcpyud to grab the upper 64 bits. + // we need to grab the type in the register (a TP_type) and check + const auto& arg0_reg_type = + env.get_types_before_op(m_expr.get_arg(0).var().idx()).get(m_expr.get_arg(0).var().reg()); + if (arg0_reg_type.kind == TP_Type::Kind::PCPYUD_BITFIELD) { + // yes! + had_pcpyud = true; + bitfield_info = + dynamic_cast(env.dts->ts.lookup_type(arg0_reg_type.get_bitfield_type())); + assert(bitfield_info); + } else if (arg0_reg_type.kind == TP_Type::Kind::PCPYUD_BITFIELD_AND) { + // already have the pcpyud in the thing. + bitfield_info = + dynamic_cast(env.dts->ts.lookup_type(arg0_reg_type.get_bitfield_type())); + assert(bitfield_info); + } + } + if (bitfield_info && m_expr.get_arg(1).is_int()) { // andi, ori with bitfield. auto base = pop_to_forms({m_expr.get_arg(0).var()}, env, pool, stack, allow_side_effects).at(0); auto read_elt = dynamic_cast(base->try_as_single_element()); if (!read_elt) { - read_elt = pool.alloc_element(base, arg0_type); + read_elt = pool.alloc_element(base, bitfield_type); + assert(!had_pcpyud); + } else { + if (had_pcpyud) { + assert(read_elt->has_pcpyud()); + } } BitfieldManip::Kind manip_kind; @@ -1313,13 +1365,19 @@ void SimpleExpressionElement::update_from_stack_logor_or_logand(const Env& env, bool made_new_read_elt = false; auto read_elt = dynamic_cast(args.at(0)->try_as_single_element()); if (!read_elt) { - read_elt = pool.alloc_element(args.at(0), arg0_type); + read_elt = pool.alloc_element(args.at(0), bitfield_type); made_new_read_elt = true; + assert(!had_pcpyud); + } else { + if (had_pcpyud) { + assert(read_elt->has_pcpyud()); + } } auto stripped_arg1 = strip_int_or_uint_cast(args.at(1)); - auto arg1_atom = form_as_atom(strip_int_or_uint_cast(args.at(1))); - if (arg1_atom && arg1_atom->is_int()) { + // auto arg1_atom = form_as_atom(strip_int_or_uint_cast(args.at(1))); + auto arg1_as_int = get_goal_integer_constant(stripped_arg1, env); + if (arg1_as_int) { BitfieldManip::Kind manip_kind; if (kind == FixedOperatorKind::LOGAND) { manip_kind = BitfieldManip::Kind::LOGAND_WITH_CONSTANT_INT; @@ -1328,10 +1386,14 @@ void SimpleExpressionElement::update_from_stack_logor_or_logand(const Env& env, } else { assert(false); } - BitfieldManip step(manip_kind, arg1_atom->get_int()); + BitfieldManip step(manip_kind, *arg1_as_int); auto other = read_elt->push_step(step, env.dts->ts, pool, env); - assert(!other); // shouldn't be complete. - result->push_back(read_elt); + // assert(!other); // shouldn't be complete. + if (other) { + result->push_back(other); + } else { + result->push_back(read_elt); + } return; } else if (!made_new_read_elt) { BitfieldManip::Kind manip_kind; @@ -1847,6 +1909,13 @@ void SetVarElement::push_to_stack(const Env& env, FormPool& pool, FormStack& sta return; } + // bool skip = false; + // auto dst_type = env.get_variable_type(m_dst, false); + // auto as_bitfield = dynamic_cast(env.dts->ts.lookup_type(dst_type)); + // if (as_bitfield && as_bitfield->get_load_size() == 16) { + // skip = true; + // } + // if we are a reg-reg move that consumes the original, push it without popping from stack. // it is the Stack's responsibility to untangle these later on. if (m_src->is_single_element()) { @@ -1874,6 +1943,28 @@ void SetVarElement::push_to_stack(const Env& env, FormPool& pool, FormStack& sta // we aren't a reg-reg move, so update our source m_src->update_children_from_stack(env, pool, stack, true); + /* + auto src_as_bf_set = dynamic_cast(m_src->try_as_single_element()); + if (src_as_bf_set && !src_as_bf_set->from_pcpyud() && src_as_bf_set->mods().size() == 1) { + auto dst_form = m_dst.to_form(env, RegisterAccess::Print::AS_VARIABLE_NO_CAST); + auto src_form = src_as_bf_set->base()->to_form(env); + if (dst_form == src_form) { + // success! + auto value = src_as_bf_set->mods().at(0).value; + value->parent_element = this; + + // make the (-> thing bitfield) + auto field_token = DerefToken::make_field_name(src_as_bf_set->mods().at(0).field_name); + auto dst_dform = pool.alloc_single_element_form(nullptr, + SimpleAtom::make_var(m_dst)); auto loc_elt = pool.alloc_element(dst_dform, false, + field_token); loc_elt->inline_nested(); auto loc = pool.alloc_single_form(nullptr, loc_elt); auto + new_form_el = pool.alloc_element(loc, value); + stack.push_form_element(new_form_el, true); + return; + } + } + */ + for (auto x : m_src->elts()) { assert(x->parent_form == m_src); } @@ -1915,7 +2006,7 @@ void SetFormFormElement::push_to_stack(const Env& env, FormPool& pool, FormStack // check for bitfield setting: auto src_as_bf_set = dynamic_cast(m_src->try_as_single_element()); - if (src_as_bf_set && src_as_bf_set->mods().size() == 1) { + if (src_as_bf_set && !src_as_bf_set->from_pcpyud() && src_as_bf_set->mods().size() == 1) { auto dst_form = m_dst->to_form(env); auto src_form = src_as_bf_set->base()->to_form(env); if (dst_form == src_form) { @@ -1933,6 +2024,8 @@ void SetFormFormElement::push_to_stack(const Env& env, FormPool& pool, FormStack m_dst = loc; m_src = value; } + } else if (src_as_bf_set) { + fmt::print("invalid bf set: {}\n", src_as_bf_set->to_string(env)); } stack.push_form_element(this, true); @@ -2314,23 +2407,29 @@ void FunctionCallElement::update_from_stack(const Env& env, "type."); } - if (!env.dts->ts.should_use_virtual_methods(tp_type.method_from_type(), - tp_type.method_id())) { + bool is_res_lump = tp_type.method_from_type().base_type() == "res-lump"; + bool should_use_virtual = + env.dts->ts.should_use_virtual_methods(tp_type.method_from_type(), tp_type.method_id()); + + if (!should_use_virtual && !is_res_lump) { throw std::runtime_error( fmt::format("Method call on {} id {} used a virtual call unexpectedly.", tp_type.method_from_type().print(), tp_type.method_id())); } - // fmt::print("STACK\n{}\n\n", stack.print(env)); - auto pop = - pop_to_forms({*arg0_mr.maps.regs.at(0)}, env, pool, stack, allow_side_effects, {}, {2}) - .at(0); - // fmt::print("GOT: {}\n", pop->to_string(env)); - arg_forms.at(0) = pop; - new_form = pool.alloc_element( - GenericOperator::make_function(mr.maps.forms.at(1)), arg_forms); - result->push_back(new_form); - return; + if (should_use_virtual) { + // fmt::print("STACK\n{}\n\n", stack.print(env)); + auto pop = pop_to_forms({*arg0_mr.maps.regs.at(0)}, env, pool, stack, allow_side_effects, + {}, {2}) + .at(0); + // fmt::print("GOT: {}\n", pop->to_string(env)); + arg_forms.at(0) = pop; + + new_form = pool.alloc_element( + GenericOperator::make_function(mr.maps.forms.at(1)), arg_forms); + result->push_back(new_form); + return; + } } } } @@ -3525,9 +3624,11 @@ void ReturnElement::push_to_stack(const Env& env, FormPool& pool, FormStack& sta } std::vector new_entries; - new_entries = rewrite_to_get_var(temp_stack, pool, env.end_var(), env); + std::optional var; + new_entries = rewrite_to_get_var(temp_stack, pool, env.end_var(), env, &var); assert(!new_entries.empty()); + return_code->clear(); for (int i = 0; i < ((int)new_entries.size()) - 1; i++) { @@ -3535,6 +3636,20 @@ void ReturnElement::push_to_stack(const Env& env, FormPool& pool, FormStack& sta } return_code->push_back(new_entries.back()); + if (var) { + const auto& func_type = env.func->type.last_arg(); + if (!env.dts->ts.tc(func_type, env.get_variable_type(*var, false))) { + auto as_cast = return_code->try_as_element(); + if (as_cast) { + return_code->clear(); + as_cast->set_type(func_type); + return_code->push_back(as_cast); + } else { + return_code = cast_form(return_code, func_type, pool, env); + return_code->parent_element = this; + } + } + } stack.push_form_element(this, true); } diff --git a/decompiler/IR2/FormStack.cpp b/decompiler/IR2/FormStack.cpp index e2ea9b77ba..7538fd1121 100644 --- a/decompiler/IR2/FormStack.cpp +++ b/decompiler/IR2/FormStack.cpp @@ -349,9 +349,9 @@ std::vector FormStack::rewrite(FormPool& pool, const Env& env) con auto elt = pool.alloc_element(*e.destination, simplified_source, e.sequence_point, type, e.set_info); - e.source->parent_element = elt; auto final_elt = try_rewrites_in_place(elt, env, pool); + simplified_source->parent_element = final_elt; result.push_back(final_elt); } else { result.push_back(e.elt); @@ -411,7 +411,6 @@ std::optional rewrite_to_get_var(std::vector& defa return {}; } else { for (auto x : result) { - x->parent_form = nullptr; default_result.push_back(x); } return result_access; diff --git a/decompiler/IR2/bitfields.cpp b/decompiler/IR2/bitfields.cpp index c7777c316b..c426fe3140 100644 --- a/decompiler/IR2/bitfields.cpp +++ b/decompiler/IR2/bitfields.cpp @@ -6,6 +6,7 @@ #include "common/util/BitUtils.h" #include "decompiler/util/DecompilerTypeSystem.h" #include "decompiler/IR2/GenericElementMatcher.h" +#include "decompiler/Function/Function.h" namespace decompiler { @@ -84,8 +85,12 @@ void BitfieldStaticDefElement::get_modified_regs(RegSet& regs) const { ModifiedCopyBitfieldElement::ModifiedCopyBitfieldElement( const TypeSpec& type, Form* base, + bool from_pcpyud, const std::vector& field_modifications) - : m_type(type), m_base(base), m_field_modifications(field_modifications) { + : m_type(type), + m_base(base), + m_field_modifications(field_modifications), + m_from_pcpyud(from_pcpyud) { m_base->parent_element = this; for (auto& mod : m_field_modifications) { if (mod.value) { @@ -95,13 +100,23 @@ ModifiedCopyBitfieldElement::ModifiedCopyBitfieldElement( } goos::Object ModifiedCopyBitfieldElement::to_form_internal(const Env& env) const { - std::vector result = {pretty_print::to_symbol("copy-and-set-bf")}; - result.push_back(m_base->to_form(env)); - for (auto& def : m_field_modifications) { - result.push_back(pretty_print::to_symbol(fmt::format(":{}", def.field_name))); - result.push_back(def.value->to_form(env)); + if (m_field_modifications.size() == 1) { + std::vector result = {pretty_print::to_symbol("copy-and-set-field")}; + result.push_back(m_base->to_form(env)); + for (auto& def : m_field_modifications) { + result.push_back(pretty_print::to_symbol(fmt::format("{}", def.field_name))); + result.push_back(def.value->to_form(env)); + } + return pretty_print::build_list(result); + } else { + std::vector result = {pretty_print::to_symbol("copy-and-set-bf-multi")}; + result.push_back(m_base->to_form(env)); + for (auto& def : m_field_modifications) { + result.push_back(pretty_print::to_symbol(fmt::format(":{}", def.field_name))); + result.push_back(def.value->to_form(env)); + } + return pretty_print::build_list(result); } - return pretty_print::build_list(result); } void ModifiedCopyBitfieldElement::apply(const std::function& f) { @@ -220,7 +235,8 @@ BitField find_field(const TypeSystem& ts, namespace { std::optional find_field_from_mask(const TypeSystem& ts, const BitFieldType* type, - uint64_t mask) { + uint64_t mask, + bool upper_64) { // try to find a field that is masked by this: auto mask_range = get_bit_range(mask); if (!mask_range) { @@ -228,6 +244,10 @@ std::optional find_field_from_mask(const TypeSystem& ts, return {}; } + if (upper_64) { + mask_range = Range(mask_range->first() + 64, mask_range->last() + 64); + } + return find_field(ts, type, mask_range->first(), mask_range->size(), {}); } @@ -241,7 +261,8 @@ Form* strip_int_or_uint_cast(Form* in) { std::optional get_bitfield_initial_set(Form* form, const BitFieldType* type, - const TypeSystem& ts) { + const TypeSystem& ts, + int offset_in_bitfield) { // (shr (shl arg1 59) 44) for example { auto matcher = Matcher::op(GenericOpMatcher::fixed(FixedOperatorKind::SHR), @@ -255,7 +276,7 @@ std::optional get_bitfield_initial_set(Form* form, int right = mr.maps.ints.at(2); int size = 64 - left; int offset = left - right; - auto f = find_field(ts, type, offset, size, {}); + auto f = find_field(ts, type, offset + offset_in_bitfield, size, {}); BitFieldDef def; def.value = value; def.field_name = f.name(); @@ -278,7 +299,7 @@ std::optional get_bitfield_initial_set(Form* form, int right = *power_of_two; int size = 64 - left; int offset = left - right; - auto f = find_field(ts, type, offset, size, {}); + auto f = find_field(ts, type, offset + offset_in_bitfield, size, {}); BitFieldDef def; def.value = value; def.field_name = f.name(); @@ -298,7 +319,7 @@ std::optional get_bitfield_initial_set(Form* form, int right = 0; int size = 64 - left; int offset = left - right; - auto f = find_field(ts, type, offset, size, {}); + auto f = find_field(ts, type, offset + offset_in_bitfield, size, {}); BitFieldDef def; def.value = value; def.field_name = f.name(); @@ -313,7 +334,7 @@ std::optional get_bitfield_initial_set(Form* form, auto value = mr_sllv.maps.forms.at(0); int size = 32; int offset = 0; - auto f = find_field(ts, type, offset, size, {}); + auto f = find_field(ts, type, offset + offset_in_bitfield, size, {}); BitFieldDef def; def.value = value; def.field_name = f.name(); @@ -345,6 +366,19 @@ void BitfieldAccessElement::push_pcpyud(const TypeSystem& ts, FormPool& pool, co } } +std::string BitfieldAccessElement::debug_print(const Env& env) const { + std::string result = "BitfieldAccessElement:"; + if (m_got_pcpyud) { + result += "pcpyud"; + } + result += '\n'; + result += fmt::format("base: {}\n", m_base->to_string(env)); + for (auto& step : m_steps) { + result += fmt::format(" {}\n", step.print()); + } + return result; +} + /*! * Add a step to the bitfield access. If this completes the access, returns a form representing the * access @@ -434,9 +468,7 @@ FormElement* BitfieldAccessElement::push_step(const BitfieldManip step, if (m_steps.empty() && step.kind == BitfieldManip::Kind::LOGAND_WITH_CONSTANT_INT) { // and with mask - if (m_got_pcpyud) { - throw std::runtime_error("unknown pcpyud LOGAND_WITH_CONSTANT_INT sequence in bitfield"); - } + // no need to do anything with pcpyud here. m_steps.push_back(step); return nullptr; } @@ -449,7 +481,7 @@ FormElement* BitfieldAccessElement::push_step(const BitfieldManip step, auto type = ts.lookup_type(m_type); auto as_bitfield = dynamic_cast(type); assert(as_bitfield); - auto field = find_field_from_mask(ts, as_bitfield, m_steps.at(0).amount); + auto field = find_field_from_mask(ts, as_bitfield, m_steps.at(0).amount, false); // todo PCPYUP if (field) { auto get_field = pool.alloc_element(m_base, false, DerefToken::make_field_name(field->name())); @@ -462,9 +494,6 @@ FormElement* BitfieldAccessElement::push_step(const BitfieldManip step, if (m_steps.size() == 1 && m_steps.at(0).kind == BitfieldManip::Kind::LOGAND_WITH_CONSTANT_INT && step.kind == BitfieldManip::Kind::LOGIOR_WITH_CONSTANT_INT) { - if (m_got_pcpyud) { - throw std::runtime_error("unknown pcpyud LOGIOR_WITH_CONSTANT_INT sequence in bitfield"); - } // this is setting a bitfield to a constant. // first, let's check that the mask is used properly: u64 mask = m_steps.at(0).amount; @@ -477,7 +506,7 @@ FormElement* BitfieldAccessElement::push_step(const BitfieldManip step, auto as_bitfield = dynamic_cast(type); assert(as_bitfield); // use the mask to figure out the field. - auto field = find_field_from_mask(ts, as_bitfield, ~mask); + auto field = find_field_from_mask(ts, as_bitfield, ~mask, m_got_pcpyud); assert(field); bool is_signed = ts.tc(TypeSpec("int"), field->type()) && !ts.tc(TypeSpec("uint"), field->type()); @@ -485,24 +514,21 @@ FormElement* BitfieldAccessElement::push_step(const BitfieldManip step, // use the field to figure out what value is being set. u64 set_value; if (is_signed) { - set_value = extract_bitfield(value, field->offset(), field->size()); + set_value = extract_bitfield(value, field->offset() - pcpyud_offset, field->size()); } else { - set_value = extract_bitfield(value, field->offset(), field->size()); + set_value = extract_bitfield(value, field->offset() - pcpyud_offset, field->size()); } BitFieldDef def; def.field_name = field->name(); def.value = pool.alloc_single_element_form( nullptr, SimpleAtom::make_int_constant(set_value)); - return pool.alloc_element(m_type, m_base, + return pool.alloc_element(m_type, m_base, m_got_pcpyud, std::vector{def}); } if (m_steps.size() == 1 && m_steps.at(0).kind == BitfieldManip::Kind::LOGAND_WITH_CONSTANT_INT && step.kind == BitfieldManip::Kind::LOGIOR_WITH_FORM) { - if (m_got_pcpyud) { - throw std::runtime_error("unknown pcpyud LOGIOR_WITH_FORM sequence in bitfield"); - } // this is setting a bitfield to a variable u64 mask = m_steps.at(0).amount; @@ -510,10 +536,10 @@ FormElement* BitfieldAccessElement::push_step(const BitfieldManip step, auto as_bitfield = dynamic_cast(type); assert(as_bitfield); // use the mask to figure out the field. - auto field = find_field_from_mask(ts, as_bitfield, ~mask); + auto field = find_field_from_mask(ts, as_bitfield, ~mask, m_got_pcpyud); assert(field); - auto val = get_bitfield_initial_set(step.value, as_bitfield, ts); + auto val = get_bitfield_initial_set(step.value, as_bitfield, ts, pcpyud_offset); if (!val) { throw std::runtime_error( @@ -524,7 +550,7 @@ FormElement* BitfieldAccessElement::push_step(const BitfieldManip step, throw std::runtime_error("Incompatible bitfield set"); } - return pool.alloc_element(m_type, m_base, + return pool.alloc_element(m_type, m_base, m_got_pcpyud, std::vector{*val}); } @@ -532,7 +558,10 @@ FormElement* BitfieldAccessElement::push_step(const BitfieldManip step, for (auto& old_step : m_steps) { lg::error(" {}", old_step.print()); } - lg::error("Current: {}\n", step.print()); + lg::error("Current: {}", step.print()); + if (m_got_pcpyud) { + lg::error("Got pcpyud\n"); + } throw std::runtime_error("Unknown state in BitfieldReadElement"); } @@ -595,6 +624,22 @@ std::optional get_goal_integer_constant(Form* in, const Env&) { return result; } } + + // also (shl (shl 16) 32) + // why. + matcher = Matcher::op(GenericOpMatcher::fixed(FixedOperatorKind::SHL), + {Matcher::op(GenericOpMatcher::fixed(FixedOperatorKind::SHL), + {Matcher::any(1), Matcher::integer(16)}), + Matcher::integer(32)}); + mr = match(matcher, in); + if (mr.matched) { + auto arg_as_atom = form_as_atom(mr.maps.forms.at(1)); + if (arg_as_atom && arg_as_atom->is_int()) { + u64 result = arg_as_atom->get_int(); + result <<= 48ull; + return result; + } + } return {}; } @@ -713,8 +758,9 @@ Form* cast_to_bitfield(const BitFieldType* type_info, // now variables for (auto& arg : args) { + // it's a 64-bit constant so correct to set offset 0 here. auto maybe_field = - get_bitfield_initial_set(strip_int_or_uint_cast(arg), type_info, env.dts->ts); + get_bitfield_initial_set(strip_int_or_uint_cast(arg), type_info, env.dts->ts, 0); if (!maybe_field) { // failed, just return cast. return pool.alloc_single_element_form(nullptr, typespec, in); diff --git a/decompiler/IR2/bitfields.h b/decompiler/IR2/bitfields.h index 1ae1b8f09d..8715378b67 100644 --- a/decompiler/IR2/bitfields.h +++ b/decompiler/IR2/bitfields.h @@ -101,6 +101,8 @@ class BitfieldAccessElement : public FormElement { FormPool& pool, const Env& env); void push_pcpyud(const TypeSystem& ts, FormPool& pool, const Env& env); + std::string debug_print(const Env& env) const; + bool has_pcpyud() const { return m_got_pcpyud; } private: bool m_got_pcpyud = false; @@ -155,6 +157,7 @@ class ModifiedCopyBitfieldElement : public FormElement { public: ModifiedCopyBitfieldElement(const TypeSpec& type, Form* base, + bool from_pcpyud, const std::vector& field_modifications); goos::Object to_form_internal(const Env& env) const override; void apply(const std::function& f) override; @@ -164,11 +167,17 @@ class ModifiedCopyBitfieldElement : public FormElement { Form* base() const { return m_base; } const std::vector mods() const { return m_field_modifications; } + bool from_pcpyud() const { return m_from_pcpyud; } + void clear_pcpyud_flag() { + assert(m_from_pcpyud); + m_from_pcpyud = false; + } private: TypeSpec m_type; Form* m_base = nullptr; std::vector m_field_modifications; + bool m_from_pcpyud = false; }; Form* cast_to_bitfield(const BitFieldType* type_info, diff --git a/decompiler/analysis/expression_build.cpp b/decompiler/analysis/expression_build.cpp index aa9b637935..97e495db5f 100644 --- a/decompiler/analysis/expression_build.cpp +++ b/decompiler/analysis/expression_build.cpp @@ -85,10 +85,15 @@ bool convert_to_expressions( if (!dts.ts.tc(f.type.last_arg(), return_type)) { // we need to cast the final value. auto to_cast = new_entries.back(); - new_entries.pop_back(); - auto cast = pool.alloc_element(f.type.last_arg(), - pool.alloc_single_form(nullptr, to_cast)); - new_entries.push_back(cast); + auto as_cast = dynamic_cast(to_cast); + if (as_cast) { + as_cast->set_type(f.type.last_arg()); + } else { + new_entries.pop_back(); + auto cast = pool.alloc_element(f.type.last_arg(), + pool.alloc_single_form(nullptr, to_cast)); + new_entries.push_back(cast); + } } } else { // or just get all the expressions diff --git a/decompiler/analysis/insert_lets.cpp b/decompiler/analysis/insert_lets.cpp index ff390f8db0..7ab2b4d838 100644 --- a/decompiler/analysis/insert_lets.cpp +++ b/decompiler/analysis/insert_lets.cpp @@ -79,8 +79,8 @@ Form* lca_form(Form* a, Form* b, const Env& env) { bi--; } if (!result) { - auto* bad = b->parent_element; - fmt::print("bad form is {} {}\n", bad->to_string(env), (void*)bad); + fmt::print("{} bad form is {}\n\n{}\n", env.func->guessed_name.to_string(), a->to_string(env), + b->to_string(env)); } assert(result); diff --git a/decompiler/analysis/variable_naming.cpp b/decompiler/analysis/variable_naming.cpp index 2d473ab7ca..7115642180 100644 --- a/decompiler/analysis/variable_naming.cpp +++ b/decompiler/analysis/variable_naming.cpp @@ -730,6 +730,25 @@ void SSA::make_vars(const Function& function, const DecompilerTypeSystem& dts) { } } + // if (function.type.last_arg() != TypeSpec("none")) { + // auto return_var = function.ir2.atomic_ops->end_op().return_var(); + // auto return_reg = return_var.reg(); + // const auto& last_block = blocks.at(blocks.size() - 1); + // const auto& last_ins = last_block.ins.at(last_block.ins.size() - 1); + // assert(last_ins.src.size() == 1); + // auto return_idx = map.var_id(last_ins.src.at(0)); + // + // if (!program_read_vars[return_reg].empty()) { + // program_read_vars[return_reg].at(return_idx).type = + // TP_Type::make_from_ts(function.type.last_arg()); + // } + // + // if (!program_write_vars[return_reg].empty()) { + // program_write_vars[return_reg].at(return_idx).type = + // TP_Type::make_from_ts(function.type.last_arg()); + // } + // } + merge_infos(program_write_vars, program_read_vars, dts); // copy types from input argument coloring moves: diff --git a/decompiler/config/all-types.gc b/decompiler/config/all-types.gc index 1ce871a73d..66fb25521f 100644 --- a/decompiler/config/all-types.gc +++ b/decompiler/config/all-types.gc @@ -9325,10 +9325,10 @@ (get-property-value-float (_type_ symbol symbol float float (pointer res-tag) pointer) float :no-virtual 12) (get-tag-index-data (_type_ int) pointer 13) (get-tag-data (_type_ res-tag) pointer 14) - (dummy-15 (_type_ res-tag) res-tag 15) + (allocate-data-memory-for-tag! (_type_ res-tag) res-tag 15) (sort! (_type_) _type_ 16) - (dummy-17 (_type_ res-tag pointer) res-lump 17) - (dummy-18 (_type_ res-tag res-tag) res-lump 18) + (add-data! (_type_ res-tag pointer) res-lump 17) + (add-32bit-data! (_type_ res-tag object) res-lump 18) (lookup-tag-idx (_type_ symbol symbol float) res-tag-pair :no-virtual 19) (make-property-data (_type_ float res-tag-pair pointer) pointer 20) (get-curve-data! (_type_ curve symbol symbol float) symbol 21) @@ -9346,9 +9346,6 @@ ;; Containing DGOs - ['GAME', 'ENGINE'] ;; Version - 3 -;; - Functions - -(define-extern part-group-pointer? function) ;; - Symbols @@ -13254,6 +13251,8 @@ ) +(define-extern part-group-pointer? (function pointer symbol)) + ;; ---------------------- ;; File - sparticle-h ;; Source Path - engine/sparticle/sparticle-h.gc diff --git a/decompiler/config/jak1_ntsc_black_label/label_types.jsonc b/decompiler/config/jak1_ntsc_black_label/label_types.jsonc index fd2dd9306d..d8c69f6f60 100644 --- a/decompiler/config/jak1_ntsc_black_label/label_types.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/label_types.jsonc @@ -154,13 +154,13 @@ ["L17", "ocean-colors", true], ["L15", "ocean-near-indices", true], ["L9", "ocean-near-indices", true], - + ["L14", "ocean-trans-indices", true], ["L8", "ocean-trans-indices", true], - + ["L13", "ocean-mid-indices", true], ["L7", "ocean-mid-indices", true], - + ["L11", "ocean-mid-masks", true], ["L5", "ocean-mid-masks", true], ["L4", "ocean-map", true], @@ -453,7 +453,12 @@ "trajectory": [["L18", "uint64", true]], - "res": [["L150", "uint64", true]], + "res": [ + ["L150", "uint64", true], + ["L152", "uint64", true], + ["L151", "uint64", true], + ["L153", "uint64", true] + ], "ripple": [ ["L73", "float", true], @@ -559,9 +564,7 @@ ["L12", "uint64", true] ], - "shadow-cpu": [ - ["L122", "shadow-data", true] - ], + "shadow-cpu": [["L122", "shadow-data", true]], "entity-table": [["L8", "(array entity-info)", true]], diff --git a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc index 8adbe2f29f..8355f7e1e1 100644 --- a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc @@ -414,9 +414,7 @@ [157, "a0", "(pointer process-drawable)"] ], - "load-game-text-info": [ - [4, "v1", "game-text-info"] - ], + "load-game-text-info": [[4, "v1", "game-text-info"]], "texture-relocate": [ [[17, 21], "t4", "dma-packet"], @@ -506,12 +504,29 @@ [22, "t1", "(pointer uint64)"], [29, "t2", "(pointer uint64)"] ], - "(method 18 res-lump)": [["_stack_", 16, "res-tag"]], + "(method 18 res-lump)": [["_stack_", 16, "object"]], "(method 21 res-lump)": [ ["_stack_", 16, "res-tag"], ["_stack_", 32, "res-tag"] ], + "(method 15 res-lump)": [[132, "s5", "res-tag-pair"]], + + "(method 17 res-lump)": [[22, "s4", "(pointer pointer)"]], + + "(method 20 res-lump)": [[331, "a3", "(inline-array vector)"]], + + "(method 8 res-lump)": [ + [215, "s0", "array"], + [[0, 100], "s0", "basic"], + [[102, 120], "s0", "basic"], + [[147, 150], "s0", "collide-mesh"], + [[157, 200], "s0", "(array object)"], + //[[197, 199], "s0", "(array basic)"], + //[[236, 240], "a0", "basic"] + [235, "s0", "basic"] + ], + // SHADOW-CPU-H "(method 10 shadow-control)": [[1, "v1", "int"]], @@ -1172,5 +1187,7 @@ "blackout": [[[20, 24], "v1", "dma-packet"]], + "(method 10 external-art-control)": [[18, "v1", "pointer"]], + "placeholder-do-not-add-below": [] } diff --git a/decompiler/config/jak1_ntsc_black_label/var_names.jsonc b/decompiler/config/jak1_ntsc_black_label/var_names.jsonc index 306c264332..abed42d99e 100644 --- a/decompiler/config/jak1_ntsc_black_label/var_names.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/var_names.jsonc @@ -1798,7 +1798,29 @@ }, "(method 15 res-lump)": { "vars": { - "s5-0": ["tag-pair", "res-tag-pair"] + "s5-0": ["tag-pair", "res-tag-pair"], + "s2-0": "existing-tag", + "s3-0": "data-size", + "v1-25": "resource-mem" + } + }, + + "(method 17 res-lump)": { + "vars": { + "a0-2": "new-tag", + "s4-0": "tag-mem" + } + }, + + "(method 8 res-lump)": { + "args": ["obj", "block", "flags"], + "vars": { + "s3-0":"mem-use-id", + "s2-0":"mem-use-name", + "v1-22":"obj-size", + "s1-0":"tag-idx", + "s0-0":"tag-data" + } }, diff --git a/decompiler/util/TP_Type.cpp b/decompiler/util/TP_Type.cpp index 5682efefb6..bf6048708c 100644 --- a/decompiler/util/TP_Type.cpp +++ b/decompiler/util/TP_Type.cpp @@ -67,6 +67,8 @@ std::string TP_Type::print() const { } case Kind::PCPYUD_BITFIELD: return fmt::format("", m_ts.print()); + case Kind::PCPYUD_BITFIELD_AND: + return fmt::format("", m_ts.print()); case Kind::LABEL_ADDR: return ""; case Kind::INVALID: @@ -119,6 +121,8 @@ bool TP_Type::operator==(const TP_Type& other) const { return m_int == other.m_int && m_ts == other.m_ts && m_pcpyud == other.m_pcpyud; case Kind::PCPYUD_BITFIELD: return m_pcpyud == other.m_pcpyud && m_ts == other.m_ts; + case Kind::PCPYUD_BITFIELD_AND: + return m_pcpyud == other.m_pcpyud && m_ts == other.m_ts; case Kind::LABEL_ADDR: return true; case Kind::INVALID: @@ -177,6 +181,8 @@ TypeSpec TP_Type::typespec() const { return TypeSpec("int"); // ideally this is never used. case Kind::PCPYUD_BITFIELD: return TypeSpec("int"); + case Kind::PCPYUD_BITFIELD_AND: + return TypeSpec("int"); case Kind::LABEL_ADDR: return TypeSpec("pointer"); // ? case Kind::INVALID: diff --git a/decompiler/util/TP_Type.h b/decompiler/util/TP_Type.h index bde2ffa536..9d0010df38 100644 --- a/decompiler/util/TP_Type.h +++ b/decompiler/util/TP_Type.h @@ -33,6 +33,7 @@ class TP_Type { VIRTUAL_METHOD, NON_VIRTUAL_METHOD, PCPYUD_BITFIELD, + PCPYUD_BITFIELD_AND, LEFT_SHIFTED_BITFIELD, // (bitfield << some-constant) LABEL_ADDR, INVALID @@ -62,6 +63,7 @@ class TP_Type { case Kind::NON_VIRTUAL_METHOD: case Kind::LEFT_SHIFTED_BITFIELD: case Kind::PCPYUD_BITFIELD: + case Kind::PCPYUD_BITFIELD_AND: case Kind::LABEL_ADDR: return false; case Kind::UNINITIALIZED: @@ -244,6 +246,14 @@ class TP_Type { return result; } + static TP_Type make_from_pcpyud_and_bitfield(const TypeSpec& ts) { + TP_Type result; + result.kind = Kind::PCPYUD_BITFIELD_AND; + result.m_ts = ts; + result.m_pcpyud = true; + return result; + } + static TP_Type make_label_addr() { TP_Type result; result.kind = Kind::LABEL_ADDR; @@ -296,7 +306,8 @@ class TP_Type { } const TypeSpec& get_bitfield_type() const { - assert(kind == Kind::LEFT_SHIFTED_BITFIELD || kind == Kind::PCPYUD_BITFIELD); + assert(kind == Kind::LEFT_SHIFTED_BITFIELD || kind == Kind::PCPYUD_BITFIELD || + kind == Kind::PCPYUD_BITFIELD_AND); return m_ts; } diff --git a/goal_src/engine/data/res-h.gc b/goal_src/engine/data/res-h.gc index 743e0d8284..bf376f85fe 100644 --- a/goal_src/engine/data/res-h.gc +++ b/goal_src/engine/data/res-h.gc @@ -47,10 +47,10 @@ (get-property-value-float (_type_ symbol symbol float float (pointer res-tag) pointer) float :no-virtual 12) (get-tag-index-data (_type_ int) pointer 13) (get-tag-data (_type_ res-tag) pointer 14) - (dummy-15 (_type_ res-tag) res-tag 15) + (allocate-data-memory-for-tag! (_type_ res-tag) res-tag 15) (sort! (_type_) _type_ 16) - (dummy-17 (_type_ res-tag pointer) res-lump 17) - (dummy-18 (_type_ res-tag res-tag) res-lump 18) + (add-data! (_type_ res-tag pointer) res-lump 17) + (add-32bit-data! (_type_ res-tag object) res-lump 18) (lookup-tag-idx (_type_ symbol symbol float) res-tag-pair :no-virtual 19) (make-property-data (_type_ float res-tag-pair pointer) pointer 20) (get-curve-data! (_type_ curve symbol symbol float) symbol 21) diff --git a/goal_src/engine/data/res.gc b/goal_src/engine/data/res.gc index 152f0f101a..f2f50cfa18 100644 --- a/goal_src/engine/data/res.gc +++ b/goal_src/engine/data/res.gc @@ -67,7 +67,7 @@ This is updated from the entity system used in Crash 2, which had most of these (the int (if (res-ref? obj) - (* (-> obj elt-count) 4) + (* (-> obj elt-count) 4) ;; elements are pointers/references to data. (* (-> obj elt-count) (-> obj elt-type size)) ) @@ -685,6 +685,148 @@ This is updated from the entity system used in Crash 2, which had most of these obj ) +(defmethod allocate-data-memory-for-tag! res-lump ((obj res-lump) (arg0 res-tag)) + "Find space for the data described by arg0 in obj. + Returns a tag with data-offset set correctly for this res-lump. + If the lump already contains memory for the given tag, and it is big enough, + it will be reused. Alignment will be at least 8 bytes. + If the input tag has elt-count = 0, it will return a tag for elt-count = 1." + (local-vars (resource-mem pointer)) + + ;; first, look up the tag to see if it already exists in this res-lump + (let ((tag-pair (lookup-tag-idx obj (-> arg0 name) 'exact (-> arg0 key-frame)))) + (let ((existing-tag (-> obj tag (-> tag-pair lo)))) + ;; If our existing tag is valid, but our key-frame is NaN, then we forget about it. + (if (and (>= (the-as int tag-pair) 0) + (!= (-> arg0 key-frame) (-> arg0 key-frame)) ;; check for NaN + ) + (set! tag-pair (new 'static 'res-tag-pair :lo #xffffffff :hi #xffffffff)) + ) + + ;; modify the input to have at least one element + (if (zero? (-> arg0 elt-count)) + (set! (-> arg0 elt-count) 1) + ) + + ;; next, we try to find some memory + (let ((data-size (length arg0))) ;; size in bytes to store the data. + (cond + ((and (>= (the-as int tag-pair) 0) + (>= (the-as uint (length existing-tag)) (the-as uint data-size)) + ) + ;; we have enough memory in the existing tag. + ;; so we can just reuse it. + (set! resource-mem (&+ (-> obj data-base) (-> existing-tag data-offset))) + + ;; but we want at least 8 byte alignment. If this fails, allocate with 16-byte alignment from the top. + (when (nonzero? (logand (the-as int resource-mem) 7)) + (set! resource-mem (logand -16 (&+ (-> obj data-top) 15))) + (set! (-> obj data-top) (&+ resource-mem data-size)) + ) + ) + (else + ;; the existing tag wasn't there, or it wasn't big enough. + ;; just allocate new memory. + (set! resource-mem (logand -16 (&+ (-> obj data-top) 15))) + (set! (-> obj data-top) (&+ resource-mem data-size)) + ) + ) + + ;; set our data offset. + (set! (-> arg0 data-offset) (&- resource-mem (the-as uint (-> obj data-base)))) + + ;; check for overflow of the data memory + ;; this will leave things in a bad state. + (when (>= (the-as int (&+ resource-mem data-size)) + (the-as int (&+ (-> obj data-base) (-> obj data-size))) + ) + (format 0 "ERROR: attempting to a new tag ~`res-tag`P data of #x~X bytes to ~A, but data memory is full.~%" + arg0 + data-size + obj + ) + (return (the-as res-tag #f)) + ) + ) + ) + + ;; next step is to add us to the list of tags. + (cond + ((< (the-as int tag-pair) 0) + ;; we couldn't reuse an existing tag. Need to allocate another + (cond + ((>= (-> obj length) (-> obj allocated-length)) + ;; but there isn't room for another tag. + (format 0 "ERROR: attempting to a new tag ~`res-tag`P to ~A, but tag memory is full.~%" + arg0 + obj + ) + (return (the-as res-tag #f)) + ) + (else + ;; allocate a new tag and sort, so the binary search works properly. + (set! (-> obj tag (-> obj length)) arg0) + (set! (-> obj length) (+ (-> obj length) 1)) + (sort! obj) + ) + ) + ) + (else + ;; reuse the existing tag. + (set! (-> obj tag (-> tag-pair lo)) arg0) + ) + ) + ) + arg0 + ) + +(defmethod add-data! res-lump ((obj res-lump) (arg0 res-tag) (arg1 pointer)) + "Given a tag and a pointer to its data, copy it to this res-lump. + This doesn't seem to do the right thing if the given tag is a non-inline tag + with > 1 element." + + ;; get a tag for this lump with memory for the given tag. + (let ((new-tag (allocate-data-memory-for-tag! obj arg0))) + (when new-tag + ;; get pointer to new tag's memory + (let* ((v1-2 obj) + (a1-1 new-tag) + (tag-mem (&+ (-> v1-2 data-base) (-> a1-1 data-offset))) + ) + (cond + ((zero? (-> new-tag inlined?)) + ;; this seems wrong, it should loop over the length maybe? + (length new-tag) ;; unused? + (set! (-> (the-as (pointer pointer) tag-mem)) arg1) + ) + (else + ;; otherwise, copy the memory. + (let ((a2-1 (length new-tag))) + (mem-copy! tag-mem arg1 a2-1) + ) + ) + ) + ) + ) + ) + obj + ) + +(defmethod add-32bit-data! res-lump ((obj res-lump) (arg0 res-tag) (arg1 object)) + "Add a single 32-bit value using add-data." + (set! (-> arg0 inlined?) 1) + (add-data! obj arg0 (& arg1)) ;; note, only 32-bits are spilled to the stack here. + #| + (local-vars (sv-16 object)) + (set! sv-16 arg1) + (let* ((v1-0 arg0) + (a1-4 (copy-and-set-bf v1-0 :inlined? 1)) + ) + (add-data! obj a1-4 (& sv-16)) + ) + |# + ) + (defmethod get-curve-data! res-lump ((obj res-lump) (curve-target curve) (points-name symbol) (knots-name symbol) (time float)) "Read curve data and write it to curve-target. Return #t if both control points and knots data was succesfully read, #f otherwise." @@ -720,10 +862,139 @@ This is updated from the entity system used in Crash 2, which had most of these ) ) -;; method 15 res-lump -;; method 17 res-lump -;; method 18 res-lump -;; mem-usage res-lump +(define-extern part-group-pointer? (function pointer symbol)) +(declare-type nav-mesh basic) +(declare-type collide-mesh basic) +(defmethod mem-usage res-lump ((obj res-lump) (block memory-usage-block) (flags int)) + "Get the memory usage of this lump and its data" + (local-vars (sv-16 int)) + + ;; get the name and ID + (let ((mem-use-id (mem-usage-id res)) + (mem-use-name "res") + ) + (cond + ((nonzero? (logand flags 256)) + (set! mem-use-id (mem-usage-id camera)) + (set! mem-use-name "camera") + ) + ((nonzero? (logand flags 64)) + (set! mem-use-id (mem-usage-id entity)) + (set! mem-use-name "entity") + ) + ((nonzero? (logand flags 128)) + (set! mem-use-id (mem-usage-id ambient)) + (set! mem-use-name "ambient") + ) + ((nonzero? (logand flags 512)) + (set! mem-use-id (mem-usage-id art-joint-geo)) + (set! mem-use-name "art-joint-geo") + ) + ) + + ;; set up the block + (set! (-> block length) (max (-> block length) (+ mem-use-id 1))) + (set! (-> block data mem-use-id name) mem-use-name) + + ;; the lump counts as 1 in the count field + (set! (-> block data mem-use-id count) (+ (-> block data mem-use-id count) 1)) + + ;; add the size of the lump itself. + (let ((obj-size (asize-of obj))) + (set! (-> block data mem-use-id used) + (+ (-> block data mem-use-id used) obj-size) + ) + (set! (-> block data mem-use-id total) + (+ (-> block data mem-use-id total) (logand -16 (+ obj-size 15))) + ) + ) + + ;; add the tags + (dotimes (tag-idx (-> obj length)) + (when (zero? (-> obj tag tag-idx inlined?)) + (let* ((a1-4 obj) + (a0-15 tag-idx) + (tag-data + (the-as basic + (-> (the-as (pointer uint32) (&+ (-> a1-4 data-base) (-> a1-4 tag a0-15 data-offset))) + ) + ) + ) + ) + ;; ref to non-inline data. Inline data would have been counted above. + (when (not (part-group-pointer? (the-as pointer tag-data))) + (case (-> (the-as basic tag-data) type) + ((symbol type) + ) + ((string) + ;; strings add like a normal object. + ;; this seems identical to the else case. + (set! (-> block length) (max (-> block length) (+ mem-use-id 1))) + (set! (-> block data mem-use-id name) mem-use-name) + (set! (-> block data mem-use-id count) + (+ (-> block data mem-use-id count) 1) + ) + (let ((v1-47 (asize-of tag-data))) + (set! (-> block data mem-use-id used) + (+ (-> block data mem-use-id used) v1-47) + ) + (set! (-> block data mem-use-id total) + (+ (-> block data mem-use-id total) (logand -16 (+ v1-47 15))) + ) + ) + ) + ((nav-mesh collide-mesh) + ;; these have their own implementation. + (mem-usage tag-data block flags) + ) + ((array) + (set! (-> block length) (max (-> block length) (+ mem-use-id 1))) + (set! (-> block data mem-use-id name) mem-use-name) + (set! (-> block data mem-use-id count) + (+ (-> block data mem-use-id count) 1) + ) + (let ((v1-63 (asize-of (the-as (array object) tag-data)))) + (set! (-> block data mem-use-id used) + (+ (-> block data mem-use-id used) v1-63) + ) + (set! (-> block data mem-use-id total) + (+ (-> block data mem-use-id total) (logand -16 (+ v1-63 15))) + ) + ) + ;; call mem usage on all of our children. + (set! sv-16 0) + (while (< sv-16 (-> (the-as array tag-data) length)) + (let ((a0-58 (-> (the-as (array object) tag-data) sv-16))) + ((method-of-type (rtype-of a0-58) mem-usage) a0-58 block flags) + ) + (set! sv-16 (+ sv-16 1)) + ) + ) + (else + ;; unknown type. + ;; we assume its nothing fancy and use the asize of. + (set! (-> block length) (max (-> block length) (+ mem-use-id 1))) + (set! (-> block data mem-use-id name) mem-use-name) + (set! (-> block data mem-use-id count) + (+ (-> block data mem-use-id count) 1) + ) + (let ((v1-88 (asize-of tag-data))) + (set! (-> block data mem-use-id used) + (+ (-> block data mem-use-id used) v1-88) + ) + (set! (-> block data mem-use-id total) + (+ (-> block data mem-use-id total) (logand -16 (+ v1-88 15))) + ) + ) + ) + ) + ) + ) + ) + ) + ) + (the-as res-lump 0) + ) (define *res-static-buf* (malloc 'global 128)) diff --git a/goal_src/engine/sparticle/sparticle-h.gc b/goal_src/engine/sparticle/sparticle-h.gc index feff9a13ef..e140822f03 100644 --- a/goal_src/engine/sparticle/sparticle-h.gc +++ b/goal_src/engine/sparticle/sparticle-h.gc @@ -81,3 +81,5 @@ :size-assert #x34 :flag-assert #x900000034 ) + +(define-extern part-group-pointer? (function pointer symbol)) diff --git a/goal_src/kernel/gcommon.gc b/goal_src/kernel/gcommon.gc index e2e9131d6b..426bbb3987 100644 --- a/goal_src/kernel/gcommon.gc +++ b/goal_src/kernel/gcommon.gc @@ -1388,3 +1388,13 @@ ) ) ) + +;; the decompiler may fail to recognize setting fields of a 128-bit bitfield +;; and will rely on this macro: +(defmacro copy-and-set-field (original field-name field-value) + `(let ((temp-copy ,original)) + (set! (-> temp-copy ,field-name) ,field-value) + temp-copy + ) + ) + diff --git a/test/decompiler/reference/decompiler-macros.gc b/test/decompiler/reference/decompiler-macros.gc index ed281abd9f..09e598077b 100644 --- a/test/decompiler/reference/decompiler-macros.gc +++ b/test/decompiler/reference/decompiler-macros.gc @@ -190,3 +190,10 @@ `(* (/ 1.0 ,TICKS_PER_SECOND) ,vel) ) +(defmacro copy-and-set-field (original field-name field-value) + `(let ((temp-copy ,original)) + (set! (-> temp-copy ,field-name) ,field-value) + temp-copy + ) + ) + diff --git a/test/decompiler/reference/engine/data/res-h_REF.gc b/test/decompiler/reference/engine/data/res-h_REF.gc index c816137876..2a595e5a7b 100644 --- a/test/decompiler/reference/engine/data/res-h_REF.gc +++ b/test/decompiler/reference/engine/data/res-h_REF.gc @@ -36,10 +36,10 @@ (get-property-value-float (_type_ symbol symbol float float (pointer res-tag) pointer) float :no-virtual 12) (get-tag-index-data (_type_ int) pointer 13) (get-tag-data (_type_ res-tag) pointer 14) - (dummy-15 (_type_ res-tag) res-tag 15) + (allocate-data-memory-for-tag! (_type_ res-tag) res-tag 15) (sort! (_type_) _type_ 16) - (dummy-17 (_type_ res-tag pointer) res-lump 17) - (dummy-18 (_type_ res-tag res-tag) res-lump 18) + (add-data! (_type_ res-tag pointer) res-lump 17) + (add-32bit-data! (_type_ res-tag object) res-lump 18) (lookup-tag-idx (_type_ symbol symbol float) res-tag-pair :no-virtual 19) (make-property-data (_type_ float res-tag-pair pointer) pointer 20) (get-curve-data! (_type_ curve symbol symbol float) symbol 21) @@ -47,6 +47,7 @@ ) ;; definition for method 3 of type res-lump +;; INFO: this function exists in multiple non-identical object files (defmethod inspect res-lump ((obj res-lump)) (format #t "[~8x] ~A~%" obj (-> obj type)) (format #t "~Tlength: ~D~%" (-> obj length)) diff --git a/test/decompiler/reference/engine/data/res_REF.gc b/test/decompiler/reference/engine/data/res_REF.gc new file mode 100644 index 0000000000..013febf6a1 --- /dev/null +++ b/test/decompiler/reference/engine/data/res_REF.gc @@ -0,0 +1,1151 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for method 2 of type res-tag +(defmethod print res-tag ((obj res-tag)) + (if (zero? (-> obj inlined?)) + (format + #t + "#" + (-> obj name) + (-> obj key-frame) + (-> obj elt-type) + (-> obj elt-count) + ) + (format + #t + "#" + (-> obj name) + (-> obj key-frame) + (-> obj elt-type) + (-> obj elt-count) + ) + ) + obj + ) + +;; definition for method 4 of type res-tag +;; INFO: Return type mismatch uint vs int. +(defmethod length res-tag ((obj res-tag)) + (the-as int (if (zero? (-> obj inlined?)) + (* (-> obj elt-count) 4) + (* (-> obj elt-count) (-> obj elt-type size)) + ) + ) + ) + +;; definition for method 13 of type res-lump +;; Used lq/sq +(defmethod get-tag-index-data res-lump ((obj res-lump) (arg0 int)) + (&+ (-> obj data-base) (-> obj tag arg0 data-offset)) + ) + +;; definition for method 14 of type res-lump +(defmethod get-tag-data res-lump ((obj res-lump) (arg0 res-tag)) + (&+ (-> obj data-base) (-> arg0 data-offset)) + ) + +;; definition for method 0 of type res-lump +(defmethod + new + res-lump + ((allocation symbol) (type-to-make type) (data-count int) (data-size int)) + (let + ((obj + (object-new + allocation + type-to-make + (the-as + int + (+ + (+ (-> type-to-make size) (the-as uint (* (+ data-count -1) 16))) + (the-as uint data-size) + ) + ) + ) + ) + ) + (set! (-> obj allocated-length) data-count) + (set! (-> obj data-size) data-size) + (set! (-> obj length) 0) + (set! (-> obj data-base) (&-> (-> obj tag) data-count)) + (set! (-> obj data-top) (&-> (-> obj tag) data-count)) + obj + ) + ) + +;; definition for method 4 of type res-lump +(defmethod length res-lump ((obj res-lump)) + (-> obj length) + ) + +;; definition for method 5 of type res-lump +;; INFO: Return type mismatch uint vs int. +(defmethod asize-of res-lump ((obj res-lump)) + (the-as + int + (+ + (+ (-> obj type psize) (the-as uint (* (-> obj allocated-length) 16))) + (the-as uint (-> obj data-size)) + ) + ) + ) + +;; definition for method 3 of type res-lump +;; INFO: this function exists in multiple non-identical object files +;; Used lq/sq +(defmethod inspect res-lump ((obj res-lump)) + (format #t "[~8x] ~A~%" obj (-> obj type)) + (format #t "~Textra: ~A~%" (-> obj extra)) + (format #t "~Tallocated-length: ~D~%" (-> obj allocated-length)) + (format #t "~Tlength: ~D~%" (-> obj length)) + (format #t "~Tdata-base: #x~X~%" (-> obj data-base)) + (format #t "~Tdata-top: #x~X~%" (-> obj data-top)) + (format #t "~Tdata-size: #x~X~%" (-> obj data-size)) + (format #t "~Ttag[~D]: @ #x~X~%" (-> obj allocated-length) (-> obj tag)) + (dotimes (i (-> obj length)) + (format #t "~T [~D] " i) + (print (-> obj tag i)) + (let ((t9-10 format) + (a0-12 #t) + (a1-9 " @ #x~X") + (a3-2 obj) + (a2-9 i) + ) + (t9-10 a0-12 a1-9 (&+ (-> a3-2 data-base) (-> a3-2 tag a2-9 data-offset))) + ) + (cond + ((zero? (-> obj tag i inlined?)) + (let ((t9-11 format) + (a0-14 #t) + (a1-10 " = ~A~%") + (a3-4 obj) + (a2-17 i) + ) + (t9-11 + a0-14 + a1-10 + (-> + (the-as + (pointer uint32) + (&+ (-> a3-4 data-base) (-> a3-4 tag a2-17 data-offset)) + ) + ) + ) + ) + ) + (else + (format #t "~%") + ) + ) + ) + obj + ) + +;; definition for method 19 of type res-lump +;; INFO: Return type mismatch int vs res-tag-pair. +;; Used lq/sq +(defmethod + lookup-tag-idx + res-lump + ((obj res-lump) (name-sym symbol) (mode symbol) (time float)) + (local-vars (tag-idx int)) + (when + (or + (= name-sym 'id) + (= name-sym 'aid) + (= name-sym 'trans) + (= name-sym 'rot) + (= name-sym 'nav-mesh) + (= name-sym 'process-type) + (= name-sym 'task) + ) + (crash!) + 0 + ) + (if (or (not obj) (zero? obj) (<= (-> obj length) 0)) + (return (new 'static 'res-tag-pair :lo #xffffffff :hi #xffffffff)) + ) + (let ((hi-tag-idx-out -1) + (lo-tag-idx-out -1) + ) + (let ((most-recent-invalid-time-idx -1) + (type-chars + (-> (the-as (pointer uint64) (-> (symbol->string name-sym) data)) 0) + ) + ) + (let ((max-search (+ (-> obj length) -1)) + (min-search 0) + ) + (while (>= max-search min-search) + (let* ((check-idx (+ min-search (/ (- max-search min-search) 2))) + (diff + (- + type-chars + (-> + (the-as + (pointer uint64) + (-> (symbol->string (-> obj tag check-idx name)) data) + ) + 0 + ) + ) + ) + ) + (cond + ((zero? diff) + (set! tag-idx check-idx) + (goto cfg-32) + ) + ((< (the-as int diff) 0) + (set! max-search (+ check-idx -1)) + ) + (else + (set! min-search (+ check-idx 1)) + ) + ) + ) + ) + ) + (set! tag-idx -1) + (label cfg-32) + (if (< tag-idx 0) + (return (the-as res-tag-pair tag-idx)) + ) + (while + (and + (> tag-idx 0) + (= + type-chars + (-> + (the-as + (pointer uint64) + (-> (symbol->string (-> obj tag (+ tag-idx -1) name)) data) + ) + 0 + ) + ) + ) + (+! tag-idx -1) + ) + (when (= mode 'base) + (set! lo-tag-idx-out tag-idx) + (set! hi-tag-idx-out tag-idx) + (goto cfg-73) + ) + (let ((interp-tag-idx tag-idx) + (tag-ptr (&-> (-> obj tag) tag-idx)) + ) + (while + (not + (or + (>= interp-tag-idx (-> obj length)) + (< + type-chars + (-> + (the-as + (pointer uint64) + (-> (symbol->string (-> tag-ptr 0 name)) data) + ) + 0 + ) + ) + ) + ) + (cond + ((!= name-sym (-> tag-ptr 0 name)) + ) + ((= (-> tag-ptr 0 key-frame) time) + (set! lo-tag-idx-out interp-tag-idx) + (set! hi-tag-idx-out interp-tag-idx) + (goto cfg-73) + ) + ((and (>= time (-> tag-ptr 0 key-frame)) (!= mode 'exact)) + (set! lo-tag-idx-out interp-tag-idx) + (set! hi-tag-idx-out interp-tag-idx) + (if (= (-> tag-ptr 0 key-frame) -1000000000.0) + (set! most-recent-invalid-time-idx interp-tag-idx) + ) + ) + ((< time (-> tag-ptr 0 key-frame)) + (if + (and (!= lo-tag-idx-out most-recent-invalid-time-idx) (= mode 'interp)) + (set! hi-tag-idx-out interp-tag-idx) + ) + (goto cfg-73) + ) + ) + (+! interp-tag-idx 1) + (set! tag-ptr (&-> tag-ptr 1)) + ) + ) + ) + (label cfg-73) + (the-as + res-tag-pair + (logior + (logand (the-as uint #xffffffff) (the-as uint lo-tag-idx-out)) + (the-as uint (shl hi-tag-idx-out 32)) + ) + ) + ) + ) + +;; definition for method 20 of type res-lump +;; Used lq/sq +(defmethod + make-property-data + res-lump + ((obj res-lump) (time float) (result res-tag-pair) (buf pointer)) + (rlet ((vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + ) + (let* ((tag-lo (-> obj tag (-> result lo))) + (tag-hi (-> obj tag (-> result hi))) + (elt-count (-> tag-lo elt-count)) + ) + (cond + ((zero? (-> tag-lo inlined?)) + (&+ (-> obj data-base) (-> tag-lo data-offset)) + ) + ((or + (not buf) + (= (-> result lo) (-> result hi)) + (!= elt-count (-> tag-hi elt-count)) + (!= (-> tag-lo elt-type) (-> tag-hi elt-type)) + ) + (let ((a0-4 tag-lo)) + (&+ (-> obj data-base) (-> a0-4 data-offset)) + ) + ) + (else + (let* + ((interp + (/ + (- time (-> tag-lo key-frame)) + (- (-> tag-hi key-frame) (-> tag-lo key-frame)) + ) + ) + (a1-4 obj) + (a2-7 tag-lo) + (src-lo (&+ (-> a1-4 data-base) (-> a2-7 data-offset))) + (src-hi (&+ (-> obj data-base) (-> tag-hi data-offset))) + ) + (case (-> tag-lo elt-type symbol) + (('float) + (dotimes (a0-8 (the-as int elt-count)) + (set! + (-> (the-as (pointer float) (&+ buf (* a0-8 4)))) + (+ + (* + (-> (the-as (pointer float) (&+ src-lo (* a0-8 4)))) + (- 1.0 interp) + ) + (* (-> (the-as (pointer float) (&+ src-hi (* a0-8 4)))) interp) + ) + ) + ) + buf + ) + (('integer 'sinteger 'uinteger 'int64 'uint64) + (let ((a0-9 (the int (* 4096.0 interp)))) + (dotimes (t0-9 (the-as int elt-count)) + (set! + (-> (the-as (pointer int64) (&+ buf (* t0-9 8)))) + (sar + (+ + (* + (the-as + int + (-> (the-as (pointer uint64) (&+ src-lo (* t0-9 8)))) + ) + (- 4096 a0-9) + ) + (* + (the-as + int + (-> (the-as (pointer uint64) (&+ src-hi (* t0-9 8)))) + ) + a0-9 + ) + ) + 12 + ) + ) + ) + ) + buf + ) + (('int8) + (let ((a0-10 (the int (* 4096.0 interp)))) + (dotimes (t0-10 (the-as int elt-count)) + (set! + (-> (the-as (pointer int8) (&+ buf t0-10))) + (sar + (+ + (* (-> (the-as (pointer int8) (&+ src-lo t0-10))) (- 4096 a0-10)) + (* (-> (the-as (pointer int8) (&+ src-hi t0-10))) a0-10) + ) + 12 + ) + ) + ) + ) + buf + ) + (('uint8) + (let ((a0-11 (the int (* 4096.0 interp)))) + (dotimes (t0-11 (the-as int elt-count)) + (set! + (-> (the-as (pointer uint8) (&+ buf t0-11))) + (shr + (+ + (* + (-> (the-as (pointer uint8) (&+ src-lo t0-11))) + (the-as uint (- 4096 a0-11)) + ) + (* + (-> (the-as (pointer uint8) (&+ src-hi t0-11))) + (the-as uint a0-11) + ) + ) + 12 + ) + ) + ) + ) + buf + ) + (('int16) + (let ((a0-12 (the int (* 4096.0 interp)))) + (dotimes (t0-12 (the-as int elt-count)) + (set! + (-> (the-as (pointer int16) (&+ buf (* t0-12 2)))) + (sar + (+ + (* + (-> (the-as (pointer int16) (&+ src-lo (* t0-12 2)))) + (- 4096 a0-12) + ) + (* (-> (the-as (pointer int16) (&+ src-hi (* t0-12 2)))) a0-12) + ) + 12 + ) + ) + ) + ) + buf + ) + (('uint16) + (let ((a0-13 (the int (* 4096.0 interp)))) + (dotimes (t0-13 (the-as int elt-count)) + (set! + (-> (the-as (pointer uint16) (&+ buf (* t0-13 2)))) + (shr + (+ + (* + (-> (the-as (pointer uint16) (&+ src-lo (* t0-13 2)))) + (the-as uint (- 4096 a0-13)) + ) + (* + (-> (the-as (pointer uint16) (&+ src-hi (* t0-13 2)))) + (the-as uint a0-13) + ) + ) + 12 + ) + ) + ) + ) + buf + ) + (('int32) + (let ((a0-14 (the int (* 4096.0 interp)))) + (dotimes (t0-14 (the-as int elt-count)) + (set! + (-> (the-as (pointer int32) (&+ buf (* t0-14 4)))) + (sar + (+ + (* + (-> (the-as (pointer int32) (&+ src-lo (* t0-14 4)))) + (- 4096 a0-14) + ) + (* (-> (the-as (pointer int32) (&+ src-hi (* t0-14 4)))) a0-14) + ) + 12 + ) + ) + ) + ) + buf + ) + (('uint32) + (let ((a0-15 (the int (* 4096.0 interp)))) + (dotimes (t0-15 (the-as int elt-count)) + (set! + (-> (the-as (pointer uint32) (&+ buf (* t0-15 4)))) + (shr + (+ + (* + (-> (the-as (pointer uint32) (&+ src-lo (* t0-15 4)))) + (the-as uint (- 4096 a0-15)) + ) + (* + (-> (the-as (pointer uint32) (&+ src-hi (* t0-15 4)))) + (the-as uint a0-15) + ) + ) + 12 + ) + ) + ) + ) + buf + ) + (('vector) + (let ((a0-16 interp)) + (.mov vf3 a0-16) + ) + (let ((a0-17 (- 1.0 interp))) + (.mov vf4 a0-17) + ) + (dotimes (a0-18 (the-as int elt-count)) + (let ((t0-17 (+ (* a0-18 16) (the-as int src-lo)))) + (.lvf vf1 (&-> (the-as (pointer int128) t0-17))) + ) + (let ((t0-19 (+ (* a0-18 16) (the-as int src-hi)))) + (.lvf vf2 (&-> (the-as (pointer int128) t0-19))) + ) + (.mul.x.vf vf1 vf1 vf4) + (.mul.x.vf vf2 vf2 vf3) + (.add.vf vf1 vf1 vf2) + (.svf (&-> (-> (the-as (inline-array vector) buf) a0-18) quad) vf1) + ) + buf + ) + (else + (let ((a0-19 tag-lo)) + (&+ (-> obj data-base) (-> a0-19 data-offset)) + ) + ) + ) + ) + ) + ) + ) + ) + ) + +;; definition for method 9 of type res-lump +;; Used lq/sq +(defmethod + get-property-data + res-lump + ((obj res-lump) + (name symbol) + (mode symbol) + (time float) + (default pointer) + (tag-addr (pointer res-tag)) + (buf-addr pointer) + ) + (let ((tag-pair (lookup-tag-idx obj name mode time))) + (cond + ((< (the-as int tag-pair) 0) + (empty) + ) + (else + (set! default (make-property-data obj time tag-pair buf-addr)) + (if tag-addr + (set! (-> tag-addr 0) (-> obj tag (-> tag-pair lo))) + ) + ) + ) + ) + default + ) + +;; definition for method 10 of type res-lump +;; INFO: Return type mismatch object vs structure. +;; Used lq/sq +(defmethod + get-property-struct + res-lump + ((obj res-lump) + (name symbol) + (mode symbol) + (time float) + (default structure) + (tag-addr (pointer res-tag)) + (buf-addr pointer) + ) + (let ((tag-pair (lookup-tag-idx obj name mode time))) + (cond + ((< (the-as int tag-pair) 0) + (empty) + ) + (else + (set! + default + (the-as structure (make-property-data obj time tag-pair buf-addr)) + ) + (let ((tag (-> obj tag (-> tag-pair lo)))) + (if tag-addr + (set! (-> tag-addr 0) tag) + ) + (if (zero? (-> tag inlined?)) + (set! default (the-as structure (-> (the-as (pointer uint32) default)))) + (empty) + ) + ) + ) + ) + ) + (the-as structure default) + ) + +;; definition for method 11 of type res-lump +;; INFO: Return type mismatch int vs uint128. +;; Used lq/sq +(defmethod + get-property-value + res-lump + ((obj res-lump) + (name symbol) + (mode symbol) + (time float) + (default uint128) + (tag-addr (pointer res-tag)) + (buf-addr pointer) + ) + (let ((tag-pair (lookup-tag-idx obj name mode time))) + (cond + ((< (the-as int tag-pair) 0) + (empty) + ) + (else + (let* ((a0-2 (-> tag-pair lo)) + (tag (-> obj tag a0-2)) + (tag-type (-> tag elt-type)) + (data (make-property-data obj time tag-pair buf-addr)) + ) + (if tag-addr + (set! (-> tag-addr 0) tag) + ) + (cond + ((type-type? tag-type uinteger) + (case (-> tag elt-type size) + ((1) + (set! default (the-as uint128 (-> (the-as (pointer uint8) data)))) + ) + ((2) + (set! default (the-as uint128 (-> (the-as (pointer uint16) data)))) + ) + ((4) + (set! default (the-as uint128 (-> (the-as (pointer uint32) data)))) + ) + ((16) + (set! default (-> (the-as (pointer uint128) data))) + ) + (else + (set! default (the-as uint128 (-> (the-as (pointer uint64) data)))) + ) + ) + ) + ((type-type? tag-type integer) + (case (-> tag elt-type size) + ((1) + (set! default (the-as uint128 (-> (the-as (pointer int8) data)))) + ) + ((2) + (set! default (the-as uint128 (-> (the-as (pointer int16) data)))) + ) + ((4) + (set! default (the-as uint128 (-> (the-as (pointer int32) data)))) + ) + ((16) + (set! default (-> (the-as (pointer uint128) data))) + ) + (else + (set! default (the-as uint128 (-> (the-as (pointer uint64) data)))) + ) + ) + ) + ((type-type? tag-type float) + (set! + default + (the-as uint128 (the int (-> (the-as (pointer float) data)))) + ) + ) + (else + (empty) + ) + ) + ) + ) + ) + ) + (the-as uint128 default) + ) + +;; definition for method 12 of type res-lump +;; Used lq/sq +(defmethod + get-property-value-float + res-lump + ((obj res-lump) + (name symbol) + (mode symbol) + (time float) + (default float) + (tag-addr (pointer res-tag)) + (buf-addr pointer) + ) + (local-vars (v1-8 uint) (v1-11 int)) + (let ((tag-pair (lookup-tag-idx obj name mode time))) + (cond + ((< (the-as int tag-pair) 0) + (empty) + ) + (else + (let* ((a0-2 (-> tag-pair lo)) + (tag (-> obj tag a0-2)) + (tag-type (-> tag elt-type)) + (data (make-property-data obj time tag-pair buf-addr)) + ) + (if tag-addr + (set! (-> tag-addr 0) tag) + ) + (cond + ((type-type? tag-type float) + (set! default (-> (the-as (pointer float) data))) + ) + ((type-type? tag-type uinteger) + (case (-> tag elt-type size) + ((1) + (set! v1-8 (-> (the-as (pointer uint8) data))) + ) + ((2) + (set! v1-8 (-> (the-as (pointer uint16) data))) + ) + ((4) + (set! v1-8 (-> (the-as (pointer uint32) data))) + ) + ((16) + (set! v1-8 (the-as uint (-> (the-as (pointer uint128) data)))) + ) + (else + (set! v1-8 (-> (the-as (pointer uint64) data))) + ) + ) + (set! default (the float v1-8)) + ) + ((type-type? tag-type integer) + (case (-> tag elt-type size) + ((1) + (set! v1-11 (-> (the-as (pointer int8) data))) + ) + ((2) + (set! v1-11 (-> (the-as (pointer int16) data))) + ) + ((4) + (set! v1-11 (-> (the-as (pointer int32) data))) + ) + ((16) + (set! v1-11 (the-as int (-> (the-as (pointer uint128) data)))) + ) + (else + (set! v1-11 (the-as int (-> (the-as (pointer uint64) data)))) + ) + ) + (set! default (the float v1-11)) + ) + (else + (empty) + ) + ) + ) + ) + ) + ) + default + ) + +;; definition for method 16 of type res-lump +;; Used lq/sq +(defmethod sort! res-lump ((obj res-lump)) + (let ((tags-sorted -1)) + (while (nonzero? tags-sorted) + (set! tags-sorted 0) + (let ((i 0) + (tag-stop (+ (-> obj length) -2)) + ) + (while (>= tag-stop i) + (let* ((tag1 (-> obj tag i)) + (tag2 (-> obj tag (+ i 1))) + (tag-name1 + (-> + (the-as + (pointer uint64) + (-> (symbol->string (-> tag1 name)) data) + ) + 0 + ) + ) + (tag-name2 + (-> + (the-as + (pointer uint64) + (-> (symbol->string (-> tag2 name)) data) + ) + 0 + ) + ) + ) + (when + (or + (< tag-name2 tag-name1) + (and + (= tag-name1 tag-name2) + (< (-> tag2 key-frame) (-> tag1 key-frame)) + ) + ) + (+! tags-sorted 1) + (set! (-> obj tag i) tag2) + (set! (-> obj tag (+ i 1)) tag1) + ) + ) + (+! i 1) + ) + ) + ) + ) + obj + ) + +;; definition for method 15 of type res-lump +;; Used lq/sq +(defmethod allocate-data-memory-for-tag! res-lump ((obj res-lump) (arg0 res-tag)) + (local-vars (resource-mem pointer)) + (let* + ((tag-pair (lookup-tag-idx obj (-> arg0 name) 'exact (-> arg0 key-frame))) + (existing-tag (-> obj tag (-> tag-pair lo))) + ) + 0 + (if + (and + (>= (the-as int tag-pair) 0) + (!= (-> arg0 key-frame) (-> arg0 key-frame)) + ) + (set! tag-pair (new 'static 'res-tag-pair :lo #xffffffff :hi #xffffffff)) + ) + (if (zero? (-> arg0 elt-count)) + (set! arg0 (copy-and-set-field arg0 elt-count 1)) + ) + (let ((data-size (length arg0))) + (cond + ((and + (>= (the-as int tag-pair) 0) + (>= (the-as uint (length existing-tag)) (the-as uint data-size)) + ) + (set! resource-mem (&+ (-> obj data-base) (-> existing-tag data-offset))) + (when (nonzero? (logand (the-as int resource-mem) 7)) + (set! resource-mem (logand -16 (&+ (-> obj data-top) 15))) + (set! (-> obj data-top) (&+ resource-mem data-size)) + ) + ) + (else + (set! resource-mem (logand -16 (&+ (-> obj data-top) 15))) + (set! (-> obj data-top) (&+ resource-mem data-size)) + ) + ) + (let* ((a0-22 arg0) + (s4-1 + (copy-and-set-field + a0-22 + data-offset + (&- resource-mem (the-as uint (-> obj data-base))) + ) + ) + ) + (when + (>= + (the-as int (&+ resource-mem data-size)) + (the-as int (&+ (-> obj data-base) (-> obj data-size))) + ) + (format + 0 + "ERROR: attempting to a new tag ~`res-tag`P data of #x~X bytes to ~A, but data memory is full.~%" + s4-1 + data-size + obj + ) + (return (the-as res-tag #f)) + ) + (cond + ((< (the-as int tag-pair) 0) + (cond + ((>= (-> obj length) (-> obj allocated-length)) + (format + 0 + "ERROR: attempting to a new tag ~`res-tag`P to ~A, but tag memory is full.~%" + s4-1 + obj + ) + (return (the-as res-tag #f)) + ) + (else + (set! (-> obj tag (-> obj length)) s4-1) + (set! (-> obj length) (+ (-> obj length) 1)) + (sort! obj) + ) + ) + ) + (else + (set! (-> obj tag (-> tag-pair lo)) s4-1) + ) + ) + s4-1 + ) + ) + ) + ) + +;; definition for method 17 of type res-lump +(defmethod add-data! res-lump ((obj res-lump) (arg0 res-tag) (arg1 pointer)) + (let ((new-tag (allocate-data-memory-for-tag! obj arg0))) + (when new-tag + (let* ((v1-2 obj) + (a1-1 new-tag) + (tag-mem (&+ (-> v1-2 data-base) (-> a1-1 data-offset))) + ) + (cond + ((zero? (-> new-tag inlined?)) + (length new-tag) + (set! (-> (the-as (pointer pointer) tag-mem) 0) arg1) + ) + (else + (let ((a2-1 (length new-tag))) + (mem-copy! tag-mem arg1 a2-1) + ) + ) + ) + ) + ) + ) + obj + ) + +;; definition for method 18 of type res-lump +(defmethod add-32bit-data! res-lump ((obj res-lump) (arg0 res-tag) (arg1 object)) + (local-vars (sv-16 object)) + (set! sv-16 arg1) + (let* ((v1-0 arg0) + (a1-4 (copy-and-set-field v1-0 inlined? 1)) + ) + (add-data! obj a1-4 (& sv-16)) + ) + ) + +;; definition for method 21 of type res-lump +;; Used lq/sq +(defmethod + get-curve-data! + res-lump + ((obj res-lump) (arg0 curve) (arg1 symbol) (arg2 symbol) (arg3 float)) + (local-vars (sv-16 res-tag) (sv-32 res-tag)) + (let ((s5-0 #f)) + (set! sv-16 (new 'static 'res-tag)) + (let + ((a0-2 + ((method-of-object obj get-property-data) + obj + arg1 + 'exact + arg3 + (the-as pointer #f) + (& sv-16) + *res-static-buf* + ) + ) + ) + (when a0-2 + (set! (-> arg0 cverts) a0-2) + (set! (-> arg0 num-cverts) (the-as int (-> sv-16 elt-count))) + (when (< 256 (-> arg0 num-cverts)) + (format + 0 + "ERROR: curve has ~D control points--only ~D are allowed. Increase MAX-CURVE-CONTROL-POINTS or shorten the curve.~%" + (-> arg0 num-cverts) + 256 + ) + (set! (-> arg0 num-cverts) 256) + ) + (set! sv-32 (new 'static 'res-tag)) + (let + ((a0-6 + ((method-of-object obj get-property-data) + obj + arg2 + 'exact + arg3 + (the-as pointer #f) + (& sv-32) + *res-static-buf* + ) + ) + ) + (when a0-6 + (set! (-> arg0 knots) (the-as (inline-array vector) a0-6)) + (set! (-> arg0 num-knots) (the-as int (-> sv-32 elt-count))) + (set! s5-0 #t) + ) + ) + ) + ) + s5-0 + ) + ) + +;; definition for method 8 of type res-lump +;; INFO: Return type mismatch int vs res-lump. +;; Used lq/sq +(defmethod + mem-usage + res-lump + ((obj res-lump) (block memory-usage-block) (flags int)) + (local-vars (sv-16 int)) + (let ((mem-use-id 48) + (mem-use-name "res") + ) + (cond + ((nonzero? (logand flags 256)) + (set! mem-use-id 44) + (set! mem-use-name "camera") + ) + ((nonzero? (logand flags 64)) + (set! mem-use-id 43) + (set! mem-use-name "entity") + ) + ((nonzero? (logand flags 128)) + (set! mem-use-id 49) + (set! mem-use-name "ambient") + ) + ((nonzero? (logand flags 512)) + (set! mem-use-id 73) + (set! mem-use-name "art-joint-geo") + ) + ) + (set! (-> block length) (max (-> block length) (+ mem-use-id 1))) + (set! (-> block data mem-use-id name) mem-use-name) + (set! + (-> block data mem-use-id count) + (+ (-> block data mem-use-id count) 1) + ) + (let ((obj-size (asize-of obj))) + (set! + (-> block data mem-use-id used) + (+ (-> block data mem-use-id used) obj-size) + ) + (set! + (-> block data mem-use-id total) + (+ (-> block data mem-use-id total) (logand -16 (+ obj-size 15))) + ) + ) + (dotimes (tag-idx (-> obj length)) + (when (zero? (-> obj tag tag-idx inlined?)) + (let* ((a1-4 obj) + (a0-15 tag-idx) + (tag-data + (the-as + basic + (-> + (the-as + (pointer uint32) + (&+ (-> a1-4 data-base) (-> a1-4 tag a0-15 data-offset)) + ) + ) + ) + ) + ) + (when (not (part-group-pointer? (the-as pointer tag-data))) + (case (-> tag-data type) + ((symbol type) + ) + ((string) + (set! (-> block length) (max (-> block length) (+ mem-use-id 1))) + (set! (-> block data mem-use-id name) mem-use-name) + (set! + (-> block data mem-use-id count) + (+ (-> block data mem-use-id count) 1) + ) + (let ((v1-47 (asize-of tag-data))) + (set! + (-> block data mem-use-id used) + (+ (-> block data mem-use-id used) v1-47) + ) + (set! + (-> block data mem-use-id total) + (+ (-> block data mem-use-id total) (logand -16 (+ v1-47 15))) + ) + ) + ) + ((nav-mesh collide-mesh) + (mem-usage (the-as collide-mesh tag-data) block flags) + ) + ((array) + (set! (-> block length) (max (-> block length) (+ mem-use-id 1))) + (set! (-> block data mem-use-id name) mem-use-name) + (set! + (-> block data mem-use-id count) + (+ (-> block data mem-use-id count) 1) + ) + (let ((v1-63 (asize-of (the-as (array object) tag-data)))) + (set! + (-> block data mem-use-id used) + (+ (-> block data mem-use-id used) v1-63) + ) + (set! + (-> block data mem-use-id total) + (+ (-> block data mem-use-id total) (logand -16 (+ v1-63 15))) + ) + ) + (set! sv-16 0) + (while (< sv-16 (-> (the-as array tag-data) length)) + (let ((a0-58 (-> (the-as (array object) tag-data) sv-16))) + ((method-of-type (rtype-of a0-58) mem-usage) a0-58 block flags) + ) + (set! sv-16 (+ sv-16 1)) + ) + ) + (else + (set! (-> block length) (max (-> block length) (+ mem-use-id 1))) + (set! (-> block data mem-use-id name) mem-use-name) + (set! + (-> block data mem-use-id count) + (+ (-> block data mem-use-id count) 1) + ) + (let ((v1-88 (asize-of tag-data))) + (set! + (-> block data mem-use-id used) + (+ (-> block data mem-use-id used) v1-88) + ) + (set! + (-> block data mem-use-id total) + (+ (-> block data mem-use-id total) (logand -16 (+ v1-88 15))) + ) + ) + ) + ) + ) + ) + ) + ) + ) + (the-as res-lump 0) + ) + +;; definition for symbol *res-static-buf*, type pointer +(define *res-static-buf* (malloc 'global 128)) diff --git a/test/decompiler/reference/engine/debug/menu_REF.gc b/test/decompiler/reference/engine/debug/menu_REF.gc index f8e07e571e..0f21cc7dcf 100644 --- a/test/decompiler/reference/engine/debug/menu_REF.gc +++ b/test/decompiler/reference/engine/debug/menu_REF.gc @@ -726,20 +726,16 @@ ;; INFO: Return type mismatch object vs function. (defun debug-menu-func-decode ((arg0 object)) (let ((v1-1 (rtype-of arg0))) - (the-as function (the-as symbol (cond - ((or (= v1-1 symbol) (= v1-1 type)) - (the-as - symbol - (-> (the-as symbol arg0) value) - ) - ) - ((= v1-1 function) - (the-as symbol arg0) - ) - (else - (the-as symbol nothing) - ) - ) + (the-as function (cond + ((or (= v1-1 symbol) (= v1-1 type)) + (the-as symbol (-> (the-as symbol arg0) value)) + ) + ((= v1-1 function) + (the-as symbol arg0) + ) + (else + (the-as symbol nothing) + ) ) ) ) diff --git a/test/decompiler/reference/engine/draw/process-drawable-h_REF.gc b/test/decompiler/reference/engine/draw/process-drawable-h_REF.gc index d0bccdab09..733511c24a 100644 --- a/test/decompiler/reference/engine/draw/process-drawable-h_REF.gc +++ b/test/decompiler/reference/engine/draw/process-drawable-h_REF.gc @@ -5,16 +5,15 @@ ;; INFO: Return type mismatch object vs cspace. (defun cspace-by-name-no-fail ((arg0 process-drawable) (arg1 string)) (let ((result (cspace-by-name arg0 arg1))) - (the-as cspace (the-as cspace (cond - (result - (empty) - (the-as cspace result) - ) - (else - (format 0 "no cspace (~A)~%" arg1) - (the-as cspace (-> arg0 node-list data)) - ) - ) + (the-as cspace (cond + (result + (empty) + (the-as cspace result) + ) + (else + (format 0 "no cspace (~A)~%" arg1) + (the-as cspace (-> arg0 node-list data)) + ) ) ) ) diff --git a/test/decompiler/reference/engine/entity/entity-table_REF.gc b/test/decompiler/reference/engine/entity/entity-table_REF.gc index f982fce174..d0b0e7cb3e 100644 --- a/test/decompiler/reference/engine/entity/entity-table_REF.gc +++ b/test/decompiler/reference/engine/entity/entity-table_REF.gc @@ -166,7 +166,7 @@ (-> arg0 method-table 13) (the-as function (-> v1-1 a1-0)) ) - (return (-> v1-1 a1-0)) + (return (the-as entity-info (-> v1-1 a1-0))) ) ) ) diff --git a/test/decompiler/reference/engine/game/task/task-control_REF.gc b/test/decompiler/reference/engine/game/task/task-control_REF.gc index 324fd81489..90e8bacfbf 100644 --- a/test/decompiler/reference/engine/game/task/task-control_REF.gc +++ b/test/decompiler/reference/engine/game/task/task-control_REF.gc @@ -5417,7 +5417,7 @@ (task-available? (-> gp-0 stage s5-0) gp-0) ) (first-any gp-0 #t) - (return (the-as int (-> gp-0 stage s5-0 status))) + (return (the-as task-status (-> gp-0 stage s5-0 status))) ) ) ) From 1e90da8e7c91bc6bd40752b899f0d0facf1d2771 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 17 Jul 2021 17:42:31 +0000 Subject: [PATCH 19/63] Updated github pages site --- docs/gh-pages-proj/src/config/progress.json | 2 +- docs/index.html | 2 +- docs/js/{about.369ba9e3.js => about.7917c4b3.js} | 4 ++-- docs/js/{about.369ba9e3.js.map => about.7917c4b3.js.map} | 2 +- docs/js/{app.4862d5e7.js => app.734a4a0b.js} | 4 ++-- docs/js/{app.4862d5e7.js.map => app.734a4a0b.js.map} | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) rename docs/js/{about.369ba9e3.js => about.7917c4b3.js} (99%) rename docs/js/{about.369ba9e3.js.map => about.7917c4b3.js.map} (99%) rename docs/js/{app.4862d5e7.js => app.734a4a0b.js} (97%) rename docs/js/{app.4862d5e7.js.map => app.734a4a0b.js.map} (98%) diff --git a/docs/gh-pages-proj/src/config/progress.json b/docs/gh-pages-proj/src/config/progress.json index e3cddafd80..a8fd6c7ded 100644 --- a/docs/gh-pages-proj/src/config/progress.json +++ b/docs/gh-pages-proj/src/config/progress.json @@ -1,7 +1,7 @@ { "jak1": { "locPercentage": { - "value": 107169, + "value": 107452, "label": "Lines of Code" } } diff --git a/docs/index.html b/docs/index.html index e7f8d3fcbc..5523133e04 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1 +1 @@ -OpenGOAL Tooling
\ No newline at end of file +OpenGOAL Tooling
\ No newline at end of file diff --git a/docs/js/about.369ba9e3.js b/docs/js/about.7917c4b3.js similarity index 99% rename from docs/js/about.369ba9e3.js rename to docs/js/about.7917c4b3.js index e9427a9f56..4016f16b9a 100644 --- a/docs/js/about.369ba9e3.js +++ b/docs/js/about.7917c4b3.js @@ -1,2 +1,2 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":107169,"label":"Lines of Code"}}}')}}]); -//# sourceMappingURL=about.369ba9e3.js.map \ No newline at end of file +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":107452,"label":"Lines of Code"}}}')}}]); +//# sourceMappingURL=about.7917c4b3.js.map \ No newline at end of file diff --git a/docs/js/about.369ba9e3.js.map b/docs/js/about.7917c4b3.js.map similarity index 99% rename from docs/js/about.369ba9e3.js.map rename to docs/js/about.7917c4b3.js.map index b92a00aec7..c754d92bd4 100644 --- a/docs/js/about.369ba9e3.js.map +++ b/docs/js/about.7917c4b3.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?a10c","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.369ba9e3.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?1e25","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"kIACA,IAAIA,EAAI,EAAQ,QACZC,EAAmB,EAAQ,QAC3BC,EAAW,EAAQ,QACnBC,EAAW,EAAQ,QACnBC,EAAY,EAAQ,QACpBC,EAAqB,EAAQ,QAIjCL,EAAE,CAAEM,OAAQ,QAASC,OAAO,GAAQ,CAClCC,KAAM,WACJ,IAAIC,EAAWC,UAAUC,OAASD,UAAU,QAAKE,EAC7CC,EAAIX,EAASY,MACbC,EAAYZ,EAASU,EAAEF,QACvBK,EAAIX,EAAmBQ,EAAG,GAE9B,OADAG,EAAEL,OAASV,EAAiBe,EAAGH,EAAGA,EAAGE,EAAW,OAAgBH,IAAbH,EAAyB,EAAIL,EAAUK,IACnFO,M,6DCjBX,W,+JCCA,IAAIC,EAAa,EAAQ,QACrBC,EAAmB,EAAQ,QAI/BC,EAAOC,QAAUH,EAAW,OAAO,SAAUI,GAC3C,OAAO,WAAiB,OAAOA,EAAKP,KAAMJ,UAAUC,OAASD,UAAU,QAAKE,MAC3EM,I,2DCPH,IAAII,EAAiB,EAAQ,QAAuCC,EAChEC,EAAS,EAAQ,QACjBC,EAAc,EAAQ,QACtBC,EAAO,EAAQ,QACfC,EAAa,EAAQ,QACrBC,EAAU,EAAQ,QAClBC,EAAiB,EAAQ,QACzBC,EAAa,EAAQ,QACrBC,EAAc,EAAQ,QACtBC,EAAU,EAAQ,QAAkCA,QACpDC,EAAsB,EAAQ,QAE9BC,EAAmBD,EAAoBE,IACvCC,EAAyBH,EAAoBI,UAEjDlB,EAAOC,QAAU,CACfkB,eAAgB,SAAUC,EAASC,EAAkBC,EAAQC,GAC3D,IAAIC,EAAIJ,GAAQ,SAAUK,EAAMC,GAC9BlB,EAAWiB,EAAMD,EAAGH,GACpBN,EAAiBU,EAAM,CACrBE,KAAMN,EACNO,MAAOvB,EAAO,MACdwB,WAAOpC,EACPqC,UAAMrC,EACNsC,KAAM,IAEHnB,IAAaa,EAAKM,KAAO,QACdtC,GAAZiC,GAAuBjB,EAAQiB,EAAUD,EAAKF,GAAQ,CAAEE,KAAMA,EAAMO,WAAYV,OAGlFW,EAAmBhB,EAAuBI,GAE1Ca,EAAS,SAAUT,EAAMU,EAAKC,GAChC,IAEIC,EAAUT,EAFVU,EAAQL,EAAiBR,GACzBc,EAAQC,EAASf,EAAMU,GAqBzB,OAlBEI,EACFA,EAAMH,MAAQA,GAGdE,EAAMR,KAAOS,EAAQ,CACnBX,MAAOA,EAAQf,EAAQsB,GAAK,GAC5BA,IAAKA,EACLC,MAAOA,EACPC,SAAUA,EAAWC,EAAMR,KAC3BW,UAAMhD,EACNiD,SAAS,GAENJ,EAAMT,QAAOS,EAAMT,MAAQU,GAC5BF,IAAUA,EAASI,KAAOF,GAC1B3B,EAAa0B,EAAMP,OAClBN,EAAKM,OAEI,MAAVH,IAAeU,EAAMV,MAAMA,GAASW,IACjCd,GAGPe,EAAW,SAAUf,EAAMU,GAC7B,IAGII,EAHAD,EAAQL,EAAiBR,GAEzBG,EAAQf,EAAQsB,GAEpB,GAAc,MAAVP,EAAe,OAAOU,EAAMV,MAAMA,GAEtC,IAAKW,EAAQD,EAAMT,MAAOU,EAAOA,EAAQA,EAAME,KAC7C,GAAIF,EAAMJ,KAAOA,EAAK,OAAOI,GAwFjC,OApFAjC,EAAYkB,EAAEmB,UAAW,CAIvBC,MAAO,WACL,IAAInB,EAAO9B,KACP2C,EAAQL,EAAiBR,GACzBoB,EAAOP,EAAMV,MACbW,EAAQD,EAAMT,MAClB,MAAOU,EACLA,EAAMG,SAAU,EACZH,EAAMF,WAAUE,EAAMF,SAAWE,EAAMF,SAASI,UAAOhD,UACpDoD,EAAKN,EAAMX,OAClBW,EAAQA,EAAME,KAEhBH,EAAMT,MAAQS,EAAMR,UAAOrC,EACvBmB,EAAa0B,EAAMP,KAAO,EACzBN,EAAKM,KAAO,GAKnB,OAAU,SAAUI,GAClB,IAAIV,EAAO9B,KACP2C,EAAQL,EAAiBR,GACzBc,EAAQC,EAASf,EAAMU,GAC3B,GAAII,EAAO,CACT,IAAIE,EAAOF,EAAME,KACbK,EAAOP,EAAMF,gBACVC,EAAMV,MAAMW,EAAMX,OACzBW,EAAMG,SAAU,EACZI,IAAMA,EAAKL,KAAOA,GAClBA,IAAMA,EAAKJ,SAAWS,GACtBR,EAAMT,OAASU,IAAOD,EAAMT,MAAQY,GACpCH,EAAMR,MAAQS,IAAOD,EAAMR,KAAOgB,GAClClC,EAAa0B,EAAMP,OAClBN,EAAKM,OACV,QAASQ,GAKbQ,QAAS,SAAiBC,GACxB,IAEIT,EAFAD,EAAQL,EAAiBtC,MACzBsD,EAAgB1C,EAAKyC,EAAYzD,UAAUC,OAAS,EAAID,UAAU,QAAKE,EAAW,GAEtF,MAAO8C,EAAQA,EAAQA,EAAME,KAAOH,EAAMT,MAAO,CAC/CoB,EAAcV,EAAMH,MAAOG,EAAMJ,IAAKxC,MAEtC,MAAO4C,GAASA,EAAMG,QAASH,EAAQA,EAAMF,WAMjDa,IAAK,SAAaf,GAChB,QAASK,EAAS7C,KAAMwC,MAI5B7B,EAAYkB,EAAEmB,UAAWrB,EAAS,CAGhC6B,IAAK,SAAahB,GAChB,IAAII,EAAQC,EAAS7C,KAAMwC,GAC3B,OAAOI,GAASA,EAAMH,OAIxBpB,IAAK,SAAamB,EAAKC,GACrB,OAAOF,EAAOvC,KAAc,IAARwC,EAAY,EAAIA,EAAKC,KAEzC,CAGFgB,IAAK,SAAahB,GAChB,OAAOF,EAAOvC,KAAMyC,EAAkB,IAAVA,EAAc,EAAIA,EAAOA,MAGrDxB,GAAaT,EAAeqB,EAAEmB,UAAW,OAAQ,CACnDQ,IAAK,WACH,OAAOlB,EAAiBtC,MAAMoC,QAG3BP,GAET6B,UAAW,SAAU7B,EAAGH,EAAkBC,GACxC,IAAIgC,EAAgBjC,EAAmB,YACnCkC,EAA6BtC,EAAuBI,GACpDmC,EAA2BvC,EAAuBqC,GAUtD5C,EAAec,EAAGH,GAAkB,SAAUoC,EAAUC,GACtD3C,EAAiBpB,KAAM,CACrBgC,KAAM2B,EACNnE,OAAQsE,EACRnB,MAAOiB,EAA2BE,GAClCC,KAAMA,EACN5B,UAAMrC,OAEP,WACD,IAAI6C,EAAQkB,EAAyB7D,MACjC+D,EAAOpB,EAAMoB,KACbnB,EAAQD,EAAMR,KAElB,MAAOS,GAASA,EAAMG,QAASH,EAAQA,EAAMF,SAE7C,OAAKC,EAAMnD,SAAYmD,EAAMR,KAAOS,EAAQA,EAAQA,EAAME,KAAOH,EAAMA,MAAMT,OAMjE,QAAR6B,EAAuB,CAAEtB,MAAOG,EAAMJ,IAAKwB,MAAM,GACzC,UAARD,EAAyB,CAAEtB,MAAOG,EAAMH,MAAOuB,MAAM,GAClD,CAAEvB,MAAO,CAACG,EAAMJ,IAAKI,EAAMH,OAAQuB,MAAM,IAN9CrB,EAAMnD,YAASM,EACR,CAAE2C,WAAO3C,EAAWkE,MAAM,MAMlCrC,EAAS,UAAY,UAAWA,GAAQ,GAK3CX,EAAWU,M,oCCtMf,IAAIxC,EAAI,EAAQ,QACZ+E,EAAS,EAAQ,QACjBC,EAAW,EAAQ,QACnBC,EAAW,EAAQ,QACnBC,EAAyB,EAAQ,QACjCtD,EAAU,EAAQ,QAClBD,EAAa,EAAQ,QACrBwD,EAAW,EAAQ,QACnBC,EAAQ,EAAQ,QAChBC,EAA8B,EAAQ,QACtCC,EAAiB,EAAQ,QACzBC,EAAoB,EAAQ,QAEhCpE,EAAOC,QAAU,SAAUoB,EAAkBD,EAASiD,GACpD,IAAI/C,GAA8C,IAArCD,EAAiBiD,QAAQ,OAClCC,GAAgD,IAAtClD,EAAiBiD,QAAQ,QACnC/C,EAAQD,EAAS,MAAQ,MACzBkD,EAAoBZ,EAAOvC,GAC3BoD,EAAkBD,GAAqBA,EAAkB7B,UACzD+B,EAAcF,EACdG,EAAW,GAEXC,EAAY,SAAUC,GACxB,IAAIC,EAAeL,EAAgBI,GACnCf,EAASW,EAAiBI,EACjB,OAAPA,EAAe,SAAazC,GAE1B,OADA0C,EAAaC,KAAKpF,KAAgB,IAAVyC,EAAc,EAAIA,GACnCzC,MACE,UAAPkF,EAAkB,SAAU1C,GAC9B,QAAOoC,IAAYP,EAAS7B,KAAe2C,EAAaC,KAAKpF,KAAc,IAARwC,EAAY,EAAIA,IAC1E,OAAP0C,EAAe,SAAa1C,GAC9B,OAAOoC,IAAYP,EAAS7B,QAAO1C,EAAYqF,EAAaC,KAAKpF,KAAc,IAARwC,EAAY,EAAIA,IAC9E,OAAP0C,EAAe,SAAa1C,GAC9B,QAAOoC,IAAYP,EAAS7B,KAAe2C,EAAaC,KAAKpF,KAAc,IAARwC,EAAY,EAAIA,IACjF,SAAaA,EAAKC,GAEpB,OADA0C,EAAaC,KAAKpF,KAAc,IAARwC,EAAY,EAAIA,EAAKC,GACtCzC,QAKTqF,EAAUnB,EACZxC,EAC4B,mBAArBmD,KAAqCD,GAAWE,EAAgB1B,UAAYkB,GAAM,YACvF,IAAIO,GAAoBS,UAAUxC,YAItC,GAAIuC,EAEFN,EAAcL,EAAOlD,eAAeC,EAASC,EAAkBC,EAAQC,GACvEwC,EAAuBmB,UAAW,OAC7B,GAAIrB,EAASxC,GAAkB,GAAO,CAC3C,IAAI8D,EAAW,IAAIT,EAEfU,EAAiBD,EAAS5D,GAAOgD,EAAU,IAAM,EAAG,IAAMY,EAE1DE,EAAuBpB,GAAM,WAAckB,EAASjC,IAAI,MAGxDoC,EAAmBpB,GAA4B,SAAUxC,GAAY,IAAI8C,EAAkB9C,MAE3F6D,GAAchB,GAAWN,GAAM,WAEjC,IAAIuB,EAAY,IAAIhB,EAChB5C,EAAQ,EACZ,MAAOA,IAAS4D,EAAUjE,GAAOK,EAAOA,GACxC,OAAQ4D,EAAUtC,KAAK,MAGpBoC,IACHZ,EAActD,GAAQ,SAAUqE,EAAO/D,GACrClB,EAAWiF,EAAOf,EAAarD,GAC/B,IAAII,EAAO2C,EAAkB,IAAII,EAAqBiB,EAAOf,GAE7D,YADgBjF,GAAZiC,GAAuBjB,EAAQiB,EAAUD,EAAKF,GAAQ,CAAEE,KAAMA,EAAMO,WAAYV,IAC7EG,KAETiD,EAAY/B,UAAY8B,EACxBA,EAAgBiB,YAAchB,IAG5BW,GAAwBE,KAC1BX,EAAU,UACVA,EAAU,OACVtD,GAAUsD,EAAU,SAGlBW,GAAcH,IAAgBR,EAAUrD,GAGxCgD,GAAWE,EAAgB7B,cAAc6B,EAAgB7B,MAU/D,OAPA+B,EAAStD,GAAoBqD,EAC7B7F,EAAE,CAAE+E,QAAQ,EAAM+B,OAAQjB,GAAeF,GAAqBG,GAE9DR,EAAeO,EAAarD,GAEvBkD,GAASF,EAAOhB,UAAUqB,EAAarD,EAAkBC,GAEvDoD,I,gGCrGT1E,EAAOC,QAAU,IAA0B,sC,oCCC3C,IAAIpB,EAAI,EAAQ,QACZ+G,EAA2B,EAAQ,QAAmDxF,EACtFpB,EAAW,EAAQ,QACnB6G,EAAa,EAAQ,QACrBC,EAAyB,EAAQ,QACjCC,EAAuB,EAAQ,QAC/BC,EAAU,EAAQ,QAGlBC,EAAY,GAAGC,SACfC,EAAMC,KAAKD,IAEXE,EAA0BN,EAAqB,YAE/CO,GAAoBN,IAAYK,KAA6B,WAC/D,IAAIE,EAAaX,EAAyBY,OAAO7D,UAAW,YAC5D,OAAO4D,IAAeA,EAAWE,SAF8B,GAOjE5H,EAAE,CAAEM,OAAQ,SAAUC,OAAO,EAAMuG,QAASW,IAAqBD,GAA2B,CAC1FH,SAAU,SAAkBQ,GAC1B,IAAIjF,EAAO+E,OAAOV,EAAuBnG,OACzCkG,EAAWa,GACX,IAAIC,EAAcpH,UAAUC,OAAS,EAAID,UAAU,QAAKE,EACpDmH,EAAM5H,EAASyC,EAAKjC,QACpBqH,OAAsBpH,IAAhBkH,EAA4BC,EAAMT,EAAInH,EAAS2H,GAAcC,GACnEE,EAASN,OAAOE,GACpB,OAAOT,EACHA,EAAUlB,KAAKtD,EAAMqF,EAAQD,GAC7BpF,EAAKsF,MAAMF,EAAMC,EAAOtH,OAAQqH,KAASC,M,yECzBjD,IAAIE,EAAW,SAAU/G,GACvB,aAEA,IAEIR,EAFAwH,EAAKC,OAAOvE,UACZwE,EAASF,EAAGG,eAEZC,EAA4B,oBAAXC,OAAwBA,OAAS,GAClDC,EAAiBF,EAAQG,UAAY,aACrCC,EAAsBJ,EAAQK,eAAiB,kBAC/CC,EAAoBN,EAAQO,aAAe,gBAE/C,SAAS1F,EAAO2F,EAAK1F,EAAKC,GAOxB,OANA8E,OAAO/G,eAAe0H,EAAK1F,EAAK,CAC9BC,MAAOA,EACP0F,YAAY,EACZC,cAAc,EACdtB,UAAU,IAELoB,EAAI1F,GAEb,IAEED,EAAO,GAAI,IACX,MAAO8F,GACP9F,EAAS,SAAS2F,EAAK1F,EAAKC,GAC1B,OAAOyF,EAAI1F,GAAOC,GAItB,SAAS6F,EAAKC,EAASC,EAASC,EAAMC,GAEpC,IAAIC,EAAiBH,GAAWA,EAAQxF,qBAAqB4F,EAAYJ,EAAUI,EAC/EC,EAAYtB,OAAO7G,OAAOiI,EAAe3F,WACzC8F,EAAU,IAAIC,EAAQL,GAAe,IAMzC,OAFAG,EAAUG,QAAUC,EAAiBV,EAASE,EAAMK,GAE7CD,EAcT,SAASK,EAASC,EAAIjB,EAAKkB,GACzB,IACE,MAAO,CAAEpH,KAAM,SAAUoH,IAAKD,EAAG/D,KAAK8C,EAAKkB,IAC3C,MAAOf,GACP,MAAO,CAAErG,KAAM,QAASoH,IAAKf,IAhBjC/H,EAAQgI,KAAOA,EAoBf,IAAIe,EAAyB,iBACzBC,EAAyB,iBACzBC,EAAoB,YACpBC,EAAoB,YAIpBC,EAAmB,GAMvB,SAASb,KACT,SAASc,KACT,SAASC,KAIT,IAAIC,EAAoB,GACxBA,EAAkBhC,GAAkB,WAClC,OAAO5H,MAGT,IAAI6J,EAAWtC,OAAOuC,eAClBC,EAA0BF,GAAYA,EAASA,EAASG,EAAO,MAC/DD,GACAA,IAA4BzC,GAC5BE,EAAOpC,KAAK2E,EAAyBnC,KAGvCgC,EAAoBG,GAGtB,IAAIE,EAAKN,EAA2B3G,UAClC4F,EAAU5F,UAAYuE,OAAO7G,OAAOkJ,GAWtC,SAASM,EAAsBlH,GAC7B,CAAC,OAAQ,QAAS,UAAUI,SAAQ,SAAS+G,GAC3C5H,EAAOS,EAAWmH,GAAQ,SAASf,GACjC,OAAOpJ,KAAKgJ,QAAQmB,EAAQf,SAkClC,SAASgB,EAAcvB,EAAWwB,GAChC,SAASC,EAAOH,EAAQf,EAAKmB,EAASC,GACpC,IAAIC,EAASvB,EAASL,EAAUsB,GAAStB,EAAWO,GACpD,GAAoB,UAAhBqB,EAAOzI,KAEJ,CACL,IAAI0I,EAASD,EAAOrB,IAChB3G,EAAQiI,EAAOjI,MACnB,OAAIA,GACiB,kBAAVA,GACP+E,EAAOpC,KAAK3C,EAAO,WACd4H,EAAYE,QAAQ9H,EAAMkI,SAASC,MAAK,SAASnI,GACtD6H,EAAO,OAAQ7H,EAAO8H,EAASC,MAC9B,SAASnC,GACViC,EAAO,QAASjC,EAAKkC,EAASC,MAI3BH,EAAYE,QAAQ9H,GAAOmI,MAAK,SAASC,GAI9CH,EAAOjI,MAAQoI,EACfN,EAAQG,MACP,SAASI,GAGV,OAAOR,EAAO,QAASQ,EAAOP,EAASC,MAvBzCA,EAAOC,EAAOrB,KA4BlB,IAAI2B,EAEJ,SAASC,EAAQb,EAAQf,GACvB,SAAS6B,IACP,OAAO,IAAIZ,GAAY,SAASE,EAASC,GACvCF,EAAOH,EAAQf,EAAKmB,EAASC,MAIjC,OAAOO,EAaLA,EAAkBA,EAAgBH,KAChCK,EAGAA,GACEA,IAKRjL,KAAKgJ,QAAUgC,EA2BjB,SAAS/B,EAAiBV,EAASE,EAAMK,GACvC,IAAInG,EAAQ0G,EAEZ,OAAO,SAAgBc,EAAQf,GAC7B,GAAIzG,IAAU4G,EACZ,MAAM,IAAI2B,MAAM,gCAGlB,GAAIvI,IAAU6G,EAAmB,CAC/B,GAAe,UAAXW,EACF,MAAMf,EAKR,OAAO+B,IAGTrC,EAAQqB,OAASA,EACjBrB,EAAQM,IAAMA,EAEd,MAAO,EAAM,CACX,IAAIgC,EAAWtC,EAAQsC,SACvB,GAAIA,EAAU,CACZ,IAAIC,EAAiBC,EAAoBF,EAAUtC,GACnD,GAAIuC,EAAgB,CAClB,GAAIA,IAAmB5B,EAAkB,SACzC,OAAO4B,GAIX,GAAuB,SAAnBvC,EAAQqB,OAGVrB,EAAQyC,KAAOzC,EAAQ0C,MAAQ1C,EAAQM,SAElC,GAAuB,UAAnBN,EAAQqB,OAAoB,CACrC,GAAIxH,IAAU0G,EAEZ,MADA1G,EAAQ6G,EACFV,EAAQM,IAGhBN,EAAQ2C,kBAAkB3C,EAAQM,SAEN,WAAnBN,EAAQqB,QACjBrB,EAAQ4C,OAAO,SAAU5C,EAAQM,KAGnCzG,EAAQ4G,EAER,IAAIkB,EAASvB,EAASX,EAASE,EAAMK,GACrC,GAAoB,WAAhB2B,EAAOzI,KAAmB,CAO5B,GAJAW,EAAQmG,EAAQ9E,KACZwF,EACAF,EAEAmB,EAAOrB,MAAQK,EACjB,SAGF,MAAO,CACLhH,MAAOgI,EAAOrB,IACdpF,KAAM8E,EAAQ9E,MAGS,UAAhByG,EAAOzI,OAChBW,EAAQ6G,EAGRV,EAAQqB,OAAS,QACjBrB,EAAQM,IAAMqB,EAAOrB,OAU7B,SAASkC,EAAoBF,EAAUtC,GACrC,IAAIqB,EAASiB,EAASvD,SAASiB,EAAQqB,QACvC,GAAIA,IAAWrK,EAAW,CAKxB,GAFAgJ,EAAQsC,SAAW,KAEI,UAAnBtC,EAAQqB,OAAoB,CAE9B,GAAIiB,EAASvD,SAAS,YAGpBiB,EAAQqB,OAAS,SACjBrB,EAAQM,IAAMtJ,EACdwL,EAAoBF,EAAUtC,GAEP,UAAnBA,EAAQqB,QAGV,OAAOV,EAIXX,EAAQqB,OAAS,QACjBrB,EAAQM,IAAM,IAAIuC,UAChB,kDAGJ,OAAOlC,EAGT,IAAIgB,EAASvB,EAASiB,EAAQiB,EAASvD,SAAUiB,EAAQM,KAEzD,GAAoB,UAAhBqB,EAAOzI,KAIT,OAHA8G,EAAQqB,OAAS,QACjBrB,EAAQM,IAAMqB,EAAOrB,IACrBN,EAAQsC,SAAW,KACZ3B,EAGT,IAAImC,EAAOnB,EAAOrB,IAElB,OAAMwC,EAOFA,EAAK5H,MAGP8E,EAAQsC,EAASS,YAAcD,EAAKnJ,MAGpCqG,EAAQhG,KAAOsI,EAASU,QAQD,WAAnBhD,EAAQqB,SACVrB,EAAQqB,OAAS,OACjBrB,EAAQM,IAAMtJ,GAUlBgJ,EAAQsC,SAAW,KACZ3B,GANEmC,GA3BP9C,EAAQqB,OAAS,QACjBrB,EAAQM,IAAM,IAAIuC,UAAU,oCAC5B7C,EAAQsC,SAAW,KACZ3B,GAoDX,SAASsC,EAAaC,GACpB,IAAIpJ,EAAQ,CAAEqJ,OAAQD,EAAK,IAEvB,KAAKA,IACPpJ,EAAMsJ,SAAWF,EAAK,IAGpB,KAAKA,IACPpJ,EAAMuJ,WAAaH,EAAK,GACxBpJ,EAAMwJ,SAAWJ,EAAK,IAGxBhM,KAAKqM,WAAWC,KAAK1J,GAGvB,SAAS2J,EAAc3J,GACrB,IAAI6H,EAAS7H,EAAM4J,YAAc,GACjC/B,EAAOzI,KAAO,gBACPyI,EAAOrB,IACdxG,EAAM4J,WAAa/B,EAGrB,SAAS1B,EAAQL,GAIf1I,KAAKqM,WAAa,CAAC,CAAEJ,OAAQ,SAC7BvD,EAAYtF,QAAQ2I,EAAc/L,MAClCA,KAAKyM,OAAM,GA8Bb,SAASzC,EAAOjI,GACd,GAAIA,EAAU,CACZ,IAAI2K,EAAiB3K,EAAS6F,GAC9B,GAAI8E,EACF,OAAOA,EAAetH,KAAKrD,GAG7B,GAA6B,oBAAlBA,EAASe,KAClB,OAAOf,EAGT,IAAK4K,MAAM5K,EAASlC,QAAS,CAC3B,IAAI+M,GAAK,EAAG9J,EAAO,SAASA,IAC1B,QAAS8J,EAAI7K,EAASlC,OACpB,GAAI2H,EAAOpC,KAAKrD,EAAU6K,GAGxB,OAFA9J,EAAKL,MAAQV,EAAS6K,GACtB9J,EAAKkB,MAAO,EACLlB,EAOX,OAHAA,EAAKL,MAAQ3C,EACbgD,EAAKkB,MAAO,EAELlB,GAGT,OAAOA,EAAKA,KAAOA,GAKvB,MAAO,CAAEA,KAAMqI,GAIjB,SAASA,IACP,MAAO,CAAE1I,MAAO3C,EAAWkE,MAAM,GA+MnC,OA5mBA0F,EAAkB1G,UAAYiH,EAAGlE,YAAc4D,EAC/CA,EAA2B5D,YAAc2D,EACzCA,EAAkBmD,YAActK,EAC9BoH,EACA3B,EACA,qBAaF1H,EAAQwM,oBAAsB,SAASC,GACrC,IAAIC,EAAyB,oBAAXD,GAAyBA,EAAOhH,YAClD,QAAOiH,IACHA,IAAStD,GAG2B,uBAAnCsD,EAAKH,aAAeG,EAAKC,QAIhC3M,EAAQ4M,KAAO,SAASH,GAQtB,OAPIxF,OAAO4F,eACT5F,OAAO4F,eAAeJ,EAAQpD,IAE9BoD,EAAOK,UAAYzD,EACnBpH,EAAOwK,EAAQ/E,EAAmB,sBAEpC+E,EAAO/J,UAAYuE,OAAO7G,OAAOuJ,GAC1B8C,GAOTzM,EAAQ+M,MAAQ,SAASjE,GACvB,MAAO,CAAEuB,QAASvB,IAsEpBc,EAAsBE,EAAcpH,WACpCoH,EAAcpH,UAAU8E,GAAuB,WAC7C,OAAO9H,MAETM,EAAQ8J,cAAgBA,EAKxB9J,EAAQgN,MAAQ,SAAS/E,EAASC,EAASC,EAAMC,EAAa2B,QACxC,IAAhBA,IAAwBA,EAAckD,SAE1C,IAAIC,EAAO,IAAIpD,EACb9B,EAAKC,EAASC,EAASC,EAAMC,GAC7B2B,GAGF,OAAO/J,EAAQwM,oBAAoBtE,GAC/BgF,EACAA,EAAK1K,OAAO8H,MAAK,SAASF,GACxB,OAAOA,EAAO1G,KAAO0G,EAAOjI,MAAQ+K,EAAK1K,WAuKjDoH,EAAsBD,GAEtB1H,EAAO0H,EAAIjC,EAAmB,aAO9BiC,EAAGrC,GAAkB,WACnB,OAAO5H,MAGTiK,EAAGwD,SAAW,WACZ,MAAO,sBAkCTnN,EAAQoN,KAAO,SAASC,GACtB,IAAID,EAAO,GACX,IAAK,IAAIlL,KAAOmL,EACdD,EAAKpB,KAAK9J,GAMZ,OAJAkL,EAAKE,UAIE,SAAS9K,IACd,MAAO4K,EAAK7N,OAAQ,CAClB,IAAI2C,EAAMkL,EAAKG,MACf,GAAIrL,KAAOmL,EAGT,OAFA7K,EAAKL,MAAQD,EACbM,EAAKkB,MAAO,EACLlB,EAQX,OADAA,EAAKkB,MAAO,EACLlB,IAsCXxC,EAAQ0J,OAASA,EAMjBjB,EAAQ/F,UAAY,CAClB+C,YAAagD,EAEb0D,MAAO,SAASqB,GAcd,GAbA9N,KAAKmD,KAAO,EACZnD,KAAK8C,KAAO,EAGZ9C,KAAKuL,KAAOvL,KAAKwL,MAAQ1L,EACzBE,KAAKgE,MAAO,EACZhE,KAAKoL,SAAW,KAEhBpL,KAAKmK,OAAS,OACdnK,KAAKoJ,IAAMtJ,EAEXE,KAAKqM,WAAWjJ,QAAQmJ,IAEnBuB,EACH,IAAK,IAAIb,KAAQjN,KAEQ,MAAnBiN,EAAKc,OAAO,IACZvG,EAAOpC,KAAKpF,KAAMiN,KACjBN,OAAOM,EAAK7F,MAAM,MACrBpH,KAAKiN,GAAQnN,IAMrBkO,KAAM,WACJhO,KAAKgE,MAAO,EAEZ,IAAIiK,EAAYjO,KAAKqM,WAAW,GAC5B6B,EAAaD,EAAUzB,WAC3B,GAAwB,UAApB0B,EAAWlM,KACb,MAAMkM,EAAW9E,IAGnB,OAAOpJ,KAAKmO,MAGd1C,kBAAmB,SAAS2C,GAC1B,GAAIpO,KAAKgE,KACP,MAAMoK,EAGR,IAAItF,EAAU9I,KACd,SAASqO,EAAOC,EAAKC,GAYnB,OAXA9D,EAAOzI,KAAO,QACdyI,EAAOrB,IAAMgF,EACbtF,EAAQhG,KAAOwL,EAEXC,IAGFzF,EAAQqB,OAAS,OACjBrB,EAAQM,IAAMtJ,KAGNyO,EAGZ,IAAK,IAAI3B,EAAI5M,KAAKqM,WAAWxM,OAAS,EAAG+M,GAAK,IAAKA,EAAG,CACpD,IAAIhK,EAAQ5C,KAAKqM,WAAWO,GACxBnC,EAAS7H,EAAM4J,WAEnB,GAAqB,SAAjB5J,EAAMqJ,OAIR,OAAOoC,EAAO,OAGhB,GAAIzL,EAAMqJ,QAAUjM,KAAKmD,KAAM,CAC7B,IAAIqL,EAAWhH,EAAOpC,KAAKxC,EAAO,YAC9B6L,EAAajH,EAAOpC,KAAKxC,EAAO,cAEpC,GAAI4L,GAAYC,EAAY,CAC1B,GAAIzO,KAAKmD,KAAOP,EAAMsJ,SACpB,OAAOmC,EAAOzL,EAAMsJ,UAAU,GACzB,GAAIlM,KAAKmD,KAAOP,EAAMuJ,WAC3B,OAAOkC,EAAOzL,EAAMuJ,iBAGjB,GAAIqC,GACT,GAAIxO,KAAKmD,KAAOP,EAAMsJ,SACpB,OAAOmC,EAAOzL,EAAMsJ,UAAU,OAG3B,KAAIuC,EAMT,MAAM,IAAIvD,MAAM,0CALhB,GAAIlL,KAAKmD,KAAOP,EAAMuJ,WACpB,OAAOkC,EAAOzL,EAAMuJ,gBAU9BT,OAAQ,SAAS1J,EAAMoH,GACrB,IAAK,IAAIwD,EAAI5M,KAAKqM,WAAWxM,OAAS,EAAG+M,GAAK,IAAKA,EAAG,CACpD,IAAIhK,EAAQ5C,KAAKqM,WAAWO,GAC5B,GAAIhK,EAAMqJ,QAAUjM,KAAKmD,MACrBqE,EAAOpC,KAAKxC,EAAO,eACnB5C,KAAKmD,KAAOP,EAAMuJ,WAAY,CAChC,IAAIuC,EAAe9L,EACnB,OAIA8L,IACU,UAAT1M,GACS,aAATA,IACD0M,EAAazC,QAAU7C,GACvBA,GAAOsF,EAAavC,aAGtBuC,EAAe,MAGjB,IAAIjE,EAASiE,EAAeA,EAAalC,WAAa,GAItD,OAHA/B,EAAOzI,KAAOA,EACdyI,EAAOrB,IAAMA,EAETsF,GACF1O,KAAKmK,OAAS,OACdnK,KAAK8C,KAAO4L,EAAavC,WAClB1C,GAGFzJ,KAAK2O,SAASlE,IAGvBkE,SAAU,SAASlE,EAAQ2B,GACzB,GAAoB,UAAhB3B,EAAOzI,KACT,MAAMyI,EAAOrB,IAcf,MAXoB,UAAhBqB,EAAOzI,MACS,aAAhByI,EAAOzI,KACThC,KAAK8C,KAAO2H,EAAOrB,IACM,WAAhBqB,EAAOzI,MAChBhC,KAAKmO,KAAOnO,KAAKoJ,IAAMqB,EAAOrB,IAC9BpJ,KAAKmK,OAAS,SACdnK,KAAK8C,KAAO,OACa,WAAhB2H,EAAOzI,MAAqBoK,IACrCpM,KAAK8C,KAAOsJ,GAGP3C,GAGTmF,OAAQ,SAASzC,GACf,IAAK,IAAIS,EAAI5M,KAAKqM,WAAWxM,OAAS,EAAG+M,GAAK,IAAKA,EAAG,CACpD,IAAIhK,EAAQ5C,KAAKqM,WAAWO,GAC5B,GAAIhK,EAAMuJ,aAAeA,EAGvB,OAFAnM,KAAK2O,SAAS/L,EAAM4J,WAAY5J,EAAMwJ,UACtCG,EAAc3J,GACP6G,IAKb,MAAS,SAASwC,GAChB,IAAK,IAAIW,EAAI5M,KAAKqM,WAAWxM,OAAS,EAAG+M,GAAK,IAAKA,EAAG,CACpD,IAAIhK,EAAQ5C,KAAKqM,WAAWO,GAC5B,GAAIhK,EAAMqJ,SAAWA,EAAQ,CAC3B,IAAIxB,EAAS7H,EAAM4J,WACnB,GAAoB,UAAhB/B,EAAOzI,KAAkB,CAC3B,IAAI6M,EAASpE,EAAOrB,IACpBmD,EAAc3J,GAEhB,OAAOiM,GAMX,MAAM,IAAI3D,MAAM,0BAGlB4D,cAAe,SAAS/M,EAAU8J,EAAYC,GAa5C,OAZA9L,KAAKoL,SAAW,CACdvD,SAAUmC,EAAOjI,GACjB8J,WAAYA,EACZC,QAASA,GAGS,SAAhB9L,KAAKmK,SAGPnK,KAAKoJ,IAAMtJ,GAGN2J,IAQJnJ,EA7sBK,CAotBiBD,EAAOC,SAGtC,IACEyO,mBAAqB1H,EACrB,MAAO2H,GAUPC,SAAS,IAAK,yBAAdA,CAAwC5H,K,kCCzuB1C,IAAInI,EAAI,EAAQ,QACZgQ,EAAa,EAAQ,QACrBC,EAAyB,EAAQ,QAIrCjQ,EAAE,CAAEM,OAAQ,SAAUC,OAAO,EAAMuG,OAAQmJ,EAAuB,SAAW,CAC3EC,KAAM,SAAcC,GAClB,OAAOH,EAAWlP,KAAM,IAAK,OAAQqP,O,kCCRzC,IAAIC,EAAU,EAAQ,QAClBjQ,EAAW,EAAQ,QACnBuB,EAAO,EAAQ,QAIfzB,EAAmB,SAAUK,EAAQ+P,EAAUC,EAAQvP,EAAWwP,EAAOC,EAAOC,EAAQC,GAC1F,IAGIC,EAHAC,EAAcL,EACdM,EAAc,EACdC,IAAQL,GAAS/O,EAAK+O,EAAQC,EAAS,GAG3C,MAAOG,EAAc9P,EAAW,CAC9B,GAAI8P,KAAeP,EAAQ,CAGzB,GAFAK,EAAUG,EAAQA,EAAMR,EAAOO,GAAcA,EAAaR,GAAYC,EAAOO,GAEzEL,EAAQ,GAAKJ,EAAQO,GACvBC,EAAc3Q,EAAiBK,EAAQ+P,EAAUM,EAASxQ,EAASwQ,EAAQhQ,QAASiQ,EAAaJ,EAAQ,GAAK,MACzG,CACL,GAAII,GAAe,iBAAkB,MAAMnE,UAAU,sCACrDnM,EAAOsQ,GAAeD,EAGxBC,IAEFC,IAEF,OAAOD,GAGTzP,EAAOC,QAAUnB,G,yCC/BjB,IAAI,EAAS,WAAa,IAAI8Q,EAAIjQ,KAASkQ,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACE,MAAM,CAAC,MAAQ,KAAK,CAACF,EAAG,QAAQ,CAACG,YAAY,SAASD,MAAM,CAAC,QAAU,SAAS,MAAQ,WAAW,CAACF,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAO,KAAK,MAAQ,WAAW,CAACF,EAAG,QAAQ,CAACE,MAAM,CAAC,aAAa,MAAM,YAAY,MAAM,IAAM,EAAQ,WAAyCF,EAAG,MAAMA,EAAG,KAAK,CAACH,EAAIO,GAAG,qEAAqEJ,EAAG,MAAMA,EAAG,QAAQ,CAACE,MAAM,CAAC,QAAU,WAAW,CAACF,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAO,SAAS,CAACF,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAO,kBAAkB,QAAU,GAAG,MAAQ,YAAY,CAACF,EAAG,SAAS,CAACH,EAAIO,GAAG,wBAAwBP,EAAIO,GAAG,qBAAqB,IAAI,GAAGJ,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAO,SAAS,CAACF,EAAG,QAAQ,CAACE,MAAM,CAAC,QAAU,GAAG,MAAQ,YAAY,KAAO,oBAAoB,CAACF,EAAG,SAAS,CAACH,EAAIO,GAAG,gBAAgBP,EAAIO,GAAG,qBAAqB,IAAI,GAAGJ,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAO,SAAS,CAACF,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAO,6BAA6B,OAAS,SAAS,QAAU,GAAG,MAAQ,gBAAgB,CAACF,EAAG,SAAS,CAACH,EAAIO,GAAG,uBAAuBP,EAAIO,GAAG,oBAAoB,IAAI,GAAGJ,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAO,SAAS,CAACF,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAO,0CAA0C,OAAS,SAAS,QAAU,GAAG,MAAQ,WAAW,CAACF,EAAG,SAAS,CAACH,EAAIO,GAAG,aAAaP,EAAIO,GAAG,iBAAiB,IAAI,IAAI,IAAI,IAAI,GAAGJ,EAAG,QAAQ,CAACA,EAAG,cAAc,CAACA,EAAG,QAAQ,CAACK,YAAY,CAAC,aAAa,OAAOH,MAAM,CAAC,MAAQ,SAAS,QAAU,WAAW,CAACF,EAAG,QAAQ,CAACE,MAAM,CAAC,MAAQ,WAAW,CAACF,EAAG,KAAK,CAACG,YAAY,8BAA8BD,MAAM,CAAC,GAAK,mBAAmB,CAACL,EAAIO,GAAG,yBAAyB,GAAGJ,EAAG,QAAQ,CAACE,MAAM,CAAC,MAAQ,SAAS,QAAU,WAAW,CAACF,EAAG,QAAQ,CAACE,MAAM,CAAC,MAAQ,WAAW,CAACF,EAAG,KAAK,CAACG,YAAY,gCAAgC,CAACN,EAAIO,GAAG,4BAA4B,GAAGJ,EAAG,QAAQ,CAACE,MAAM,CAAC,MAAQ,SAAS,QAAU,WAAW,CAACF,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAO,OAAO,CAACF,EAAG,cAAc,CAACH,EAAIO,GAAG,mBAAmBJ,EAAG,oBAAoB,CAACE,MAAM,CAAC,MAAQ,OAAO,eAAe,IAAI,MAAQL,EAAIS,qBAAqBC,WAAW,OAAS,GAAG,OAAS,OAAO,CAACV,EAAIO,GAAG,IAAIP,EAAIW,GAAGX,EAAIS,qBAAqBG,aAAa,MAAMZ,EAAIW,GAAGX,EAAIS,qBAAqBC,YAAY,SAAS,IAAI,GAAGP,EAAG,QAAQ,CAACK,YAAY,CAAC,aAAa,OAAOH,MAAM,CAAC,MAAQ,SAAS,QAAU,WAAW,CAACF,EAAG,QAAQ,CAACE,MAAM,CAAC,MAAQ,WAAW,CAACF,EAAG,KAAK,CAACG,YAAY,8BAA8BD,MAAM,CAAC,GAAK,mBAAmB,CAACL,EAAIO,GAAG,yBAAyB,GAAGJ,EAAG,QAAQ,CAACK,YAAY,CAAC,gBAAgB,QAAQH,MAAM,CAAC,QAAU,WAAWL,EAAIa,GAAIb,EAAa,WAAE,SAASc,EAAG9O,GAAO,OAAOmO,EAAG,QAAQ,CAAC5N,IAAI,KAAOP,EAAMqO,MAAM,CAAC,KAAO,MAAM,CAACF,EAAG,SAAS,CAACA,EAAG,cAAc,CAACK,YAAY,CAAC,aAAa,OAAO,OAAS,UAAU,CAACL,EAAG,IAAI,CAACG,YAAY,wCAAwC,CAACN,EAAIO,GAAG,IAAIP,EAAIW,GAAGG,EAAGC,OAAO,OAAOZ,EAAG,IAAI,CAACH,EAAIO,GAAG,IAAIP,EAAIW,GAAGG,EAAGE,KAAKC,OAAO,OAAOd,EAAG,MAAM,CAACG,YAAY,iBAAiB,CAACH,EAAG,MAAM,CAACG,YAAY,eAAe,CAACN,EAAIO,GAAGP,EAAIW,GAAGG,EAAGI,aAAaf,EAAG,iBAAiB,CAACA,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAO,GAAG,MAAQ,SAAS,KAAOS,EAAGK,SAAS,OAAS,WAAW,CAACnB,EAAIO,GAAG,oBAAoB,IAAI,IAAI,MAAK,IAAI,IAAI,IAAI,IAC7jGa,EAAkB,G,UCDtB,SAASC,EAAmBC,EAAKhH,EAASC,EAAQgH,EAAOC,EAAQjP,EAAK4G,GACpE,IACE,IAAIwC,EAAO2F,EAAI/O,GAAK4G,GAChB3G,EAAQmJ,EAAKnJ,MACjB,MAAOqI,GAEP,YADAN,EAAOM,GAILc,EAAK5H,KACPuG,EAAQ9H,GAER8K,QAAQhD,QAAQ9H,GAAOmI,KAAK4G,EAAOC,GAIxB,SAASC,EAAkBvI,GACxC,OAAO,WACL,IAAIV,EAAOzI,KACP2R,EAAO/R,UACX,OAAO,IAAI2N,SAAQ,SAAUhD,EAASC,GACpC,IAAI+G,EAAMpI,EAAGyI,MAAMnJ,EAAMkJ,GAEzB,SAASH,EAAM/O,GACb6O,EAAmBC,EAAKhH,EAASC,EAAQgH,EAAOC,EAAQ,OAAQhP,GAGlE,SAASgP,EAAOpJ,GACdiJ,EAAmBC,EAAKhH,EAASC,EAAQgH,EAAOC,EAAQ,QAASpJ,GAGnEmJ,OAAM1R,O,wBC/BN+R,EAAkBC,EAAQ,QAEjBD,IC0Hf,GACE5E,KAAM,OACN8E,WAAY,GACZ7O,KAAM,WACJ,MAAO,CACL8O,UAAW,GACXtB,qBAAsB,CACpBC,WAAY,EAApB,kCACQE,YAAa,EAArB,4BAIEoB,QAAS,WAAX,+IACA,qBADA,qGAAW,GAGTC,QAAS,CACPC,eAAgB,SAApB,KACM,OAAIC,EAAIvS,QAAUwS,EACTD,EAEFA,EAAIhL,MAAM,EAAGiL,GAAO,OAE7BC,cAAe,WAAnB,6JACA,uGADA,cACA,EADA,gBAIA,SAJA,OAMA,IAFA,EAJA,OAKA,IACA,YACA,aACA,mBACA,yBAEA,uCACA,uBAZA,qGAAmB,KClJ2T,I,iJCO9U,SAASC,EAAT,GACE,OAAO,SAAU,EAAV,GACL,IAAK,IAAL,OACOhL,OAAA,gCAAL,IACEvH,KAAA,QAAaA,KAAKwS,MAAlB,MAGJ,IAAK,IAAL,OACExS,KAAA,KAAUA,KAAKwS,MAAf,KAAsCC,EAAtC,KAKS,oBAAW,CACxBvP,KAAM,iBAAO,CACXwP,OADW,GAEXC,WAAY,KAGdC,QANwB,WAStB5S,KAAA,gBAAsBuS,EAAtB,UAA6C,CAAEM,WAAW,IAC1D7S,KAAA,oBAA0BuS,EAA1B,cAAqD,CAAEM,WAAW,O,8ECzBvD,gBAAW,CACxB5F,KADwB,YAGxB6F,MAAO,CACLC,MAAOlM,QAGTqL,QAAS,CACPc,mBADO,SACW,GAA8C,IAApB9P,EAAoB,uDAA9C,GAChB,wBAAWA,EAAP,OAEF,OAAA+P,EAAA,MAAa,0BAFqB,MAIlC,GAEF,kBAAW/P,EAAP,OAEF,OAAA+P,EAAA,MAAa,0BAFqB,MAIlC,IAEE,eAAJ,GACE/P,EAAA,uCACKA,EADQ,OAAb,IAEE,6BAFW,GAGX,yBAAmB6P,KAEZA,IACT7P,EAAA,uCACKA,EADQ,OAAb,qBAEE,GAAS,KAIb,IAGFgQ,aA9BO,SA8BK,GAA8C,IAApBhQ,EAAoB,uDAA9C,GACV,qBAAWA,EAAP,MAIF,OAFA,OAAA+P,EAAA,MAAa,0BAFqB,MAIlC,EAEF,qBAAW/P,EAAP,MAIF,OAFA,OAAA+P,EAAA,MAAa,0BAFqB,MAIlC,EAEF,GAAI,eAAJ,GACE/P,EAAA,uCACKA,EADQ,OAAb,IAEE6P,MAAO,GAAF,OAFM,GAGX,wBAAkBA,UAEf,GAAIA,EAAO,CAChB,MAAmCA,EAAA,4BAAnC,yBAAM,EAAN,KAAM,EAAN,KACA7P,EAAA,uCACKA,EADQ,OAAb,qBAEGiQ,EAAD,UAAwB,IAE1B,IACEjQ,EAAA,MAAW,SAAX,OAGJ,aCrES,gBAAW,CACxB+J,KADwB,aAGxB6F,MAAO,CACLM,UAAW,CAACC,OAAQxM,SAGtByM,SAAU,CACRC,kBADQ,WAEN,OAAOvT,KAAP,WAEFwT,iBAJQ,WAKN,IAAMJ,EAAYpT,KAAlB,kBAEA,aAAIoT,GACAzG,MAAM8G,SAAV,IAD8B,GAE9B,sCAAuBzT,KAAd,YAAiC,O,YCVjC,gBAAW,CACxBiN,KADwB,aAGxB6F,MAAO,CACLY,OAAQ,CAACL,OADJ,QAELM,UAAW,CAACN,OAFP,QAGLO,SAAU,CAACP,OAHN,QAILQ,UAAW,CAACR,OAJP,QAKLS,SAAU,CAACT,OALN,QAMLU,MAAO,CAACV,OAAQxM,SAGlByM,SAAU,CACRU,iBADQ,WAEN,IAAMC,EAAN,GAEMP,EAAS,eAAc1T,KAA7B,QACM6T,EAAY,eAAc7T,KAAhC,WACM8T,EAAW,eAAc9T,KAA/B,UACM2T,EAAY,eAAc3T,KAAhC,WACM4T,EAAW,eAAc5T,KAA/B,UACM+T,EAAQ,eAAc/T,KAA5B,OASA,OAPA,IAAYiU,EAAA,UACZ,IAAeA,EAAA,aACf,IAAcA,EAAA,YACd,IAAeA,EAAA,aACf,IAAcA,EAAA,YACd,IAAWA,EAAA,SAEX,M,gECrCS,SAASC,EAA2BC,EAAGC,GACpD,IAAIC,EAAuB,qBAAX1M,QAA0BwM,EAAExM,OAAOE,WAAasM,EAAE,cAElE,IAAKE,EAAI,CACP,GAAIC,MAAMhF,QAAQ6E,KAAOE,EAAKE,eAA2BJ,KAAOC,GAAkBD,GAAyB,kBAAbA,EAAEtU,OAAqB,CAC/GwU,IAAIF,EAAIE,GACZ,IAAIzH,EAAI,EAEJ4H,EAAI,aAER,MAAO,CACLC,EAAGD,EACHE,EAAG,WACD,OAAI9H,GAAKuH,EAAEtU,OAAe,CACxBmE,MAAM,GAED,CACLA,MAAM,EACNvB,MAAO0R,EAAEvH,OAGb+H,EAAG,SAAWC,GACZ,MAAMA,GAERnU,EAAG+T,GAIP,MAAM,IAAI7I,UAAU,yIAGtB,IAEItD,EAFAwM,GAAmB,EACnBC,GAAS,EAEb,MAAO,CACLL,EAAG,WACDJ,EAAKA,EAAGjP,KAAK+O,IAEfO,EAAG,WACD,IAAIK,EAAOV,EAAGvR,OAEd,OADA+R,EAAmBE,EAAK/Q,KACjB+Q,GAETJ,EAAG,SAAWK,GACZF,GAAS,EACTzM,EAAM2M,GAERvU,EAAG,WACD,IACOoU,GAAoC,MAAhBR,EAAG,WAAmBA,EAAG,YADpD,QAGE,GAAIS,EAAQ,MAAMzM,K,cCjDX,gBAAW,CACxB4E,KADwB,YAGxB6F,MAAO,CACLmC,QAAS,CAACC,QADL,QAELC,KAAMD,SAGR5B,SAAU,CACR8B,eADQ,WAEN,IAAMC,EAAN,GACMJ,EAAU,kBAAOjV,KAAP,QACZ6G,OAAO7G,KADK,UAAhB,IAEIA,KAAKiV,QAET,GAAIjV,KAAJ,KACEqV,EAAA,uBACK,qBAAWJ,EAAsB,CACtC,IADsC,EAChCjL,EAASiL,EAAA,MAAf,KADsC,IAGtC,GAHsC,IAGtC,2BAA4B,KAA5B,EAA4B,QAC1BI,EAAA,4BAJoC,oCAM7BJ,GACTI,EAAA,gBAGF,OAAOA,EAAA,2BACJA,EAAA,KAAD,MAAuB,GADzB,O,wBCZS,SAAAC,EAAA,MAAO,EAAD,QAAN,eAON,CACPrI,KADO,UAGP6F,MAAO,CACLyC,SADK,QAELC,OAFK,QAGLC,IAAK,CACHzT,KADG,OAEH0T,QAAS,QAIbpC,SAAU,CACRqC,QADQ,WAEN,qDACE,WADK,EAEL,oBAAqB3V,KAFhB,SAGL,kBAAmBA,KAHd,QAIFA,KAJE,cAKFA,KALE,kBAMFA,KAAKoV,iBAGZnB,OAXQ,WAYN,OAAOjU,KAAP,mBAIJ4V,OA5BO,SA4BD,GACJ,IAAM1S,EAAO,CACX2S,MAAO7V,KADI,QAEX8V,MAAO9V,KAFI,OAGX+V,GAAI/V,KAAK2S,YAGX,OAAOqD,EACLhW,KADM,IAENA,KAAKgT,mBAAmBhT,KAAxB,MAFM,GAGNA,KAAKiW,OAHP,YCzDJ,I,oBCaA,SAASC,EAAT,KACE,GAAsB,qBAAXC,QAA4B,yBAAvC,QAEA,IAAMC,EAAYC,EAAA,WAAlB,GACM5T,EAAQ4T,EAAd,MACA,EAA6B,+BAEzB,CAAEC,QAAF,EAAkBC,QAAS,IAFzB,EAAN,EAAM,QAAWA,EAAjB,EAAiBA,QAGXC,EAAW,IAAIC,sBAAqB,WAGtC,IAFFnR,EAEE,uDAHsC,KAGtC,uCAEF,GAAKoR,EAAL,UAEA,IAAMC,EAAiBrR,EAAA,MAAa,SAAA1C,GAAK,OAAIA,EAJ3C,mBASA0T,GACGF,EAAD,QACAM,EAAA,SAFF,MAIGN,EAAD,UAECM,EAAA,SAPL,MAUEJ,EAAQhR,EAASkR,EAAjB,GAGEG,GAAkBP,EAAtB,KAAsCQ,EAAtC,GACKF,EAAA,oBAzBP,GA4BAA,EAAA,SAAc,CAAEnW,MAAF,EAAeiW,YAE7BA,EAAAK,QAAA,IAGF,SAASD,EAAT,GAEOF,EAAL,WAEAA,EAAA,4BAAAA,UACOA,EAAP,UAGK,IAAMI,EAAY,CACvBZ,WACAU,UAGF,ICtDe,WAAiB,CAC9B3J,KAD8B,sBAG9B8J,WAAY,CAAEC,aAEdlE,MAAO,CACLmE,OADK,QAELC,cAFK,QAGLC,OAAQ,CACNnV,KAAM,CAACqR,OADD,QAENqC,QAAS,GAEXtT,KAAM,CACJJ,KAAM,CAACqR,OADH,QAEJqC,QAAS,IAEX3B,MAAO,CACL/R,KAAM,CAACqR,OADF,QAELqC,QAAS,GAEXjT,MAAO,CACLT,KAAM,CAACqR,OADF,QAELqC,QAAS,IAIbxS,KAAM,iBAAO,CACXkU,OADW,GAEXC,WAAW,IAGb/D,SAAU,CACRgE,eADQ,WAEN,OAAOjE,OAAOrT,KAAP,OAAqBA,KAAKiX,OAAS,EAA1C,IAGFM,cALQ,WAMN,OAAO,EAAI9Q,KAAJ,GAAczG,KAArB,QAGF2V,QATQ,WAUN,MAAO,CACL,+BAAgC3V,KAD3B,UAEL,qCAAsCA,KAFjC,cAGL,8BAA+BA,KAAKiX,SAIxCO,gBAjBQ,WAkBN,OAAIxX,KAAKyC,MAAT,EACE,EAGEzC,KAAKyC,MAAT,IACE,IAGKgV,WAAWzX,KAAlB,QAGF0X,gBA7BQ,WA8BN,OAAOjR,KAAA,UAAWzG,KAAKuX,eAAvB,KAGFI,iBAjCQ,WAkCN,OAAS,IAAM3X,KAAP,iBAAD,IAAuCA,KAAvC,cAAP,MAGF4X,YArCQ,WAsCN,OAAOvE,OAAOrT,KAAP,QAAsBA,KAAtB,KAAkCA,KAAlC,YAAP,GAGFiU,OAzCQ,WA0CN,MAAO,CACLP,OAAQ,eAAc1T,KADjB,gBAEL+T,MAAO,eAAc/T,KAAD,kBAIxB6X,UAhDQ,WAiDN,MAAO,CACLC,UAAW,UAAF,OAAYzE,OAAOrT,KAAD,QAAlB,UAIb+X,YAtDQ,WAuDN,OAAO/X,KAAKoX,QAAU,EAAI/D,OAAOrT,KAAP,QAAsBA,KAAhD,QAIJkS,QAAS,CACP8F,UADO,SACE,KACP,OAAOhY,KAAKmQ,eAAe,SAAU,CACnC0F,MAAO,wBAAF,OAD8B,GAEnCvF,MAAO,CACL2H,KADK,cAELC,GAAI,EAAIlY,KAFH,YAGLmY,GAAI,EAAInY,KAHH,YAILoY,EAAGpY,KAJE,OAKL,eAAgBA,KALX,YAML,mBAAoBA,KANf,gBAOL,oBAAqBqY,MAI3BC,OAfO,WAgBL,IAAMC,EAAW,CACfvY,KAAKkX,eAAiBlX,KAAKgY,UAAU,WADtB,GAEfhY,KAAKgY,UAAU,UAAWhY,KAF5B,mBAKA,OAAOA,KAAKmQ,eAAe,MAAO,CAChC2F,MAAO9V,KADyB,UAEhCsQ,MAAO,CACLkI,MADK,6BAELC,QAAS,GAAF,OAAKzY,KAAK+X,YAAV,YAAyB/X,KAAK+X,YAA9B,YAA6C,EAAI/X,KAAK+X,YAAtD,YAAqE,EAAI/X,KAAK+X,eAJzF,IAQFW,QA7BO,WA8BL,OAAO1Y,KAAKmQ,eAAe,MAAO,CAChCI,YAAa,6BACZvQ,KAAKiW,OAFR,UAIF0C,UAlCO,SAkCE,OACP3Y,KAAA,cAIJ4V,OAjI8B,SAiIxB,GACJ,OAAOI,EAAE,MAAOhW,KAAKkT,aAAalT,KAAlB,MAA8B,CAC5CuQ,YAD4C,sBAE5CD,MAAO,CACLsI,KADK,cAEL,gBAFK,EAGL,gBAHK,IAIL,gBAAiB5Y,KAAKkX,mBAAgBpX,EAAYE,KAAKwX,iBAEzD3B,MAAO7V,KARqC,QAS5C+W,WAAY,CAAC,CACX9J,KADW,YAEXxK,MAAOzC,KAAK2Y,YAEd7C,MAAO9V,KAbqC,OAc5C+V,GAAI/V,KAAK6Y,aACP,CACF7Y,KADE,SAEFA,KAjBF,eC/IJ,ICCA,SAAS8Y,EAAT,KACE,OAAO,kBAAM,OAAA7F,EAAA,MAAY,OAAD,OAAQ8F,EAAR,4CAAxB,KAUI,kBAGJ,IAAMC,EAAcD,GAAA,EAAkB,CACpCE,SAAUH,EAAgBC,EADU,GAEpCG,WAAYJ,EAAgBC,EAAOI,IAFrC,KAKA,OAAO,cAAW,CAChBlM,KADgB,qBAGhBmM,OAAQ,kBACN,EAAa,CACX1D,QAASsD,MCZX,kBAKJ,OAAO,EAAiB,IAAjB,UAAyD,CAC9D/L,KAD8D,YAG9D6F,MAAO,CACLuG,YAAa,CACXrX,KADW,OAEX0T,QAFW,WAGT,GAAK1V,KAAL,GAEA,OAAOA,KAAKsZ,GAAZ,cAGJC,SAAUrE,SAGZhS,KAf8D,WAgB5D,MAAO,CACLsW,UAAU,IAIdlG,SAAU,CACRmG,aADQ,WAEN,OAAKzZ,KAAL,YAEA,kBACGA,KAAD,YAAoBA,KAAKwZ,UAHG,KAQlC5G,QA/B8D,WAgC5D5S,KAAA,IAAoBA,KAAKsZ,GAAL,SAApBtZ,OAGF0Z,cAnC8D,WAoC5D1Z,KAAA,IAAoBA,KAAKsZ,GAAL,WAApBtZ,OAGFkS,QAAS,CACPyH,OADO,WAEL3Z,KAAA,oBAOU4Z,EAAlB,aChEM,aAAkD,MAA/BC,EAA+B,uDAAlD,QAAmCC,EAAe,uDAAlD,QACJ,OAAO,cAAW,CAChB7M,KADgB,aAGhB8M,MAAO,CAAEF,OAAMC,SAEfhH,MAAO,kBACL,EAAQ,CAAEkH,UAAU,IAGtB9W,KATgB,WAUd,MAAO,CACLsW,WAAYxZ,KAAK6Z,KAIrBI,OAAK,sBACH,GADG,SACH,GACEja,KAAA,gBAFC,sCAIK,KACN,IAAUA,KAAV,IAAwBA,KAAKka,MAAMJ,EAAnC,MALC,KAYU,IAAnB,IC7BMK,EAAiB,CACrBC,SADqB,QAErBC,OAFqB,QAGrBC,MAHqB,QAIrBC,KAJqB,QAKrBC,MALqB,QAMrBC,IAAKvF,SAQD,aAAuC,IAApBwF,EAAoB,uDAAvC,GACJ,OAAO,cAAW,CAChBzN,KADgB,eAEhB6F,MAAO4H,EAAA,OAAkB,eAAmBP,EAArCO,GAAiEP,IAI7D,UCfTQ,G,wCAAahT,OAAnB,eAIMiT,EAAN,GAEA,SAAS9C,EAAT,KACEpB,EAAA,kBACAA,EAAA,wBAGF,SAASmE,EAAT,KACEnE,EAAA,cAAmBjU,EAAnB,WASF,SAASqY,EAAT,GACE,qBAAOnG,EAAA,iBAGT,SAASoG,EAAT,GACE,wBAAOpG,EAAA,iBAGT,IAAMqG,EAAY,SAAC,EAAD,GAId,IADFvY,EACE,uDAJc,GAKZwY,EAAJ,EACIC,EAAJ,EAEA,IAAKH,EAAL,GAAyB,CACvB,IAAM1C,EAAS3B,EAAf,wBACMlX,EAASsb,EAAA,GAAkBnG,EAAA,QAAUA,EAAA,eAA5B,GAAf,EAEAsG,EAASzb,EAAA,QAAiB6Y,EAA1B,KACA6C,EAAS1b,EAAA,QAAiB6Y,EAA1B,IAGF,IAAIjB,EAAJ,EACI+D,EAAJ,GACIzE,EAAA,SAAcA,EAAA,QAAlB,QACEyE,EAAA,IACA/D,EAASV,EAAA,YAAT,EACAU,EAAS3U,EAAA,SAAwB2U,EAAS3Q,KAAA,KAAU,SAACwU,EAAD,cAA0BC,EAAD,EAAnC,IAA1C,GAEA9D,EAAS3Q,KAAA,KAAU,SAAAiQ,EAAA,wBAAsBA,EAAA,aAAhC,IAAT,EAGF,IAAM0E,EAAU,GAAH,QAAO1E,EAAA,YAAD,EAAmBU,GAAtC,EAAa,MACPiE,EAAU,GAAH,QAAO3E,EAAA,aAAD,EAAoBU,GAAvC,EAAa,MAEPkE,EAAI7Y,EAAA,mBAA4BwY,EAAtC,EAAU,MACJM,EAAI9Y,EAAA,mBAA4ByY,EAAtC,EAAU,MAEV,MAAO,CAAE9D,SAAQ+D,QAAOG,IAAGC,IAAGH,UAASC,YAGnCG,GAAU,CAEdC,KAFc,SAEV,KAGuB,IAAzBhZ,EAAyB,uDAHvB,GAKF,GAAKiU,EAAD,SAAgBA,EAAA,QAApB,SAIA,IAAMgF,EAAYC,SAAA,cAAlB,QACMC,EAAYD,SAAA,cAAlB,QAEAD,EAAA,eACAA,EAAA,gCAEIjZ,EAAJ,QACEiZ,EAAA,sBAA2BjZ,EAA3B,QAGF,MAAkDuY,EAAUrG,EAAG+B,EAA/D,GAAM,EAAN,EAAM,SAAN,EAAM,QAAN,EAAM,IAAN,EAAM,IAAN,EAAM,QAAgC2E,EAAtC,EAAsCA,QAEhCjZ,EAAO,GAAH,OAAV,EAAgBgV,EAAN,MACVwE,EAAA,gCACAA,EAAA,cACAA,EAAA,eAEAlF,EAAA,eAEA,IAAMpD,EAAW6C,OAAA,iBAAjB,GACI7C,GAAJ,WAAgBA,EAAA,WACdoD,EAAA,0BACAA,EAAA,mCAGFkF,EAAA,4CACAA,EAAA,8CACA9D,EAAU8D,EAAW,aAAZ,OAAyBN,EAAzB,aAA+BC,EAA/B,qBAA6CJ,EAA7C,YAAsDA,EAAtD,YAAT,EAAS,MACTN,EAAQe,EAAR,GACAA,EAAA,kBAA8B/U,OAAOgV,YAArC,OAEAC,YAAW,WACTF,EAAA,+CACAA,EAAA,yCACA9D,EAAU8D,EAAW,aAAZ,OAAyBR,EAAzB,aAAT,EAAS,qBACTP,EAAQe,EAAR,OAJF,KAQFG,KAlDc,SAkDV,GACF,GAAKrF,GAAOA,EAAR,SAAuBA,EAAA,QAA3B,SAEA,IAAM8E,EAAU9E,EAAA,uBAAhB,uBAEA,OAAI8E,EAAA,OAAJ,CACA,IAAMI,EAAYJ,EAAQA,EAAA,OAA1B,GAEA,IAAII,EAAA,QAAJ,UACKA,EAAA,wBAEL,IAAMI,EAAOH,YAAA,MAAoBxI,OAAOuI,EAAA,QAAxC,WACMK,EAAQxV,KAAA,IAAS,IAAT,EAAd,GAEAqV,YAAW,WACTF,EAAA,4CACAA,EAAA,0CACAf,EAAQe,EAAR,GAEAE,YAAW,WACT,IAAMN,EAAU9E,EAAA,uBAAhB,uBACI,IAAA8E,EAAA,QAAwB9E,EAAA,QAA5B,mBACEA,EAAA,eAAoBA,EAAA,QAApB,wBACOA,EAAA,QAAP,kBAGFkF,EAAA,YAAwBlF,EAAA,YAAekF,EAAvC,cAPF,OALF,QAkBJ,SAASM,GAAT,GACE,MAAwB,qBAAVzZ,KAAd,EAGF,SAAS0Z,GAAT,GACE,IAAM1Z,EAAN,GACMoN,EAAU8E,EAAhB,cAEA,GAAK9E,GAAYA,EAAb,UAAgCA,EAAA,QAAhC,UAA2D8E,EAA/D,IAKA,GAFAA,EAAA,MAEImG,EAAJ,GACEjL,EAAA,mBACAA,EAAA,wBAMA,GAAIA,EAAA,QAAJ,QAA6B,OAO/B,GALApN,EAAA,OAAeoN,EAAA,kBAA4BkL,EAA3C,GACIlL,EAAA,QAAJ,QACEpN,EAAA,MAAcoN,EAAA,QAAd,OAGEiL,EAAJ,GAAqB,CAEnB,GAAIjL,EAAA,QAAJ,gBAAqC,OAErCA,EAAA,wBAAkC,WAChC2L,GAAA,aAEF3L,EAAA,kBAA4BsG,OAAA,YAAkB,WACxCtG,GAAWA,EAAX,SAA8BA,EAAA,QAAlC,kBACEA,EAAA,0BACAA,EAAA,gCAHJ,QAOA2L,GAAA,aAIJ,SAASY,GAAT,GACE,IAAMvM,EAAU8E,EAAhB,cACA,GAAK9E,GAAYA,EAAjB,SAMA,GAJAsG,OAAA,aAAoBtG,EAAA,QAJO,WAQvB,aAAA8E,EAAA,MAAyB9E,EAAA,QAA7B,gBAQE,OAPAA,EAAA,0BACAA,EAAA,wBAF4D,UAK5DA,EAAA,kBAA4BiM,YAAW,WACrCM,GAAA,OAKJjG,OAAA,YAAkB,WACZtG,EAAJ,UACEA,EAAA,uBAGJ2L,GAAA,SAGF,SAASa,GAAT,GACE,IAAMxM,EAAU8E,EAAhB,cAEK9E,GAAYA,EAAjB,UAEIA,EAAA,QAAJ,kBACEA,EAAA,8BAGFsG,OAAA,aAAoBtG,EAAA,QAApB,YAGF,IAAIyM,IAAJ,EAEA,SAASC,GAAT,GACOD,IAAmB3H,EAAA,UAAc,OAAd,OAAgCA,EAAA,UAAc,OAAtE,QACE2H,IAAA,EACAH,GAAA,IAIJ,SAASK,GAAT,GACEF,IAAA,EACAF,GAAA,GAGF,SAASK,GAAT,IACE,IAAIH,KACFA,IAAA,EACAF,GAAA,IAIJ,SAASM,GAAT,OACE,IAAMC,EAAUT,GAAgB7F,EAAhC,OACA,GACEmF,GAAA,QAEF9E,EAAA,QAAaA,EAAA,SAAb,GACAA,EAAA,kBACA,IAAMjU,EAAQ4T,EAAA,OAAd,GACI5T,EAAJ,SACEiU,EAAA,qBAEEjU,EAAJ,QACEiU,EAAA,cAAmBL,EAAA,MAAnB,OAEE5T,EAAJ,SACEiU,EAAA,eAAoBjU,EAApB,QAEEka,IAAJ,GACEjG,EAAA,iCAA8C,CAAEkG,SAAS,IACzDlG,EAAA,+BAA4C,CAAEkG,SAAS,IACvDlG,EAAA,gCAAmD,CAAEkG,SAAS,IAC9DlG,EAAA,mCAEAA,EAAA,iCACAA,EAAA,+BACAA,EAAA,kCAEAA,EAAA,+BACAA,EAAA,6BAEAA,EAAA,wBAb0B,IAgB1BA,EAAA,gCAA6C,CAAEkG,SAAS,MAC9CD,GAAL,GACLE,GAAA,GAIJ,SAASA,GAAT,GACEnG,EAAA,oCACAA,EAAA,qCACAA,EAAA,mCACAA,EAAA,oCACAA,EAAA,sCACAA,EAAA,kCACAA,EAAA,qCACAA,EAAA,kCACAA,EAAA,gCACAA,EAAA,oCACAA,EAAA,+BAGF,SAASoG,GAAT,OACEJ,GAAahG,EAAIL,GAAjB,GAcF,SAAS,GAAT,UACSK,EAAP,QACAmG,GAAA,GAGF,SAASE,GAAT,KACE,GAAI1G,EAAA,QAAkBA,EAAtB,UAIA,IAAM2G,EAAad,GAAgB7F,EAAnC,UACAqG,GAAahG,EAAIL,EAAjB,IAGK,IAAM4G,GAAS,CACpBrc,KADoB,GAEpBgW,OAAA,GACAmG,WAGF,MCtVe,iBAAW,CACxB9P,KADwB,WAGxB8J,WAAY,CACVkG,OAAA,IAGFnK,MAAO,CACLuG,YADK,OAEL6D,OAFK,QAGL3D,SAHK,QAIL4D,MAAO,CACLnb,KADK,QAEL0T,aAAS5V,GAEXsd,UARK,QASLC,iBATK,OAULjO,KAVK,QAWLkO,KAAM,CAACzW,OAXF,QAYL0W,GAAI,CAAC1W,OAZA,QAaL2W,KAbK,QAcLC,QAdK,QAeLC,OAAQ,CACN1b,KAAM,CAACkT,QADD,QAENQ,QAAS,MAEXD,IAnBK,OAoBLjW,OAAQqH,QAGV3D,KAAM,iBAAO,CACXsW,UADW,EAEXmE,WAAY,KAGdrK,SAAU,CACRqC,QADQ,WAEN,IAAMA,EAAN,GAEA,OAAI3V,KAAJ,KAEIA,KAAJ,cAAsB2V,EAAQ3V,KAAR,aAA4BA,KAA5B,UAClBA,KAAJ,aAAqB2V,EAAQ3V,KAAR,YAA2BA,KAA3B,WAHD2V,GAOtBiI,eAXQ,WAWM,MACZ,gBAAO5d,KAAP,WAAwBA,KAAD,UAAkBA,KAAzC,aAEF6d,YAdQ,WAeN,OAAI7d,KAAJ,UAEOkV,QACLlV,KAAK8d,QACL9d,KAAK6Y,WADL,OAEA7Y,KAAK6Y,WAFL,WAGA7Y,KAAK+d,OAJP,WAOFD,OAxBQ,WAyBN,OAAO9d,KAAKud,IAAMvd,KAAX,MAAwBA,KAA/B,MAEFiU,OAAQ,sBAGVgG,MAAO,CACL+D,OAAQ,iBAGV9L,QAAS,CACP+L,MADO,SACF,GACHje,KAAA,kBAEFke,kBAJO,WAIU,MAEf,EADIf,EAAQnd,KAAZ,MAGMkD,GAAI,GACRoN,MAAO,CACL6N,SAAU,aAAcne,KAAd,OAA4BA,KAAK+d,OAAjC,cAAmDje,GAE/D+V,MAAO7V,KAJe,QAKtB8V,MAAO9V,KALe,OAMtB8S,MANsB,GAOtBiE,WAAY,CAAC,CACX9J,KADW,SAEXxK,MAAOzC,KAAK4d,kBATN,iBAWP5d,KAAKud,GAAK,WAAX,KAXQ,iCAYHvd,KAD0B,YAXvB,IAaNie,MAAOje,KAAKie,SAbN,uBAeH,QAfG,GAuBV,GALA,qBAAWje,KAAP,QACFmd,EAAoB,MAAZnd,KAAKud,IACVvd,KAAKud,KAAOhW,OAAOvH,KAAnB,KADH,MACkCA,KAAKud,GAAGa,MAGxCpe,KAAJ,GAAa,CAGX,IAAIqZ,EAAcrZ,KAAlB,YACIqd,EAAmBrd,KAAKqd,kBAA5B,EAEIrd,KAAJ,aACEqZ,EAAc,UAAGA,EAAH,YAAkBrZ,KAAlB,YAAd,OACAqd,EAAmB,UAAGA,EAAH,YAAuBrd,KAAvB,YAAnB,QAGFyV,EAAMzV,KAAKwd,KAAO,YAAlB,cACAjW,OAAA,OAAcrE,EAAd,MAA0B,CACxBqa,GAAIvd,KADoB,GAExBmd,QACAC,UAAWpd,KAHa,UAIxBqZ,cACAgE,mBACAH,OAAQld,KANgB,OAOxByd,QAASzd,KAAKyd,eAGhBhI,GAAOzV,KAAKsd,KAAN,IAAsBtd,KAAtB,MAAN,MAEI,MAAAyV,GAAezV,KAAnB,OAA8BkD,EAAA,WAAmBlD,KAAnB,MAKhC,OAFIA,KAAJ,SAAiBkD,EAAA,aAAqBlD,KAArB,QAEV,CAAEyV,MAAKvS,SAEhBmb,cA9DO,WA8DM,WACX,GAAKre,KAAD,IAAaA,KAAKse,MAAlB,MAAiCte,KAArC,QACA,IAAMqZ,EAAc,UAAGrZ,KAAKqZ,YAAR,YAAuBrZ,KAAK2d,YAA5B,IAApB,OAEMS,EAAO,qBAAH,OAAV,GAEApe,KAAA,WAAe,WAET,eAAqB,QAAD,KAAxB,IACE,gBAIN2Z,OAAQ,gBCtJG,I,UAAA,cAAW,CACxB1M,KADwB,WAGxB6F,MAAO,CACLyL,MADK,QAELC,MAFK,QAGLC,OAHK,QAILC,OAAQxJ,SAGV5B,SAAU,CACRqL,OADQ,WAEN,OAAOzJ,SACJlV,KAAD,SACCA,KADD,QAECA,KAFD,QAGCA,KAJH,SAOF4e,gBATQ,WAUN,MAAO,CACL,kBAAmB5e,KADd,OAEL,gBAAiBA,KAFZ,MAGL,kBAAmBA,KAHd,OAIL,gBAAiBA,KAJZ,MAKL,kBAAmBA,KAAKye,aCD1BI,GAAa,OAAAvJ,EAAA,MAAO,EAAD,QAKvB,EALuB,aAMvB,EAAkB,eAOL,GAAAuJ,GAAA,gBAAoC,CACjD5R,KADiD,QAGjD6F,MAAO,CACLuG,YAAa,CACXrX,KADW,OAEX0T,QAFW,WAGT,OAAK1V,KAAL,UAEOA,KAAK8e,UAAZ,YAF4B,KAKhCC,MATK,QAULC,UAVK,QAWLC,IAXK,QAYLC,KAZK,QAaLC,QAbK,QAcL5J,SAdK,QAeL6J,MAfK,QAgBLC,mBAhBK,QAiBLpK,QAjBK,QAkBLQ,IAAK,CACHzT,KADG,OAEH0T,QAAS,UAEX4J,KAtBK,QAuBLnK,KAvBK,QAwBLnT,KAAM,CACJA,KADI,OAEJ0T,QAAS,UAEXjT,MAAO,MAGTS,KAAM,iBAAO,CACXya,WAAY,kBAGdrK,SAAU,CACRqC,QADQ,WAEN,mFACE,SADK,GAEF,iCAFE,OAAP,IAGE,kBAAmB3V,KAHd,SAIL,eAAgBA,KAJX,MAKL,gBAAiBA,KALZ,OAML,kBAAmBA,KANd,SAOL,qBAAsBA,KAPjB,WAQL,aAAcA,KART,IASL,eAAgBA,KATX,MAUL,gBAAiBA,KAVZ,MAWL,cAAeA,KAXV,KAYL,cAAeA,KAZV,KAaL,iBAAkBA,KAbb,QAcL,kBAAmBA,KAdd,SAeL,eAAgBA,KAfX,MAgBL,eAAgBA,KAhBX,MAiBL,eAAgBA,KAjBX,QAkBL,iBAAkBA,KAlBb,QAmBL,gBAAiBA,KAnBZ,GAoBL,cAAeA,KApBV,KAqBL,cAAeA,KArBV,KAsBL,aAAcA,KAtBT,KAuBFA,KAvBE,cAwBFA,KAxBE,cAyBFA,KAzBE,kBA0BFA,KAAK4e,kBAGZrL,kBA/BQ,WAgCN,IAAIvT,KAAJ,SAEA,OAAO,0CAAP,OAEF4d,eApCQ,WAoCM,MACN2B,GAAgBvf,KAAKkf,OAAQlf,KAAb,KAAwB,CAAEwf,QAAQ,GACxD,OAAIxf,KAAJ,WACK,SAAOA,KAAP,cAEPyf,MAzCQ,WA0CN,OAAQzf,KAAD,OAAeA,KAAf,QAA8BA,KAA9B,WAAgDA,KAAvD,MAEF0f,WA5CQ,WA6CN,OAAOxK,SACJlV,KAAD,OACCA,KADD,OAECA,KAFD,WAGCA,KAHD,YAICA,KAJD,WAKCA,KALD,QAMmB,MAAlBA,KAAKoT,WAAqBC,OAAOrT,KAAP,WAP7B,KAUF2f,QAvDQ,WAwDN,OAAOzK,QACLlV,KAAKkf,MACLlf,KAFF,MAKFiU,OA7DQ,WA8DN,yBACKjU,KAAKgU,oBAKdpB,QA1GiD,WA0G1C,WACCgN,EAAgB,CACpB,CAAC,OADmB,QAEpB,CAAC,UAFmB,YAGpB,CAAC,QAHH,YAOAA,EAAA,SAAsB,YAA4B,0BAA3B,EAA2B,KAA5B,EAA4B,KAC5C,wBAAJ,IAA0C,eAASrQ,EAAUsQ,EAAnB,OAI9C3N,QAAS,CACP+L,MADO,SACF,IAEFje,KAAD,qBAA6BA,KAA7B,KAAyC2U,EAAzC,QAAqD3U,KAAK8f,IAA1D,OACA9f,KAAA,iBAEAA,KAAA,WAAkBA,KAAlB,UAEF+f,WARO,WASL,OAAO/f,KAAKmQ,eAAe,OAAQ,CACjCI,YAAa,kBACZvQ,KAAKiW,OAFR,UAIF+J,UAbO,WAcL,OAAOhgB,KAAKmQ,eAAe,OAAQ,CACjC0F,MAAO,iBACN7V,KAAKiW,OAAOgK,QAAU,CAACjgB,KAAKmQ,eAAe,EAAmB,CAC/D2C,MAAO,CACLoE,eADK,EAEL9U,KAFK,GAGL2R,MAAO,SAMf6B,OAjJiD,SAiJ3C,GACJ,IAAM2C,EAAW,CACfvY,KADe,aAEfA,KAAKmf,SAAWnf,KAFlB,aAIA,EAAsBA,KAAtB,oBAAM,EAAN,EAAM,IAAOkD,EAAb,EAAaA,KACPgd,EAAWlgB,KAAKyf,MAClBzf,KADa,mBAEbA,KAFJ,aAYA,MARA,WAAIyV,IACFvS,EAAA,WAAmBlD,KAAnB,KACAkD,EAAA,eAAuBlD,KAAvB,UAEFkD,EAAA,YAAoB,CAAC,SAAU,UAAUid,SAAS,OAA9B,OAA8B,CAAOngB,KAArC,QAChBA,KADgB,MAEhBogB,KAAA,UAAepgB,KAFnB,OAIOgW,EAAEP,EAAKzV,KAAKuZ,SAAWrW,EAAOgd,EAASlgB,KAAD,MAArC,GAAR,MCjMEqgB,I,wCAAU,CACdC,UADc,gBAEdC,UAAW,UAGb,SAASC,GAAT,GACE,IADgC,EAC1BC,EAAN,GADgC,IAGhB3K,EAAA,MAAYuK,GAA5B,YAHgC,IAGhC,2BAAgD,KAAhD,EAAgD,QAC9C,EAAiB5L,EAAA,MAAQ4L,GAAzB,iCAAI,EAAJ,KAAI,EAAJ,KACA7d,EAAMA,EAAN,OACA,IAIA,kBAAWiQ,IACTA,EAAMA,EAAN,QAEFgO,EAAS,eAAT,QAb8B,8BAgBhC,SASY,cACZ,IAD+B,EACzBC,EAAN,GACI9T,EAAYhN,UAAhB,OAIA,MAAOgN,IAGL,cAAarF,OAAA,KAAY3H,UAAzB,mBACE,OADF,EAAwC,KACtC,GAEE,YACA,iBACMA,UAAA,GAAJ,KACE8gB,EAAA,GAAoBC,GAAaD,EAAD,GAAoB9gB,UAAA,GAApD,KAEF,MACF,YACMA,UAAA,GAAJ,KACE8gB,EAAA,GAAoBE,GAAYF,EAAD,GAAoB9gB,UAAA,GAAnD,KAEF,MAEF,kBACE,IAAKA,UAAA,GAAL,GACE,WAEF,IAAI8gB,EAAA,KACFA,EAAA,OAEEA,EAAJ,KAEEA,EAAA,SAEFA,EAAA,IAAqB9gB,UAAA,MAArB,OACA,MAMF,SACA,eACMA,UAAA,GAAJ,KACE8gB,EAAA,GAAoBG,GAAeH,EAAD,GAAoB9gB,UAAA,GAAtD,KAEF,MAEF,YACA,YACA,eACA,kBACA,kBACA,WACA,iBACE,IAAKA,UAAA,GAAL,GACE,MAEG8gB,EAAL,KACEA,EAAA,OAEFA,EAAA,oCAAyB9gB,UAAA,GAAL,IAA4B8gB,EAAY7G,IAC5D,MAEF,QACO6G,EAAL,KACEA,EAAA,GAAoB9gB,UAAA,GAApB,IAMV,SAGI,iBAIJ,SACA,GAEAJ,EAAS,eAA8B,kBAAXA,EAAsBghB,GAA7B,GAArBhhB,GAEQA,EAAA,OAA6C,kBAAXgQ,EAAsBgR,GAA7B,GAAnC,IAJoBhhB,EADAgQ,EAQhB,iBACJ,SACA,GAEOhQ,EAAS,yBAAH,GAFOgQ,EADAhQ,EAMhB,cAIJ,8CAAc,OAAO,UAAP,8BACd,8CAAc,OAAO,UAAP,8BAId,IAFA,IAAMshB,EAAN,GAESlU,EAAT,EAAgBA,KAAM,CACpB,IAAMxD,EAAN,EAAS,qBAAT,OAAS,YAAT,GACA,IAAK,IAAL,OACOA,EAAL,KAEI0X,EAAJ,GAGEA,EAAA,GAAe,UAAyB1X,EAAzB,GAAqC0X,EAApD,IAGAA,EAAA,GAAc1X,EAAd,IAKN,SC5JF,SAAS2X,KAEkC,UADzCD,EACyC,uDAF3C,GAE2C,mBAF3C,EAE2C,iCAF3C,EAE2C,kBAGzC,OAAO,EAAAxM,SAAA,0BAAP,IAGI,eAGS,IADb0M,EACa,uDAHT,iBAGS,uCAEb,MAAO,CACL/T,OAEAgU,YAHK,EAKLnO,MAAO,CACLoO,MAAO,CACLlf,KADK,QAEL0T,SAAS,GAEXyL,YAAa,CACXnf,KADW,QAEX0T,SAAS,GAEX0L,cAAe,CACbpf,KADa,QAEb0T,SAAS,GAEX2L,KAAM,CACJrf,KADI,OAEJ0T,QAAS2L,GAEXL,OAAQ,CACNhf,KADM,OAEN0T,QAASsL,IAIbpL,OA5BK,SA4BC,KACJ,IAAMH,EAAM,aAAH,OAAgB3M,EAAA,qBAAzB,IACM5F,EAAkB,CACtB4P,MAAO,CACL7F,OACAoU,KAAMvY,EAAA,MAAcuY,MAEtBtL,GAAI,CACFuL,YADE,SACS,GACT5K,EAAA,sBAA2B5N,EAAA,MAA3B,OACA4N,EAAA,4BAAiC5N,EAAA,MAAjC,UA2CN,OAtCIA,EAAA,MAAJ,gBACE5F,EAAA,SAAiB6d,GAAiB7d,EAAA,GAAD,OAAkB,SAAAwT,GACjD,IAAM,EAAN,EAAM,YAAN,EAAM,aAAN,EAAM,YAAsC6K,EAA5C,EAA4CA,aAC5C7K,EAAA,yBAA8B,CAC5B8K,SAAU9K,EAAA,MADkB,SAE5B+D,IAAK/D,EAAA,MAFuB,IAG5B6D,KAAM7D,EAAA,MAHsB,KAI5B3C,MAAO2C,EAAA,MAJqB,MAK5BhD,OAAQgD,EAAA,MAAShD,QAEnBgD,EAAA,0BACAA,EAAA,UAAe+K,EAAf,KACA/K,EAAA,WAAgBgL,EAAhB,KACAhL,EAAA,YAAiBiL,EAAjB,KACAjL,EAAA,aAAkB6K,EAAlB,QAEFre,EAAA,cAAsB6d,GAAiB7d,EAAA,GAAD,YAAuB,SAAAwT,GAC3D,GAAIA,GAAMA,EAAV,yBAAuC,CACrC,MAA+CA,EAA/C,yBAAM,EAAN,EAAM,WAAN,EAAM,MAAN,EAAM,OAAN,EAAM,MAA8BhD,EAApC,EAAoCA,cAC7BgD,EAAP,yBACAA,EAAA,eAAoB8K,GAApB,GACA9K,EAAA,UAAe+D,GAAf,GACA/D,EAAA,WAAgB6D,GAAhB,GACA7D,EAAA,YAAiB3C,GAAjB,GACA2C,EAAA,aAAkBhD,GAAlB,QAIF5K,EAAA,MAAJ,cACE5F,EAAA,SAAiB6d,GAAiB7d,EAAA,GAAD,OAAkB,SAAAwT,GAChDA,EAAA,gBAA6BA,EAAA,MAA7B,QACDA,EAAA,wBAEFxT,EAAA,cAAsB6d,GAAiB7d,EAAA,GAAD,YAAuB,SAAAwT,GAC3D,IAAQA,EAAA,cAAoBA,EAAA,iBAApB,QAILV,EAAEP,EAAKmM,GAAU9Y,EAAD,KAAf,GAAqCA,EAA7C,YAKA,iBAGW,IAAfuY,EAAe,uDAHX,SAKJ,MAAO,CACLpU,OAEAgU,YAHK,EAKLnO,MAAO,CACLuO,KAAM,CACJrf,KADI,OAEJ0T,QAAS2L,IAIbzL,OAZK,SAYC,KACJ,OAAOI,EAAE,aAEP4L,GAAU9Y,EAAD,KAAe,CACtBgK,MAAO,CAAE7F,QACT8I,GAAI8L,IAEN/Y,EANF,YC5GQ,kBAA8C,IAAnCgZ,EAAmC,uDAA9C,GAAqCxG,EAAS,wDACpDyG,EAAezG,EAAI,QAAzB,SACM0G,EAAiB,SAAH,OAAY,eAAhC,IAEA,MAAO,CACLV,YADK,SACM,GACT5K,EAAA,QAAaA,EAAb,WACAA,EAAA,8BACEuL,WAAYvL,EAAA,MADK,WAEjBwL,SAAUxL,EAAA,MAFO,UAGjB,EAAgBA,EAAA,WAIpByL,MAVK,SAUA,GACH,IAAMC,EAAe1L,EAArB,cAEAA,EAAA,sCAH0B,aAK1BA,EAAA,wBACA,IAAM2B,EAAS,GAAH,OAAM3B,EAAlB,GAAY,MAEZA,EAAA,aAEKA,EAVqB,aAY1BA,EAAA,iBAAsB0L,EAAtB,WAEIN,GAAuBpL,EAA3B,SACEA,EAAA,yBAGF2L,uBAAsB,WACpB3L,EAAA,eAIJ4L,WAjCK,EAkCLC,eAlCK,EAoCLC,MApCK,SAoCA,GACH9L,EAAA,8BACEuL,WADiB,GAEjBC,SAAUxL,EAAA,MAFO,UAGjB,EAAgBA,EAAA,UAGlBA,EAAA,wBACAA,EAAA,mBAA4BA,EAA5B,SACKA,EATqB,aAW1B2L,uBAAsB,kBAAO3L,EAAA,SAA7B,QAGF+L,aACAC,eAAgBD,GAGlB,cACMX,GAAuBpL,EAA3B,SACEA,EAAA,4BAEFiM,EAAA,GAGF,cACE,IAAMvgB,EAAOsU,EAAA,cAAb,GACAA,EAAA,eAAoBA,EAAA,cAApB,SACA,MAAItU,IAAcsU,EAAA,mBACXA,EAAP,gBC9DSkM,IAXsBC,GAA5B,uBACmCA,GAAnC,+BACuBA,GAAvB,kBAC8BA,GAA9B,0BACwBA,GAAxB,mBACuBA,GAAuB,iBAAkB,gBAAhE,UAG0BA,GAA1B,qBACgCA,GAAhC,4BAC6BA,GAA7B,yBACwBA,GAAxB,oBAMMC,IALmBD,GAAzB,oBAC2BA,GAA3B,uBACkCA,GAAlC,+BAC2BA,GAA3B,uBACkCA,GAAlC,+BAC0BA,GAA1B,uBACiCA,GAAjC,8BAC0BA,GAA1B,sBACiCA,GAAjC,8BAG0BE,GAA2B,oBAAqB,MAC/CA,GAA2B,sBAAuB,GAA0B,IAAvG,ICxBD,cAEY,IADhBlJ,EACgB,uDAFZ,QAEJC,EAAgB,uDAFZ,SAIJ,OAAO,cAAW,CAChB7M,KADgB,YAGhB8M,MAAO,CACLF,OACAC,SAGFhH,MAAO,kBACL,EAAQ,CACNkH,UAAU,IAId9W,KAdgB,WAed,MAAO,CACL8f,kBAAmBhjB,KAAK6Z,KAI5BvG,SAAU,CACR2P,cAAe,CACbzf,IADa,WAEX,OAAOxD,KAAP,mBAEFqB,IAJa,SAIV,GACGoR,IAAQzS,KAAZ,oBAEAA,KAAA,oBAEAA,KAAA,eAKNia,MAAO,kBACL,GADG,SACH,GACEja,KAAA,yBAOR,IAAMkjB,GAAY,KAElB,MCjCM,GAAa,OAAA5N,EAAA,MAAO,EAExB,EAAoB,CAAC,WAAY,QAAS,MAFnB,cAAzB,QAQe,aAAkB,CAC/BrI,KAD+B,oBAG/B8J,WAAY,CAAEC,aAEdlE,MAAO,CACLqQ,OAAQ,CACNnhB,KADM,QAEN0T,SAAS,GAEX0N,gBAAiB,CACfphB,KADe,OAEf0T,QAAS,MAEX2N,kBAAmB,CACjBrhB,KAAM,CAACqR,OADU,QAEjBqC,QAAS,MAEX4N,YAAa,CACXthB,KAAM,CAACqR,OADI,QAEXqC,QAAS,KAEX3C,MAAO,CACL/Q,KADK,OAEL0T,QAAS,WAEXhC,OAAQ,CACN1R,KAAM,CAACqR,OADD,QAENqC,QAAS,GAEXwB,cAzBK,QA0BLqM,MA1BK,QA2BL3V,QA3BK,QA4BLqH,QA5BK,QA6BLuO,OA7BK,QA8BLC,QA9BK,QA+BLhhB,MAAO,CACLT,KAAM,CAACqR,OADF,QAELqC,QAAS,IAIbxS,KA1C+B,WA2C7B,MAAO,CACL8f,kBAAmBhjB,KAAKyC,OADnB,EAEL4U,WAAW,IAIf/D,SAAU,CACRoQ,mBADQ,WAEN,OAAO1jB,KAAKmQ,eAAe,MAAOnQ,KAAKgT,mBAAmBhT,KAAKojB,iBAAmBpjB,KAAhD,MAA4D,CAC5FuQ,YAD4F,gCAE5FuF,MAAO9V,KAAK2jB,oBAGhBC,YAPQ,WAQN,OAAO5jB,KAAKmQ,eAAenQ,KAApB,mBAA6C,CAACA,KAArD,mBAEF6jB,gBAVQ,WAWN,OAAO7jB,KAAKkX,cAAgBlX,KAArB,sBAAkDA,KAAzD,qBAEF8jB,eAbQ,WAcN,OAAO9jB,KAAKmQ,eAAe,MAAO,CAChCI,YADgC,4BAEhCuF,MAAO9V,KAAKiU,UAGhB8P,oBAnBQ,WAoBN,OAAO/jB,KAAKmQ,eAAe,MAAOnQ,KAAKgT,mBAAmBhT,KAAxB,MAAoC,CACpEuQ,YADoE,iCAEpEuF,MAAO,CACL/B,MAAO,eAAc/T,KAAD,0BAI1BgkB,sBA3BQ,WA4BN,OAAOhkB,KAAKmQ,eAAe,MAAO,CAChCI,YADgC,mCAEhCsF,MAAO,CACL,2CAA4C7V,KAAKmjB,SAElD,CACDnjB,KAAKikB,eADJ,QAEDjkB,KAAKikB,eAPP,YAUFC,eAtCQ,WAuCN,OAAKlkB,KAAL,OAEOA,KAAKmQ,eAAe,MAAOnQ,KAAKkT,aAAalT,KAAlB,MAA8B,CAC9DuQ,YAD8D,4BAE9DuF,MAAO,CACL/B,MAAO,eAAc,IAAM/T,KAAP,0BALC,MAS3B2jB,gBAhDQ,WAgDO,MACPN,EAA8C,MAA1BrjB,KAAKqjB,kBAC1BrjB,KAAKojB,gBAAkB,EADF,GAEtB3L,WAAWzX,KAFf,mBAIA,UACE6a,QADK,GAAP,iBAEG7a,KAAKmkB,WAAa,QAAnB,OAAsC,eAAcnkB,KAAD,gBAF9C,MAAP,yBAGS,eAAcyG,KAAA,MAAYzG,KAAKokB,iBAAmBpkB,KAArC,uBAHtB,GAMF2V,QA3DQ,WA4DN,uBACE,8BAA+B3V,KAD1B,SAEL,2BAA4BA,KAFvB,MAGL,2BAA4BA,KAHvB,MAIL,8BAA+BA,KAJ1B,SAKL,6BAA8BA,KALzB,WAML,6BAA8BA,KANzB,QAOL,6BAA8BA,KAPzB,QAQL,6BAA8BA,KARzB,WASFA,KAAKqkB,eAGZC,mBAxEQ,WAyEN,OAAOtkB,KAAKkX,cAAgB0L,GAA5B,IAEFuB,WA3EQ,WA4EN,OAAOnkB,KAAKukB,SAASC,MAAQxkB,KAA7B,SAEFokB,iBA9EQ,WA+EN,OAAOpkB,KAAKykB,UAAUzkB,KAAtB,cAEFwX,gBAjFQ,WAkFN,OAAOxX,KAAKykB,UAAUzkB,KAAtB,oBAEF0kB,SApFQ,WAqFN,OAAOxP,QAAQlV,KAAK6Y,WAApB,SAEF5E,OAvFQ,WAwFN,IAAMA,EAAN,GAUA,OARKjU,KAAL,SACEiU,EAAA,UAGGjU,KAAD,eAAJ,MAA2ByX,WAAWzX,KAAX,oBACzBiU,EAAA,MAAe,eAAcjU,KAAD,iBAA5B,MAGF,IAIJkS,QAAS,CACP6N,WADO,WAEL,IAAM4E,EAAO,eAAQ3kB,KAAM,UAAW,CAAEyC,MAAOzC,KAAKgjB,oBAEpD,SAEOhjB,KAAKmQ,eAAe,MAAO,CAChCI,YAAa,8BADf,GAFkB,MAMpBqU,aAVO,WAWL,IAAMC,EAAY7kB,KAAlB,WAMA,OAJIA,KAAJ,WACE6kB,EAAA,MAAkB7kB,KAAlB,SAGF,GAEFikB,eAnBO,SAmBO,GACZ,OAAOjkB,KAAKmQ,eAAe,MAAOnQ,KAAKgT,mBAAmBhT,KAAxB,MAAoC,CACpEuQ,YADoE,mCAEpEsF,MAAO,kBACL,GAAQ,OAIdiP,QA3BO,SA2BA,GACL,GAAK9kB,KAAL,UAEA,MAAkBA,KAAK8f,IAAvB,wBAAQ/L,EAAR,EAAQA,MAER/T,KAAA,cAAqB2U,EAAA,UAArB,MAEFgE,UAlCO,SAkCE,OACP3Y,KAAA,aAEFykB,UArCO,SAqCE,GACP,OAAIhiB,EAAJ,EAAsB,EAClBA,EAAJ,IAAwB,IACjBgV,WAAP,KAIJ7B,OAnM+B,SAmMzB,GACJ,IAAM1S,EAAO,CACXqN,YADW,oBAEXD,MAAO,CACLsI,KADK,cAEL,gBAFK,EAGL,gBAAiB5Y,KAHZ,iBAIL,gBAAiBA,KAAKkX,mBAAgBpX,EAAYE,KAAKwX,iBAEzD3B,MAAO7V,KARI,QASX+W,WAAY,CAAC,CACX9J,KADW,YAEXxK,MAAOzC,KAAK2Y,YAEd7C,MAAO,CACLuE,OAAQra,KAAKqa,OAAS,OADjB,EAEL3G,OAAQ1T,KAAKmjB,OAAS,eAAcnjB,KAA5B,QAFH,EAGLya,IAAKza,KAAKya,IAAM,OAAI3a,GAEtBiW,GAAI/V,KAAK4kB,gBAGX,OAAO5O,EAAE,MAAO9S,EAAM,CACpBlD,KADoB,eAEpBA,KAFoB,mBAGpBA,KAHoB,eAIpBA,KAJoB,YAKpBA,KALF,kBCvPJ,MCce,0BAA+B,CAC5CiN,KAD4C,WAG5C6F,MAAO,CACLqM,QAAS,CACPnd,KAAM,CAACkT,QADA,QAEPQ,SAAS,GAEXqP,aAAc,CACZ/iB,KAAM,CAACqR,OADK,QAEZqC,QAAS,IAIbxD,QAAS,CACP8S,YADO,WAEL,WAAIhlB,KAAKmf,QAA0B,KAE5Bnf,KAAKiW,OAAOgP,UAAYjlB,KAAKmQ,eAAe,GAAiB,CAClE2C,MAAO,CACLsH,UADK,EAELrH,OAAyB,IAAjB/S,KAAKmf,SAAN,KAA0Bnf,KAAKmf,QACjCnf,KAAK+S,OADH,UAEH/S,KAJC,QAKL0T,OAAQ1T,KALH,aAMLkX,eAAe,SCzBV,UAAA5B,EAAA,MAAO,GAAD,GAAN,UAIN,CACPrI,KADO,SAGP6F,MAAO,CACLpT,KADK,QAELwlB,MAFK,QAGLC,IAHK,OAIL/V,KAJK,QAKL2V,aAAc,CACZ/iB,KAAM,CAACqR,OADK,QAEZqC,QAAS,GAEX0P,OAAQlQ,SAGV5B,SAAU,CACRqC,QADQ,WAEN,sCACE,UADK,GAEF,iCAFE,OAAP,IAGE,eAAgB3V,KAHX,KAIL,gBAAiBA,KAJZ,MAKL,eAAgBA,KALX,YAML,kBAAmBA,KANd,QAOL,mBAAoBA,KAPf,SAQL,iBAAkBA,KARb,QASF,wCAGPiU,OAdQ,WAeN,IAAM6B,EAAK,kBACN,sCAOL,OAJI9V,KAAJ,MACE8V,EAAA,0BAA2B9V,KAA3B,2CAGF,IAIJkS,QAAS,CACP8S,YADO,WAEL,IAAMpP,EAAS,oCAAf,MAEA,SAEO5V,KAAKmQ,eAAe,MAAO,CAChCI,YADgC,mBAEhC/N,IAAK,YACJ,CAHH,IAFoB,OASxBoT,OAvDO,SAuDD,GACJ,MAAsB5V,KAAtB,oBAAM,EAAN,EAAM,IAAOkD,EAAb,EAAaA,KASb,OAPAA,EAAA,MAAalD,KAAb,OAEIA,KAAJ,cACEkD,EAAA,MAAaA,EAAA,OAAb,GACAA,EAAA,kBAGK8S,EAAEP,EAAKzV,KAAKgT,mBAAmBhT,KAAxB,MAAN,GAAiD,CACvDA,KADuD,cAEvDA,KAAKiW,OAFP,aCnFEoP,GAAe,eAArB,mBAEMC,IADgB,eAAtB,oBACkB,eAAlB,iBCEMC,IDDa,eAAnB,iB,wCCCoB,CAAC,KAAM,KAAM,KAAjC,OAEMC,GAAmB,WACvB,OAAOD,GAAA,QAAmB,cAKxB,OAJAzS,EAAA,GAAa,CACX9Q,KAAM,CAACkT,QAASrO,OADL,QAEX6O,SAAS,GAEX,IALF,IADuB,GAUnB+P,GAAe,WACnB,OAAOF,GAAA,QAAmB,cAKxB,OAJAzS,EAAM,SAAW,eAAjB,IAAoC,CAClC9Q,KAAM,CAAC6E,OAD2B,QAElC6O,QAAS,MAEX,IALF,IADmB,GAUfgQ,GAAc,WAClB,OAAOH,GAAA,QAAmB,cAKxB,OAJAzS,EAAM,QAAU,eAAhB,IAAmC,CACjC9Q,KAAM,CAAC6E,OAD0B,QAEjC6O,QAAS,MAEX,IALF,IADkB,GAUdiQ,GAAU,CACdC,IAAKre,OAAA,KADS,IAEd8Q,OAAQ9Q,OAAA,KAFM,IAGdse,MAAOte,OAAA,UAGT,SAASue,GAAT,OACE,IAAIC,EAAJ,EACA,GAAI,MAAAtT,IAAJ,IAAmBA,EAAnB,CAGA,KAAU,CACR,IAAMuT,EAAanM,EAAA,UAAnB,IACAkM,GAAa,IAAJ,OAAT,GAKF,MAAI,QAAA/jB,GAAmB,KAAAyQ,IAAvB,IAAqCA,GAKrCsT,GAAa,IAAJ,OAAT,GACOA,EAAP,eAJSA,EAAP,eAOJ,IAAME,GAAQ,IAAd,IAEe,iBAAW,CACxBhZ,KADwB,QAExBgU,YAFwB,EAGxBnO,MAAO,6DACLoT,KAAM,CACJlkB,KAAM,CAACkT,QAASrO,OADZ,QAEJ6O,SAAS,IAHN,IAAF,IAMH2C,OAAQ,CACNrW,KAAM,CAAC6E,OADD,QAEN6O,QAAS,OARN,IAAF,IAWHmQ,MAAO,CACL7jB,KAAM,CAAC6E,OADF,QAEL6O,QAAS,OAbN,IAAF,IAgBHyQ,UAAW,CACTnkB,KADS,OAET0T,QAFS,KAGT0Q,UAAY,SAAAhU,GAAD,MAAc,CAAC,OAAQ,QAAS,MAAO,SAAU,WAAY,WAAW+N,SAAS/N,KAE9FqD,IAAK,CACHzT,KADG,OAEH0T,QAAS,SAGbE,OA7BwB,SA6BlB,EA7BkB,GA6BoB,IAAjC,EAAiC,EAAjC,QAAiC,EAAjC,OAAiC,EAAjC,SAELyQ,GAFsC,EAARlN,OAElC,IACA,IAAK,IAAL,OACEkN,GAAYxf,OAAQiM,EAApB,IAEF,IAAIwT,EAAYL,GAAA,IAAhB,GA4BA,OA1BA,GAAgB,iBAGd,EACA,SAHAK,EADc,GAId,GACEX,GAAA,YAAsB,SAAA9L,GACpB,IAAMpX,EAAoCqQ,EAA1C,GACMiT,EAAYD,GAAgB9jB,EAAM6X,EAAxC,GACA,GAAeyM,EAAA,WAInB,IAAMC,EAAgBD,EAAA,MAAe,SAAAP,GAAS,OAAIA,EAAA,WAAlD,WAEAO,EAAA,SAEEV,KAAMW,IAAkBzT,EAFX,MAAf,+BAGUA,EAAR,MAAuBA,EAHV,MAAf,kCAIaA,EAAX,QAA4BA,EAJf,QAAf,iCAKYA,EAAV,OAA0BA,EALb,OAAf,sCAMiBA,EAAf,WAAmCA,EAAMqT,WAN3C,IASAF,GAAA,SAvBc,GA0BTjQ,EAAElD,EAAD,IAAY8O,GAAU1e,EAAM,CAAE2S,MAAOyQ,IAA7C,M,oBChIU,eAEZ,OAAO,cAAW,CAChBrZ,KAAM,KAAF,OADY,GAGhBgU,YAHgB,EAKhBnO,MAAO,CACL0T,GADK,OAEL/Q,IAAK,CACHzT,KADG,OAEH0T,QAAS,QAIbE,OAbgB,SAaV,EAbU,GAaoB,IAAzB,EAAyB,EAAzB,QAAyB,EAAzB,KAAe2C,EAAU,EAAVA,SACxBrV,EAAA,YAAoB,UAAG+J,EAAH,YAAW/J,EAAA,aAAZ,IAAnB,OAEA,IAAQoN,EAAR,EAAQA,MACR,KAAW,CAETpN,EAAA,SACA,IAAMyS,EAAUpO,OAAA,gBAA0B,SAAA/E,GAGxC,YAAIA,EAAgB,OAAO,EAE3B,IAAMC,EAAQ6N,EALgC,GAS9C,OAAI9N,EAAA,WAAJ,UACEU,EAAA,YACA,GAGKT,GAAP,kBAAuBA,KAGrBkT,EAAJ,SAAoBzS,EAAA,wBAAwByS,EAAA,KAAxB,OAQtB,OALI7C,EAAJ,KACE5P,EAAA,SAAgBA,EAAA,UAAhB,GACAA,EAAA,YAAmB4P,EAAnB,IAGKkD,EAAElD,EAAD,MAAR,MC1CS,ICQf,GDRe,0BAAyB,CACtC7F,KADsC,cAEtCgU,YAFsC,EAGtCnO,MAAO,CACL0T,GADK,OAEL/Q,IAAK,CACHzT,KADG,OAEH0T,QAAS,OAEX+Q,MAAO,CACLzkB,KADK,QAEL0T,SAAS,IAGbE,OAdsC,SAchC,EAdgC,GAcF,IAClC,EADS,EAAyB,EAAzB,QAAyB,EAAzB,KAAe2C,EAAU,EAAVA,SAEhBjI,EAAR,EAAQA,MA2BR,OA1BA,IAEEpN,EAAA,SACAyS,EAAUpO,OAAA,gBAA0B,SAAA/E,GAGlC,YAAIA,EAAgB,OAAO,EAE3B,IAAMC,EAAQ6N,EAL0B,GASxC,OAAI9N,EAAA,WAAJ,UACEU,EAAA,YACA,GAGKT,GAAP,kBAAuBA,MAIvBqQ,EAAJ,KACE5P,EAAA,SAAgBA,EAAA,UAAhB,GACAA,EAAA,YAAmB4P,EAAnB,IAGKkD,EACLlD,EADM,IAEN8O,GAAU1e,EAAM,CACdqN,YADc,YAEdsF,MAAOvB,MAAW,CAChB,mBAAoBxB,EAAM2T,QADrB,OAEG9Q,GAFH,MAJX,M,8BC1BJ,SAAS+Q,GAAT,GACE,MAAO,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,OAAOC,MAAK,SAAAlU,GAAG,OAAImU,EAAA,SAA9D,MAGF,SAASC,GAAT,GACE,MAAQ,0CAA0CC,KAAK5H,IAAS,UAAU4H,KAAlE,IAAgF5H,EAAA,OAAxF,GAdF,YACE,mBACA,kBACA,oBACA,mBACA,kBACA,oBANF,CAAK6H,QAAL,KAiBA,IAAM,GAAQ,OAAAzR,EAAA,MAAO,EAAD,KAIlB,QAJY,OAML,CACPrI,KADO,SAGP6F,MAAO,CACLkU,MADK,QAELzN,SAFK,QAGLgB,KAHK,QAILC,MAJK,QAKLpY,KAAM,CAACiR,OALF,QAMLoC,IAAK,CACHzT,KADG,OAEHgY,UAFG,EAGHtE,QAAS,MAIbpC,SAAU,CACRqL,OADQ,WAEN,UAEFsI,iBAJQ,WAKN,OAAO/R,QACLlV,KAAK2S,WAAWsL,OAASje,KAAK2S,WADhC,aAMJT,QAAS,CACPgV,QADO,WAEL,IAAIC,EAAJ,GAGA,OAFInnB,KAAKiW,OAAT,UAAyBkR,EAAWnnB,KAAKiW,OAAOP,QAAQ,GAAG4J,KAAlC,QAElB,eAAkBtf,KAAzB,IAEFonB,QAPO,WAQL,IAAMC,EAAQ,CACZ3I,OAAQ1e,KADI,OAEZwe,MAAOxe,KAFK,MAGZ2e,OAAQ3e,KAHI,OAIZue,MAAOve,KAJK,MAKZye,OAAQze,KAAKye,QAGT6I,EAAe,wBAAiB,SAAA9kB,GAAG,OAAI6kB,EAA7C,MAEA,OACGC,GAAgBP,GAAjB,IAA4C,eAAc/mB,KAD5D,OAKFunB,eAvBO,WAwBL,MAAO,CACLhX,YADK,qBAELsF,MAAO,CACL,mBAAoB7V,KADf,SAEL,eAAgBA,KAFX,KAGL,eAAgBA,KAHX,iBAIL,gBAAiBA,KAJZ,MAKL,gBAAiBA,KAAKgnB,OAExB1W,MAAO,gBACL,eAAgBtQ,KADX,iBAELuZ,SAAUvZ,KAAKinB,kBAAoBjnB,KAF9B,SAGLgC,KAAMhC,KAAKinB,iBAAmB,cAHzB,GAIFjnB,KAAK0S,QAEVqD,GAAI/V,KAAK2S,aAGb6U,kBA1CO,WA2CL,IAAMC,EAAWznB,KAAjB,UACM0nB,EAAc,iCACf1nB,KADe,kBAAH,IAEf8V,MAAO2R,EAAW,CAChBA,WACA/T,OAFgB,EAGhBK,MAAO0T,QACL3nB,IAIN,OAFAE,KAAA,eAEA,GAEF2nB,YAxDO,SAwDI,GACTzkB,EAAA,uCAAkBA,EAAL,OAAoBlD,KAAKqkB,cACtCrkB,KAAA,aAAkBA,KAAlB,UAEF4nB,eA5DO,SA4DO,KACZ,IAAMC,EAAN,GACM3kB,EAAOlD,KAAb,iBAEI4mB,EAJwC,iBAOtCkB,EAAiB5I,EAAA,QAAvB,KACM6I,EAAiBD,IAAvB,EAEA,EAEED,EAAA,SAEAjB,EAAW1H,EAAA,QAAX,GACIwH,GAAJ,KAA8BE,EAAA,KAGhC1jB,EAAA,YACAA,EAAA,YAEA,IAAMukB,EAAWznB,KAAjB,UAKA,OAJA,IAAckD,EAAA,MAAa,CAAEukB,aAE7BznB,KAAA,eAEOgW,EAAEhW,KAAKinB,iBAAmB,SAAWjnB,KAApC,MAAR,IAEFgoB,cAxFO,SAwFM,KACX,IAAMC,EAAqB,CACzBpS,MADyB,cAEzBvF,MAAO,CACLkI,MADK,6BAELC,QAFK,YAGLG,KAHK,MAIL,eAAe,IAIbxW,EAAOpC,KAAb,UASA,OARA,IACEioB,EAAA,MAAgB,CACdR,SADc,EAEd/T,OAFc,EAGdK,MAAO3R,IAIJ4T,EAAEhW,KAAKinB,iBAAmB,SAAzB,OAA4CjnB,KAA5C,oBAAsE,CAC5EgW,EAAE,MAAOiS,EAAS,CAChBjS,EAAE,OAAQ,CACR1F,MAAO,CACL4X,EAAGhJ,UAMbiJ,uBAtHO,SAsHe,KAIpB,IAAMjlB,EAAkB,CACtB2S,MAAO,CACL,qBAAqB,IAInBzT,EAAOpC,KAAb,UACA,IACEkD,EAAA,MAAa,CACXukB,SADW,EAEX/T,OAFW,EAGXK,MAAO3R,IAIXpC,KAAA,eAEA,IAAMooB,EAAYlJ,EAAlB,UAIA,OAHAhc,EAAA,MAAagc,EAAb,MACAhc,EAAA,SAAgBA,EAAhB,GAEO8S,EAAEhW,KAAKinB,iBAAmB,SAAzB,OAA4CjnB,KAA5C,oBAAsE,CAC5EgW,EAAEoS,EADJ,OAMJxS,OAhLO,SAgLD,GACJ,IAAMsJ,EAAOlf,KAAb,UAEA,wBAAWkf,EACL2H,GAAJ,GACS7mB,KAAKgoB,cAAc9I,EAA1B,GAEKlf,KAAK4nB,eAAe1I,EAA3B,GAGKlf,KAAKmoB,uBAAuBjJ,EAAnC,MAIW,iBAAW,CACxBjS,KADwB,SAGxBob,aAHwB,GAKxBpH,YALwB,EAOxBrL,OAPwB,SAOlB,EAPkB,GAOK,IAAlB,EAAkB,EAAlB,KAAQ2C,EAAU,EAAVA,SACb4O,EADuB,GAe3B,OAXIjkB,EAAJ,WACEikB,EAAWjkB,EAAA,sBACTA,EAAA,SADS,WADM,SAOVA,EAAA,SAAP,mBACOA,EAAA,SAAP,WAGK8S,EAAE,GAAD,EAAcmR,EAAW,CAAH,GAA9B,MC/OW,I,8BAAA,OAAA7R,EAAA,gBAA0B,CACvCrI,KADuC,eAGvC6F,MAAO,CACLwV,YAAa,CAACzhB,OADT,QAEL0hB,aAAc1hB,QAGhByM,SAAU,CACRkV,oBADQ,WAEN,OAAOnV,OAAOrT,KAAd,cAEFyoB,YAJQ,WAKN,OAAOzoB,KAAKwoB,oBACR,CAAEE,cAAgB,EAAI1oB,KAAL,wBAAuC,UAD5D,GAIF2oB,cATQ,WAUN,OAAK3oB,KAAL,YAEOA,KAAKmQ,eAAe,MAAO,CAChC2F,MAAO9V,KADyB,YAEhCuQ,YAAa,wBAJe,KASlC2B,QAAS,CACP6N,WADO,WAEL,OAAO/f,KAAKmQ,eAAe,MAAO,CAChCI,YADgC,wBAEhCsF,MAAO7V,KAAKuoB,cACXvoB,KAAKiW,OAHR,WAOJL,OApCuC,SAoCjC,GACJ,OAAOI,EAAE,MAAO,CACdzF,YADc,eAEduF,MAAO9V,KAFO,iBAGd+V,GAAI/V,KAAK6Y,YACR,CACD7Y,KADC,cAEDA,KANF,mBC9CJ,MC0BM4oB,GAAiC,qBAAXzS,QAA0B,yBAAtD,OAGe,UAAAb,EAAA,MAAO,GAAP,eAGN,CACPrI,KADO,QAGP8J,WAAY,CAAEC,aAEdlE,MAAO,CACL+V,IADK,OAELC,QAFK,QAGLC,MAHK,QAILC,SAJK,OAKLC,QALK,OAML1S,QAAS,CACPvU,KADO,OAIP0T,QAAS,iBAAO,CACdwT,UADc,EAEdC,gBAFc,EAGdC,eAAWtpB,KAGf0hB,SAAU,CACRxf,KADQ,OAER0T,QAAS,iBAEX2R,MApBK,OAqBLgC,IAAK,CACHrnB,KAAM,CAAC6E,OADJ,QAEH6O,QAAS,IAEX4T,OAzBK,OA0BLrH,WAAY,CACVjgB,KAAM,CAACkT,QADG,QAEVQ,QAAS,oBAIbxS,KArCO,WAsCL,MAAO,CACLqmB,WADK,GAELC,MAFK,KAGLC,WAHK,EAILC,2BAJK,EAKLC,kBALK,EAMLC,UAAU,IAIdtW,SAAU,CACRkV,oBADQ,WAEN,OAAOnV,OAAOrT,KAAK6pB,cAAcC,QAAU9pB,KAA3C,wBAEF6pB,cAJQ,WAKN,OAAO7pB,KAAKqpB,KAAL,WAAY,eAAOrpB,KAAP,KACf,CACAqpB,IAAKrpB,KAAKqpB,IADV,IAEAC,OAAQtpB,KAAKspB,QAAUtpB,KAAKqpB,IAF5B,OAGAJ,QAASjpB,KAAKipB,SAAWjpB,KAAKqpB,IAH9B,QAIAS,OAAQzW,OAAOrT,KAAKsoB,aAAetoB,KAAKqpB,IAA1B,SACZ,CACFA,IAAKrpB,KADH,IAEFspB,OAAQtpB,KAFN,OAGFipB,QAASjpB,KAHP,QAIF8pB,OAAQzW,OAAOrT,KAAKsoB,aAAN,KAGpByB,cAlBQ,WAmBN,KAAM/pB,KAAK6pB,cAAcR,KAAOrpB,KAAK6pB,cAA/B,SAAwD7pB,KAA9D,UAA8E,MAAO,GAErF,IAAMgqB,EAAN,GACMX,EAAMrpB,KAAKypB,UAAYzpB,KAAK6pB,cAAtB,QAA8C7pB,KAA1D,WAEIA,KAAJ,UAAmBgqB,EAAA,+BAAwChqB,KAAxC,eACnB,GAASgqB,EAAA,6BAET,IAAMR,EAAQxpB,KAAKmQ,eAAe,MAAO,CACvCI,YADuC,iBAEvCsF,MAAO,CACL,0BAA2B7V,KADtB,UAEL,0BAA2BA,KAFtB,QAGL,yBAA0BA,KAAK8oB,SAEjChT,MAAO,CACLkU,gBAAiBA,EAAA,KADZ,MAELC,mBAAoBjqB,KAAKwhB,UAE3Bhf,KAAMxC,KAAKypB,YAIb,OAAKzpB,KAAL,WAEOA,KAAKmQ,eAAe,aAAc,CACvCG,MAAO,CACLrD,KAAMjN,KADD,WAELqhB,KAAM,WAEP,CALH,IAF6BmI,IAWjCvP,MAAO,CACLoP,IADK,WAGErpB,KAAL,UACKA,KAAKkqB,YADWlqB,KAAKO,UAAKT,OAAWA,GAA1C,IAGF,4BAA6B,UAG/BmS,QA9GO,WA+GLjS,KAAA,QAGFkS,QAAS,CACP3R,KADO,SACH,OAQF,IACEqoB,IAAA,GAEC5oB,KAHH,OAMA,GAAIA,KAAK6pB,cAAT,QAAgC,CAC9B,IAAMM,EAAU,IAAhB,MACAA,EAAA,IAAcnqB,KAAK6pB,cAAnB,QACA7pB,KAAA,oBAGEA,KAAK6pB,cAAT,KAA4B7pB,KAAKkqB,cAEnCE,OAvBO,WAwBLpqB,KAAA,SACAA,KAAA,aACAA,KAAA,aAAmBA,KAAnB,KAGEA,KAAKwpB,QACJxpB,KAAK6pB,cAAcR,IAAI9iB,SAAS,SAAWvG,KAAK6pB,cAAcR,IAAIgB,WAFrE,yBAIMrqB,KAAKwpB,MAAMc,eAAiBtqB,KAAKwpB,MAArC,cACExpB,KAAA,aAAoBA,KAAKwpB,MAAzB,aACAxpB,KAAA,sBAA6BA,KAAKwpB,MAAMG,aAAe3pB,KAAKwpB,MAA5D,eAEAxpB,KAAA,0BAINuqB,QAxCO,WAyCLvqB,KAAA,YACAA,KAAA,cAAoBA,KAApB,MAEFwqB,OA5CO,WA8CDxqB,KAAJ,QAAgBA,KAAKupB,WAAavpB,KAAKwpB,MAAMD,YAAcvpB,KAAKwpB,MAAhD,MAElBU,UAhDO,WAgDE,WACDV,EAAQ,IAAd,MACAxpB,KAAA,QAEAwpB,EAAA,OAAe,WAETA,EAAJ,OACEA,EAAA,gBAAsB,SAAAnhB,GACpB,OAAA4K,EAAA,MACE,qEACQ,gBADR,MAEC5K,EAAA,oCAAmCA,EAAnC,SAHQ,IAAX,MADF,KAOQ,EAPR,QASA,YAGJmhB,EAAA,QAAgBxpB,KAAhB,QAEAA,KAAA,YACAA,KAAA,QAAewpB,EAAA,MAAcxpB,KAA7B,OACAA,KAAA,uBAA8BwpB,EAAA,OAAexpB,KAAK6pB,cAAlD,QACAL,EAAA,IAAYxpB,KAAK6pB,cAAjB,IACA7pB,KAAA,kBAAwBA,KAAK6pB,cAA7B,KAEA7pB,KAAA,aAAoBA,KAAKyqB,YAAzB,GACAzqB,KAAA,UAEFyqB,YA9EO,SA8EI,GAAqD,WAA5BC,EAA4B,uDAArD,IACHC,EAAO,SAAPA,IACJ,IAAM,EAAN,EAAM,cAAiBhB,EAAvB,EAAuBA,aAEnBW,GAAJ,GACE,iBACA,wBAA6BX,EAA7B,GACUxE,EAAD,WAAiB,EAAjB,WAAoC,EAApC,UAAJ,MAAyDuF,GAC9D5O,WAAW6O,EAAX,IAIJA,KAEF5K,WA5FO,WA6FL,IAAM6K,EAAiB,mCAAvB,MAOA,OANI5qB,KAAJ,cACEA,KAAA,GAAQ4qB,EAAR,WAA8B,CAC5B9U,MAAO,CAAE/B,MAAO,GAAF,OAAK/T,KAAK2pB,aAAV,SAIlB,GAEFkB,iBAtGO,WAuGL,GAAI7qB,KAAKiW,OAAT,YAA6B,CAC3B,IAAM6U,EAAc9qB,KAAKypB,UACrB,CAACzpB,KAAKmQ,eAAe,MAAO,CAC5BI,YAAa,wBACZvQ,KAAKiW,OAHU,cAApB,GAMA,OAAKjW,KAAL,WAEOA,KAAKmQ,eAAe,aAAc,CACvC2C,MAAO,CACLiY,QADK,EAEL9d,KAAMjN,KAAKiiB,aAHf,GAF6B6I,EAAP,MAY5BlV,OA5OO,SA4OD,GACJ,IAAMoV,EAAO,4BAAb,GAEM9nB,EAAO0e,GAAUoJ,EAAD,KAAa,CACjCza,YADiC,UAEjCD,MAAO,CACL,aAActQ,KADT,IAEL4Y,KAAM5Y,KAAK6oB,IAAM,WAAQ/oB,GAE3B+V,MAAO7V,KAN0B,aASjC+W,WAAY6R,GACR,CAAC,CACD3b,KADC,YAEDmJ,UAAW,CAAE6U,MAAM,GACnBxoB,MAAO,CACL6T,QAAStW,KADJ,KAELuW,QAASvW,KAAKuW,gBAGhBzW,IAUN,OAPAkrB,EAAA,SAAgB,CACdhrB,KADc,cAEdA,KAFc,cAGdA,KAHc,mBAIdA,KAJF,cAOOgW,EAAEgV,EAAD,MAAiBA,EAAzB,aCvSE,GAAc,CAAC,KAAM,KAAM,KAAjC,MAEME,GAAY,CAAC,QAAS,MAA5B,UAEA,SAASC,GAAT,KACE,OAAO,WAAmB,cAExB,OADArY,EAAMsY,EAAS,eAAf,IAAkCC,IAClC,IAFF,IAMF,IAAMC,GAAkB,SAAAlZ,GAAD,MAAc,8CAArC,IACMmZ,GAAaJ,GAAU,SAAS,iBAAO,CAC3CnpB,KAD2C,OAE3C0T,QAF2C,KAG3C0Q,UAAWkF,OAGPE,GAAoB,SAAApZ,GAAD,MAAc,wDAAvC,IACMqZ,GAAeN,GAAU,WAAW,iBAAO,CAC/CnpB,KAD+C,OAE/C0T,QAF+C,KAG/C0Q,UAAWoF,OAGPE,GAAyB,SAAAtZ,GAAD,MAAc,kEAA5C,IACMuZ,GAAoBR,GAAU,gBAAgB,iBAAO,CACzDnpB,KADyD,OAEzD0T,QAFyD,KAGzD0Q,UAAWsF,OAGP,GAAU,CACdE,MAAOrkB,OAAA,KADO,IAEdskB,QAAStkB,OAAA,KAFK,IAGdukB,aAAcvkB,OAAA,UAGVwkB,GAAW,CACfH,MADe,QAEfC,QAFe,UAGfC,aAAc,iBAGhB,SAAS,GAAT,OACE,IAAI/F,EAAYgG,GAAhB,GACA,SAAItZ,EAAJ,CAGA,KAAU,CAER,IAAMuT,EAAanM,EAAA,UAAnB,IACAkM,GAAa,IAAJ,OAAT,GAIF,OADAA,GAAa,IAAJ,OAAT,GACOA,EAAP,eAGF,IAAM,GAAQ,IAAd,IAEe,iBAAW,CACxB9Y,KADwB,QAExBgU,YAFwB,EAGxBnO,MAAO,8CACL2C,IAAK,CACHzT,KADG,OAEH0T,QAAS,OAEXsR,MALK,QAMLgF,UANK,QAOLJ,MAAO,CACL5pB,KADK,OAEL0T,QAFK,KAGL0Q,UAAWkF,KAVR,IAAF,IAaHO,QAAS,CACP7pB,KADO,OAEP0T,QAFO,KAGP0Q,UAAWoF,KAhBR,IAAF,IAmBHM,aAAc,CACZ9pB,KADY,OAEZ0T,QAFY,KAGZ0Q,UAAWsF,KAEVC,IAEL/V,OA7BwB,SA6BlB,EA7BkB,GA6BY,IAAzB,EAAyB,EAAzB,QAAyB,EAAzB,KAAe2C,EAAU,EAAVA,SAEpB8N,EAAJ,GACA,IAAK,IAAL,OACEA,GAAYxf,OAAQiM,EAApB,IAEF,IAAIwT,EAAY,OAAhB,GAyBA,OAvBA,GAAgB,iBAGd,EACA,SAHAA,EADc,GAId,GACE,eAAsB,SAAAzM,GACpB,IAAMpX,EAAiBqQ,EAAvB,GACMiT,EAAY,GAAgB/jB,EAAM6X,EAAxC,GACA,GAAeyM,EAAA,WAInBA,EAAA,SACE,aAAcxT,EADD,UAEb,aAAcA,EAFD,OAAf,iCAGYA,EAAV,OAA0BA,EAHb,OAAf,mCAIcA,EAAZ,SAA8BA,EAJjB,SAAf,yCAKoBA,EAAlB,cAAyCA,EAAMgZ,cALjD,IAQA,YApBc,GAuBT9V,EACLlD,EADM,IAEN8O,GAAU1e,EAAM,CACdqN,YADc,MAEdsF,MAAOyQ,IAJX,MCtHW,I,UAAA,OAAAhR,EAAA,MACb,QADa,OAGN,CACPrI,KADO,cAGP6F,MAAO,CACLmZ,MAAO/W,SAGTU,OAPO,SAOD,GACJ,OAAOI,EAAE,MAAO,CACdzF,YADc,cAEdsF,MAAO,gBACL,qBAAsB7V,KADjB,OAEFA,KAAKqkB,cAEV/T,MAAOtQ,KANO,OAOd+V,GAAI/V,KAAK6Y,YACR7Y,KAAKiW,OARR,aCbAmS,GAAY,eACd,EACA,EACA/W,GACA,EACA,KACA,WACA,MAIa,aAAA+W,GAAiB,QAehC,IAAkBA,GAAW,CAAC8D,KAAA,GAAKC,MAAA,GAAM9G,gBAAaC,aAAU8G,QAAKC,cAAWC,MAAA,GAAMC,KAAA,GAAKC,gBAAA,GAAgBC,QAAKC,WAAA,M,kCCjChH,IAAIxtB,EAAI,EAAQ,QACZgQ,EAAa,EAAQ,QACrBC,EAAyB,EAAQ,QAIrCjQ,EAAE,CAAEM,OAAQ,SAAUC,OAAO,EAAMuG,OAAQmJ,EAAuB,UAAY,CAC5EmL,MAAO,WACL,OAAOpL,EAAWlP,KAAM,KAAM,GAAI,Q,kCCRtC,IAAId,EAAI,EAAQ,QACZgQ,EAAa,EAAQ,QACrBC,EAAyB,EAAQ,QAIrCjQ,EAAE,CAAEM,OAAQ,SAAUC,OAAO,EAAMuG,OAAQmJ,EAAuB,UAAY,CAC5EqP,MAAO,WACL,OAAOtP,EAAWlP,KAAM,QAAS,GAAI,Q","file":"js/about.7917c4b3.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/js/app.4862d5e7.js b/docs/js/app.734a4a0b.js similarity index 97% rename from docs/js/app.4862d5e7.js rename to docs/js/app.734a4a0b.js index 2701273080..576c7c81fb 100644 --- a/docs/js/app.4862d5e7.js +++ b/docs/js/app.734a4a0b.js @@ -1,2 +1,2 @@ -(function(e){function t(t){for(var n,o,i=t[0],c=t[1],l=t[2],s=0,p=[];s\n \n \n \n \n \n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?341e","webpack:///src/App.vue","webpack:///./src/App.vue?1160","webpack:///./src/App.vue","webpack:///./src/plugins/vuetify.js","webpack:///./src/router/index.js","webpack:///./src/main.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_h","$createElement","_c","_self","staticRenderFns","components","component","VApp","VMain","Vue","use","Vuetify","theme","dark","VueRouter","routes","path","router","base","process","config","productionTip","vuetify","render","h","App","$mount"],"mappings":"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","file":"js/app.734a4a0b.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"7917c4b3\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"about\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"8d0e9591\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/jak-project/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[_c('v-main',[_c('router-view')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file From 498947082812629a0df0f3b27dd989fac3596b1e Mon Sep 17 00:00:00 2001 From: water111 <48171810+water111@users.noreply.github.com> Date: Sat, 17 Jul 2021 15:00:10 -0400 Subject: [PATCH 20/63] recognize +! and set-vector (#706) " --- decompiler/IR2/FormExpressionAnalysis.cpp | 20 ++ decompiler/analysis/insert_lets.cpp | 101 +++++++ goal_src/engine/ambient/mood-tables.gc | 182 ++---------- goal_src/engine/anim/aligner.gc | 267 +++++++++--------- goal_src/engine/debug/debug-sphere.gc | 7 +- goal_src/engine/geometry/geometry.gc | 14 +- goal_src/engine/gfx/mood-h.gc | 56 +--- goal_src/engine/math/matrix.gc | 41 +-- goal_src/engine/math/quaternion.gc | 13 +- goal_src/engine/math/vector.gc | 12 +- goal_src/engine/sparticle/sparticle-h.gc | 11 +- goal_src/engine/target/joint-mod-h.gc | 37 +-- .../decompiler/reference/decompiler-macros.gc | 9 + .../engine/ambient/mood-tables_REF.gc | 182 ++---------- .../reference/engine/anim/aligner_REF.gc | 11 +- .../reference/engine/camera/camera-h_REF.gc | 4 +- .../engine/camera/math-camera_REF.gc | 36 +-- .../engine/collide/collide-frag_REF.gc | 43 +-- .../reference/engine/data/res_REF.gc | 62 +--- .../engine/debug/debug-sphere_REF.gc | 7 +- .../reference/engine/debug/menu_REF.gc | 20 +- .../reference/engine/debug/stats-h_REF.gc | 6 +- .../reference/engine/engine/connect_REF.gc | 4 +- .../engine/game/task/hint-control_REF.gc | 2 +- .../reference/engine/geometry/geometry_REF.gc | 14 +- .../reference/engine/geometry/vol-h_REF.gc | 10 +- .../reference/engine/gfx/hw/display_REF.gc | 4 +- .../reference/engine/gfx/hw/gs_REF.gc | 2 +- .../reference/engine/gfx/lights_REF.gc | 49 +--- .../reference/engine/gfx/mood-h_REF.gc | 56 +--- .../reference/engine/gfx/ripple_REF.gc | 4 +- .../engine/gfx/shrub/shrub-work_REF.gc | 6 +- .../engine/gfx/sparticle/sparticle-h_REF.gc | 11 +- .../reference/engine/gfx/texture_REF.gc | 67 ++--- .../reference/engine/gfx/tie/prototype_REF.gc | 54 ++-- .../reference/engine/gfx/wind_REF.gc | 2 +- .../reference/engine/math/matrix_REF.gc | 25 +- .../reference/engine/math/quaternion_REF.gc | 7 +- .../reference/engine/math/vector_REF.gc | 39 +-- .../engine/physics/trajectory_REF.gc | 10 +- .../reference/engine/ps2/rpc-h_REF.gc | 4 +- .../reference/engine/ps2/timer_REF.gc | 18 +- .../engine/target/joint-mod-h_REF.gc | 39 +-- .../reference/engine/ui/credits_REF.gc | 9 +- .../reference/engine/util/sync-info_REF.gc | 7 +- .../reference/kernel/gkernel_REF.gc | 2 +- test/decompiler/test_FormExpressionBuild2.cpp | 7 +- test/decompiler/test_gkernel_decomp.cpp | 2 +- 48 files changed, 557 insertions(+), 1038 deletions(-) diff --git a/decompiler/IR2/FormExpressionAnalysis.cpp b/decompiler/IR2/FormExpressionAnalysis.cpp index 0a98b07948..d65f80958d 100644 --- a/decompiler/IR2/FormExpressionAnalysis.cpp +++ b/decompiler/IR2/FormExpressionAnalysis.cpp @@ -2028,6 +2028,26 @@ void SetFormFormElement::push_to_stack(const Env& env, FormPool& pool, FormStack fmt::print("invalid bf set: {}\n", src_as_bf_set->to_string(env)); } + const std::pair in_place_ops[] = { + {FixedOperatorKind::ADDITION, FixedOperatorKind::ADDITION_IN_PLACE}, + {FixedOperatorKind::ADDITION_PTR, FixedOperatorKind::ADDITION_PTR_IN_PLACE}}; + + auto src_as_generic = m_src->try_as_element(); + if (src_as_generic) { + for (auto& op_pair : in_place_ops) { + if (src_as_generic->op().is_fixed(op_pair.first)) { + auto dst_form = m_dst->to_form(env); + auto add_form_0 = src_as_generic->elts().at(0)->to_form(env); + + if (dst_form == add_form_0) { + src_as_generic->op() = GenericOperator::make_fixed(op_pair.second); + stack.push_form_element(src_as_generic, true); + return; + } + } + } + } + stack.push_form_element(this, true); } diff --git a/decompiler/analysis/insert_lets.cpp b/decompiler/analysis/insert_lets.cpp index 7ab2b4d838..0b72781275 100644 --- a/decompiler/analysis/insert_lets.cpp +++ b/decompiler/analysis/insert_lets.cpp @@ -368,6 +368,97 @@ Form* strip_truthy(Form* in) { return in; } +FormElement* rewrite_set_vector(LetElement* in, const Env& env, FormPool& pool) { + if (in->entries().size() != 1) { + return nullptr; + } + + auto in_vec = env.get_variable_name(in->entries().at(0).dest); + + auto& body_elts = in->body()->elts(); + if (body_elts.size() != 4) { + return nullptr; + } + + std::vector sources; + for (int i = 0; i < 4; i++) { + auto elt_as_form_form = dynamic_cast(body_elts.at(i)); + if (!elt_as_form_form) { + return nullptr; + } + auto dst = elt_as_form_form->dst(); + sources.push_back(elt_as_form_form->src()); + Matcher dst_matcher = Matcher::deref(Matcher::any_reg(0), false, + {DerefTokenMatcher::string(std::string(1, "xyzw"[i]))}); + auto mr = match(dst_matcher, dst); + if (!mr.matched) { + return nullptr; + } + if (in_vec != env.get_variable_name(*mr.maps.regs.at(0))) { + return nullptr; + } + } + + std::vector args; + args.push_back(in->entries().at(0).src); + for (auto& src : sources) { + args.push_back(src); + } + + auto op = GenericOperator::make_function( + pool.alloc_single_element_form(nullptr, "set-vector!")); + return pool.alloc_element(op, args); +} + +FormElement* rewrite_set_vector_2(LetElement* in, const Env& env, FormPool& pool) { + if (in->entries().size() != 1) { + return nullptr; + } + + auto in_vec = env.get_variable_name(in->entries().at(0).dest); + auto src_as_deref = in->entries().at(0).src->try_as_element(); + if (!src_as_deref) { + return nullptr; + } + + auto& body_elts = in->body()->elts(); + if (body_elts.size() != 4) { + return nullptr; + } + + std::vector sources; + for (int i = 0; i < 4; i++) { + auto elt_as_form_form = dynamic_cast(body_elts.at(i)); + if (!elt_as_form_form) { + return nullptr; + } + auto dst = elt_as_form_form->dst(); + sources.push_back(elt_as_form_form->src()); + Matcher dst_matcher = Matcher::deref( + Matcher::any_reg(0), false, + {DerefTokenMatcher::integer(0), DerefTokenMatcher::string(std::string(1, "xyzw"[i]))}); + auto mr = match(dst_matcher, dst); + if (!mr.matched) { + return nullptr; + } + if (in_vec != env.get_variable_name(*mr.maps.regs.at(0))) { + return nullptr; + } + } + + src_as_deref->tokens().push_back(DerefToken::make_int_constant(0)); + + std::vector args; + args.push_back(in->entries().at(0).src); + for (auto& src : sources) { + args.push_back(src); + } + + auto op = GenericOperator::make_function( + pool.alloc_single_element_form(nullptr, "set-vector!")); + return pool.alloc_element(op, args); +} + ShortCircuitElement* get_or(Form* in) { // strip off truthy in = strip_truthy(in); @@ -564,6 +655,16 @@ FormElement* rewrite_let(LetElement* in, const Env& env, FormPool& pool) { return as_case_with_else; } + auto as_set_vector = rewrite_set_vector(in, env, pool); + if (as_set_vector) { + return as_set_vector; + } + + auto as_set_vector2 = rewrite_set_vector_2(in, env, pool); + if (as_set_vector2) { + return as_set_vector2; + } + // nothing matched. return nullptr; } diff --git a/goal_src/engine/ambient/mood-tables.gc b/goal_src/engine/ambient/mood-tables.gc index 04be588f1e..d7dc822e07 100644 --- a/goal_src/engine/ambient/mood-tables.gc +++ b/goal_src/engine/ambient/mood-tables.gc @@ -15,12 +15,7 @@ (set! (-> v1-0 direction z) 0.612) (set! (-> v1-0 direction w) 0.0) ) - (let ((v1-1 (-> arg0 dir0 color))) - (set! (-> v1-1 x) 0.8) - (set! (-> v1-1 y) 0.775) - (set! (-> v1-1 z) 0.7) - (set! (-> v1-1 w) 1.0) - ) + (set-vector! (-> arg0 dir0 color) 0.8 0.775 0.7 1.0) (set! (-> arg0 dir0 levels x) arg2) (let ((v1-2 (-> arg0 dir1))) (set! (-> v1-2 direction x) 0.612) @@ -28,12 +23,7 @@ (set! (-> v1-2 direction z) -0.612) (set! (-> v1-2 direction w) 0.0) ) - (let ((v1-3 (-> arg0 dir1 color))) - (set! (-> v1-3 x) 0.8) - (set! (-> v1-3 y) 0.775) - (set! (-> v1-3 z) 0.7) - (set! (-> v1-3 w) 1.0) - ) + (set-vector! (-> arg0 dir1 color) 0.8 0.775 0.7 1.0) (set! (-> arg0 dir1 levels x) arg3) (vector-matrix*! (the-as vector (-> arg0 dir0)) @@ -52,12 +42,7 @@ (set! (-> v1-4 direction z) 0.0) (set! (-> v1-4 direction w) 0.0) ) - (let ((v1-5 (-> arg0 dir2 color))) - (set! (-> v1-5 x) 0.8) - (set! (-> v1-5 y) 0.775) - (set! (-> v1-5 z) 0.7) - (set! (-> v1-5 w) 1.0) - ) + (set-vector! (-> arg0 dir2 color) 0.8 0.775 0.7 1.0) (let ((f0-26 arg4)) (set! (-> arg0 dir2 levels x) f0-26) f0-26 @@ -76,12 +61,7 @@ (set! (-> v1-0 direction z) 0.0) (set! (-> v1-0 direction w) 0.0) ) - (let ((v1-1 (-> s5-0 dir2 color))) - (set! (-> v1-1 x) 0.75) - (set! (-> v1-1 y) 0.375) - (set! (-> v1-1 z) 0.0) - (set! (-> v1-1 w) 1.0) - ) + (set-vector! (-> s5-0 dir2 color) 0.75 0.375 0.0 1.0) ) (make-light-kit (-> arg0 light-group 3) 53703.11 0.9 0.9 0.5) (make-light-kit (-> arg0 light-group 4) 54613.332 0.9 0.9 0.4) @@ -96,18 +76,8 @@ (defun make-misty-light-kit ((arg0 mood-context)) (let ((gp-0 (-> arg0 light-group 1))) (make-light-kit gp-0 24576.0 1.0 0.4 1.0) - (let ((v1-0 (-> gp-0 dir0 color))) - (set! (-> v1-0 x) 0.75) - (set! (-> v1-0 y) 0.3) - (set! (-> v1-0 z) 0.0) - (set! (-> v1-0 w) 1.0) - ) - (let ((v0-1 (-> gp-0 dir2 color))) - (set! (-> v0-1 x) 0.75) - (set! (-> v0-1 y) 0.3) - (set! (-> v0-1 z) 0.0) - (set! (-> v0-1 w) 1.0) - ) + (set-vector! (-> gp-0 dir0 color) 0.75 0.3 0.0 1.0) + (set-vector! (-> gp-0 dir2 color) 0.75 0.3 0.0 1.0) ) (none) ) @@ -122,12 +92,7 @@ (set! (-> a0-1 direction z) 0.0) (set! (-> a0-1 direction w) 1.0) ) - (let ((a0-2 (-> v1-0 dir0 color))) - (set! (-> a0-2 x) 0.375) - (set! (-> a0-2 y) 0.25) - (set! (-> a0-2 z) 0.25) - (set! (-> a0-2 w) 1.0) - ) + (set-vector! (-> v1-0 dir0 color) 0.375 0.25 0.25 1.0) (set! (-> v1-0 dir0 levels x) 1.0) (let ((a0-3 (-> v1-0 dir1))) (set! (-> a0-3 direction x) -0.6119) @@ -135,12 +100,7 @@ (set! (-> a0-3 direction z) -0.6119) (set! (-> a0-3 direction w) 1.0) ) - (let ((a0-4 (-> v1-0 dir1 color))) - (set! (-> a0-4 x) 0.25) - (set! (-> a0-4 y) 0.75) - (set! (-> a0-4 z) 1.0) - (set! (-> a0-4 w) 1.0) - ) + (set-vector! (-> v1-0 dir1 color) 0.25 0.75 1.0 1.0) (set! (-> v1-0 dir1 levels x) 0.666) (let ((a0-5 (-> v1-0 dir2))) (set! (-> a0-5 direction x) 0.9961) @@ -148,12 +108,7 @@ (set! (-> a0-5 direction z) -0.0871) (set! (-> a0-5 direction w) 1.0) ) - (let ((a0-6 (-> v1-0 dir2 color))) - (set! (-> a0-6 x) 0.0) - (set! (-> a0-6 y) 0.25) - (set! (-> a0-6 z) 1.0) - (set! (-> a0-6 w) 1.0) - ) + (set-vector! (-> v1-0 dir2 color) 0.0 0.25 1.0 1.0) (set! (-> v1-0 dir2 levels x) 1.0) ) (let ((v1-2 (-> arg0 light-group 2))) @@ -163,12 +118,7 @@ (set! (-> a0-7 direction z) 0.836) (set! (-> a0-7 direction w) 1.0) ) - (let ((a0-8 (-> v1-2 dir0 color))) - (set! (-> a0-8 x) 0.8) - (set! (-> a0-8 y) 0.8) - (set! (-> a0-8 z) 0.8) - (set! (-> a0-8 w) 1.0) - ) + (set-vector! (-> v1-2 dir0 color) 0.8 0.8 0.8 1.0) (set! (-> v1-2 dir0 levels x) 0.7) (let ((a0-9 (-> v1-2 dir1))) (set! (-> a0-9 direction x) -0.2959) @@ -176,31 +126,16 @@ (set! (-> a0-9 direction z) -0.8133) (set! (-> a0-9 direction w) 1.0) ) - (let ((a0-10 (-> v1-2 dir1 color))) - (set! (-> a0-10 x) 0.8) - (set! (-> a0-10 y) 0.8) - (set! (-> a0-10 z) 0.8) - (set! (-> a0-10 w) 1.0) - ) + (set-vector! (-> v1-2 dir1 color) 0.8 0.8 0.8 1.0) (set! (-> v1-2 dir1 levels x) 0.7) ) (let ((s5-0 (-> arg0 light-group 3))) (make-light-kit s5-0 5461.3335 1.0 0.8 0.2) - (let ((v1-4 (-> s5-0 dir0 color))) - (set! (-> v1-4 x) 0.675) - (set! (-> v1-4 y) 0.45) - (set! (-> v1-4 z) 0.15) - (set! (-> v1-4 w) 1.0) - ) + (set-vector! (-> s5-0 dir0 color) 0.675 0.45 0.15 1.0) ) (let ((s5-1 (-> arg0 light-group 4))) (make-light-kit s5-1 57344.0 1.0 0.8 0.2) - (let ((v1-5 (-> s5-1 dir0 color))) - (set! (-> v1-5 x) 0.675) - (set! (-> v1-5 y) 0.45) - (set! (-> v1-5 z) 0.15) - (set! (-> v1-5 w) 1.0) - ) + (set-vector! (-> s5-1 dir0 color) 0.675 0.45 0.15 1.0) ) (let ((v1-6 (-> arg0 light-group 5))) (let ((a0-13 (-> v1-6 dir0))) @@ -209,28 +144,13 @@ (set! (-> a0-13 direction z) 0.0) (set! (-> a0-13 direction w) 0.0) ) - (let ((a0-14 (-> v1-6 dir0 color))) - (set! (-> a0-14 x) 2.0) - (set! (-> a0-14 y) 1.0) - (set! (-> a0-14 z) 0.0) - (set! (-> a0-14 w) 1.0) - ) + (set-vector! (-> v1-6 dir0 color) 2.0 1.0 0.0 1.0) (set! (-> v1-6 dir1 levels x) 0.0) (set! (-> v1-6 dir2 levels x) 0.0) ) (let ((v1-8 (-> arg0 light-group 6))) - (let ((a0-15 (-> v1-8 dir0 color))) - (set! (-> a0-15 x) 1.0) - (set! (-> a0-15 y) 0.5) - (set! (-> a0-15 z) 0.0) - (set! (-> a0-15 w) 1.0) - ) - (let ((a0-16 (-> v1-8 dir1 color))) - (set! (-> a0-16 x) 0.6) - (set! (-> a0-16 y) 0.58125) - (set! (-> a0-16 z) 0.525) - (set! (-> a0-16 w) 1.0) - ) + (set-vector! (-> v1-8 dir0 color) 1.0 0.5 0.0 1.0) + (set-vector! (-> v1-8 dir1 color) 0.6 0.58125 0.525 1.0) (set! (-> v1-8 dir1 levels x) 0.0) (set! (-> v1-8 dir2 levels x) 0.0) ) @@ -248,12 +168,7 @@ (set! (-> v1-0 direction z) 0.0) (set! (-> v1-0 direction w) 1.0) ) - (let ((v1-1 (-> s5-0 dir0 color))) - (set! (-> v1-1 x) 1.0) - (set! (-> v1-1 y) 0.9) - (set! (-> v1-1 z) 0.0) - (set! (-> v1-1 w) 1.0) - ) + (set-vector! (-> s5-0 dir0 color) 1.0 0.9 0.0 1.0) ) (let ((s5-1 (-> arg0 light-group 2))) (make-light-kit s5-1 0.0 1.0 0.0 0.0) @@ -263,12 +178,7 @@ (set! (-> v1-2 direction z) 0.0) (set! (-> v1-2 direction w) 1.0) ) - (let ((v1-3 (-> s5-1 dir0 color))) - (set! (-> v1-3 x) 1.0) - (set! (-> v1-3 y) 0.9) - (set! (-> v1-3 z) 0.0) - (set! (-> v1-3 w) 1.0) - ) + (set-vector! (-> s5-1 dir0 color) 1.0 0.9 0.0 1.0) ) (let ((s5-2 (-> arg0 light-group 3))) (make-light-kit s5-2 0.0 1.0 0.0 0.0) @@ -278,12 +188,7 @@ (set! (-> v1-4 direction z) 0.0) (set! (-> v1-4 direction w) 1.0) ) - (let ((v1-5 (-> s5-2 dir0 color))) - (set! (-> v1-5 x) 1.0) - (set! (-> v1-5 y) 0.9) - (set! (-> v1-5 z) 0.0) - (set! (-> v1-5 w) 1.0) - ) + (set-vector! (-> s5-2 dir0 color) 1.0 0.9 0.0 1.0) ) (let ((s5-3 (-> arg0 light-group 4))) (make-light-kit s5-3 0.0 1.0 0.0 0.0) @@ -293,12 +198,7 @@ (set! (-> v1-6 direction z) 0.0) (set! (-> v1-6 direction w) 1.0) ) - (let ((v1-7 (-> s5-3 dir0 color))) - (set! (-> v1-7 x) 1.0) - (set! (-> v1-7 y) 0.9) - (set! (-> v1-7 z) 0.0) - (set! (-> v1-7 w) 1.0) - ) + (set-vector! (-> s5-3 dir0 color) 1.0 0.9 0.0 1.0) ) (let ((s5-4 (-> arg0 light-group 5))) (make-light-kit s5-4 0.0 1.0 0.0 0.0) @@ -308,12 +208,7 @@ (set! (-> v1-8 direction z) 0.0) (set! (-> v1-8 direction w) 1.0) ) - (let ((v1-9 (-> s5-4 dir0 color))) - (set! (-> v1-9 x) 1.0) - (set! (-> v1-9 y) 0.9) - (set! (-> v1-9 z) 0.0) - (set! (-> v1-9 w) 1.0) - ) + (set-vector! (-> s5-4 dir0 color) 1.0 0.9 0.0 1.0) ) (let ((gp-1 (-> arg0 light-group 6))) (make-light-kit gp-1 0.0 1.0 0.0 0.0) @@ -323,12 +218,7 @@ (set! (-> v1-10 direction z) 0.0) (set! (-> v1-10 direction w) 1.0) ) - (let ((v0-6 (-> gp-1 dir0 color))) - (set! (-> v0-6 x) 1.0) - (set! (-> v0-6 y) 0.9) - (set! (-> v0-6 z) 0.0) - (set! (-> v0-6 w) 1.0) - ) + (set-vector! (-> gp-1 dir0 color) 1.0 0.9 0.0 1.0) ) (none) ) @@ -343,12 +233,7 @@ (set! (-> a1-0 direction z) 0.2929) (set! (-> a1-0 direction w) 1.0) ) - (let ((a1-1 (-> v1-0 dir0 color))) - (set! (-> a1-1 x) 0.5) - (set! (-> a1-1 y) 1.0) - (set! (-> a1-1 z) 1.0) - (set! (-> a1-1 w) 1.0) - ) + (set-vector! (-> v1-0 dir0 color) 0.5 1.0 1.0 1.0) (set! (-> v1-0 dir0 levels x) 1.0) (let ((a1-2 (-> v1-0 dir2))) (set! (-> a1-2 direction x) 0.0) @@ -356,12 +241,7 @@ (set! (-> a1-2 direction z) 0.0) (set! (-> a1-2 direction w) 1.0) ) - (let ((v1-1 (-> v1-0 dir2 color))) - (set! (-> v1-1 x) 0.625) - (set! (-> v1-1 y) 0.375) - (set! (-> v1-1 z) 0.1) - (set! (-> v1-1 w) 1.0) - ) + (set-vector! (-> v1-0 dir2 color) 0.625 0.375 0.1 1.0) ) (let ((v1-2 (-> arg0 light-group 2))) (let ((a0-1 (-> v1-2 dir0))) @@ -370,12 +250,7 @@ (set! (-> a0-1 direction z) 0.2929) (set! (-> a0-1 direction w) 1.0) ) - (let ((a0-2 (-> v1-2 dir0 color))) - (set! (-> a0-2 x) 0.25) - (set! (-> a0-2 y) 0.5) - (set! (-> a0-2 z) 0.5) - (set! (-> a0-2 w) 1.0) - ) + (set-vector! (-> v1-2 dir0 color) 0.25 0.5 0.5 1.0) (set! (-> v1-2 dir0 levels x) 1.0) (let ((a0-3 (-> v1-2 dir2))) (set! (-> a0-3 direction x) 0.0) @@ -383,12 +258,7 @@ (set! (-> a0-3 direction z) 0.0) (set! (-> a0-3 direction w) 1.0) ) - (let ((v0-0 (-> v1-2 dir2 color))) - (set! (-> v0-0 x) 0.625) - (set! (-> v0-0 y) 0.375) - (set! (-> v0-0 z) 0.1) - (set! (-> v0-0 w) 1.0) - ) + (set-vector! (-> v1-2 dir2 color) 0.625 0.375 0.1 1.0) ) (none) ) diff --git a/goal_src/engine/anim/aligner.gc b/goal_src/engine/anim/aligner.gc index acbb227088..aca99d537f 100644 --- a/goal_src/engine/anim/aligner.gc +++ b/goal_src/engine/anim/aligner.gc @@ -12,150 +12,151 @@ (defmethod TODO-RENAME-9 align-control ((obj align-control)) (local-vars (a0-9 symbol) (s7-0 none) (ra-0 int)) (with-pp - (let ((s5-0 (-> obj process skel active-channels))) - (dotimes (s4-0 s5-0) - (let* ((a0-3 (-> obj process skel channel s4-0)) - (v1-5 (-> a0-3 frame-group)) - (a0-4 (-> a0-3 command)) - (a1-0 'stack) - (a2-0 (= a0-4 a1-0)) + (let ((s5-0 (-> obj process skel active-channels))) + (dotimes (s4-0 s5-0) + (let* ((a0-3 (-> obj process skel channel s4-0)) + (v1-5 (-> a0-3 frame-group)) + (a0-4 (-> a0-3 command)) + (a1-0 'stack) + (a2-0 (= a0-4 a1-0)) + ) + (cond + ((or a2-0 (begin + (set! a1-0 'stack1) + (= a0-4 a1-0) + ) + ) + ) + (else + ; TODO - support decompiling the return-from-thread + ; TODO - properly decompile the `go`to + ; (when (!= (-> v1-5 type) art-joint-anim) + ; (let + ; ((t9-0 (the-as (function object object object object) enter-state)) + ; (a0-7 "align joint-anim") + ; ) + ; (set! (-> pp next-state) process-drawable-art-error) + ; (t9-0 a0-7 (the-as none a1-0) a2-0) + ; ) + ; (.lw ra-0 return-from-thread s7-0) + ; (.jr ra-0) + ; (nop!) + ; 0 + ; ) + 0 + ) ) + ) + ) + ) + (let* ((a0-8 (-> obj process skel root-channel 0)) + (v1-16 (-> a0-8 frame-group)) + (f0-0 (-> a0-8 frame-num)) + ) + (= (-> a0-8 num-func) num-func-loop!) (cond - ((or a2-0 (begin - (set! a1-0 'stack1) - (= a0-4 a1-0) - ) + ((or (not v1-16) (!= (-> obj frame-group) v1-16)) + (set! a0-9 #t) + ) + ((= (-> a0-8 num-func) num-func-loop!) + (set! a0-9 (< (* (-> a0-8 param 0) (- f0-0 (-> obj frame-num))) 0.0)) + ) + (else + (set! a0-9 (= f0-0 0.0)) ) ) - (else - ; TODO - support decompiling the return-from-thread - ; TODO - properly decompile the `go`to - ; (when (!= (-> v1-5 type) art-joint-anim) - ; (let - ; ((t9-0 (the-as (function object object object object) enter-state)) - ; (a0-7 "align joint-anim") - ; ) - ; (set! (-> pp next-state) process-drawable-art-error) - ; (t9-0 a0-7 (the-as none a1-0) a2-0) - ; ) - ; (.lw ra-0 return-from-thread s7-0) - ; (.jr ra-0) - ; (nop!) - ; 0 - ; ) - 0 + (if a0-9 + (set! (-> obj flags) (logior (-> obj flags) 1)) + (set! (-> obj flags) (logand -2 (the-as int (-> obj flags)))) + ) + (set! (-> obj frame-group) v1-16) + (set! (-> obj frame-num) f0-0) + ) + (mem-copy! + (the-as pointer (-> obj transform 1)) + (the-as pointer (-> obj transform)) + 48 + ) + (quaternion-copy! + (the-as quaternion (-> obj transform 1 rot)) + (-> obj align quat) + ) + (set! (-> obj transform 1 scale quad) (-> obj align scale quad)) + (let* ((a2-5 (-> obj matrix 1)) + (a3-0 (-> obj matrix)) + (v1-19 (-> a3-0 0 vector 0 quad)) + (a0-18 (-> a3-0 0 vector 1 quad)) + (a1-12 (-> a3-0 0 vector 2 quad)) + (a3-1 (-> a3-0 0 vector 3 quad)) + ) + (set! (-> a2-5 vector 0 quad) v1-19) + (set! (-> a2-5 vector 1 quad) a0-18) + (set! (-> a2-5 vector 2 quad) a1-12) + (set! (-> a2-5 vector 3 quad) a3-1) + ) + (let ((s5-1 (-> obj process node-list data 1))) + (cspace<-matrix-no-push-joint! s5-1 (the-as matrix (-> obj process skel))) + (let* ((v1-23 (-> obj matrix)) + (a3-2 (-> s5-1 bone transform)) + (a0-21 (-> a3-2 vector 0 quad)) + (a1-14 (-> a3-2 vector 1 quad)) + (a2-6 (-> a3-2 vector 2 quad)) + (a3-3 (-> a3-2 vector 3 quad)) + ) + (set! (-> v1-23 0 vector 0 quad) a0-21) + (set! (-> v1-23 0 vector 1 quad) a1-14) + (set! (-> v1-23 0 vector 2 quad) a2-6) + (set! (-> v1-23 0 vector 3 quad) a3-3) + ) + (vector*! + (the-as vector (-> obj transform)) + (-> s5-1 bone position) + (-> obj process root scale) + ) + ) + (vector-! + (the-as vector (-> obj delta)) + (the-as vector (-> obj transform)) + (the-as vector (-> obj transform 1)) + ) + (set-vector! + (-> obj align scale) + (vector-length (the-as vector (-> obj matrix))) + (vector-length (-> obj matrix 0 vector 1)) + (vector-length (-> obj matrix 0 vector 2)) + 1.0 + ) + (vector-! + (-> obj delta scale) + (-> obj align scale) + (-> obj transform 1 scale) + ) + (let + ((a2-8 + (matrix-inv-scale! (new 'stack-no-clear 'matrix) (-> obj align scale)) + ) + ) + (quaternion-normalize! + (matrix->quaternion + (-> obj align quat) + (matrix*! a2-8 (the-as matrix (-> obj matrix)) a2-8) ) ) ) - ) - ) - (let* ((a0-8 (-> obj process skel root-channel 0)) - (v1-16 (-> a0-8 frame-group)) - (f0-0 (-> a0-8 frame-num)) - ) - (= (-> a0-8 num-func) num-func-loop!) - (cond - ((or (not v1-16) (!= (-> obj frame-group) v1-16)) - (set! a0-9 #t) - ) - ((= (-> a0-8 num-func) num-func-loop!) - (set! a0-9 (< (* (-> a0-8 param 0) (- f0-0 (-> obj frame-num))) 0.0)) - ) - (else - (set! a0-9 (= f0-0 0.0)) - ) - ) - (if a0-9 - (set! (-> obj flags) (logior (-> obj flags) 1)) - (set! (-> obj flags) (logand -2 (the-as int (-> obj flags)))) - ) - (set! (-> obj frame-group) v1-16) - (set! (-> obj frame-num) f0-0) - ) - (mem-copy! - (the-as pointer (-> obj transform 1)) - (the-as pointer (-> obj transform)) - 48 - ) - (quaternion-copy! - (the-as quaternion (-> obj transform 1 rot)) - (-> obj align quat) - ) - (set! (-> obj transform 1 scale quad) (-> obj align scale quad)) - (let* ((a2-5 (-> obj matrix 1)) - (a3-0 (-> obj matrix)) - (v1-19 (-> a3-0 0 vector 0 quad)) - (a0-18 (-> a3-0 0 vector 1 quad)) - (a1-12 (-> a3-0 0 vector 2 quad)) - (a3-1 (-> a3-0 0 vector 3 quad)) - ) - (set! (-> a2-5 vector 0 quad) v1-19) - (set! (-> a2-5 vector 1 quad) a0-18) - (set! (-> a2-5 vector 2 quad) a1-12) - (set! (-> a2-5 vector 3 quad) a3-1) - ) - (let ((s5-1 (-> obj process node-list data 1))) - (cspace<-matrix-no-push-joint! s5-1 (the-as matrix (-> obj process skel))) - (let* ((v1-23 (-> obj matrix)) - (a3-2 (-> s5-1 bone transform)) - (a0-21 (-> a3-2 vector 0 quad)) - (a1-14 (-> a3-2 vector 1 quad)) - (a2-6 (-> a3-2 vector 2 quad)) - (a3-3 (-> a3-2 vector 3 quad)) + (let + ((a1-24 + (quaternion-inverse! + (new 'stack-no-clear 'quaternion) + (the-as quaternion (-> obj transform 1 rot)) ) - (set! (-> v1-23 0 vector 0 quad) a0-21) - (set! (-> v1-23 0 vector 1 quad) a1-14) - (set! (-> v1-23 0 vector 2 quad) a2-6) - (set! (-> v1-23 0 vector 3 quad) a3-3) - ) - (vector*! - (the-as vector (-> obj transform)) - (-> s5-1 bone position) - (-> obj process root scale) - ) - ) - (vector-! - (the-as vector (-> obj delta)) - (the-as vector (-> obj transform)) - (the-as vector (-> obj transform 1)) - ) - (let ((s5-2 (-> obj align scale))) - (set! (-> s5-2 x) (vector-length (the-as vector (-> obj matrix)))) - (set! (-> s5-2 y) (vector-length (-> obj matrix 0 vector 1))) - (set! (-> s5-2 z) (vector-length (-> obj matrix 0 vector 2))) - (set! (-> s5-2 w) 1.0) - ) - (vector-! - (-> obj delta scale) - (-> obj align scale) - (-> obj transform 1 scale) - ) - (let - ((a2-8 - (matrix-inv-scale! (new 'stack-no-clear 'matrix) (-> obj align scale)) - ) - ) - (quaternion-normalize! - (matrix->quaternion - (-> obj align quat) - (matrix*! a2-8 (the-as matrix (-> obj matrix)) a2-8) - ) - ) - ) - (let - ((a1-24 - (quaternion-inverse! - (new 'stack-no-clear 'quaternion) - (the-as quaternion (-> obj transform 1 rot)) + ) + ) + (quaternion-normalize! + (quaternion*! (-> obj delta quat) a1-24 (-> obj align quat)) ) ) - ) - (quaternion-normalize! - (quaternion*! (-> obj delta quat) a1-24 (-> obj align quat)) - ) + (-> obj delta) ) - (-> obj delta) - ) ) ;; definition for method 12 of type align-control diff --git a/goal_src/engine/debug/debug-sphere.gc b/goal_src/engine/debug/debug-sphere.gc index 7c42b88064..96b42fdba7 100644 --- a/goal_src/engine/debug/debug-sphere.gc +++ b/goal_src/engine/debug/debug-sphere.gc @@ -23,12 +23,7 @@ (f30-0 1.0) (s4-0 0) ) - (let ((v1-0 s5-0)) - (set! (-> v1-0 x) 0.0) - (set! (-> v1-0 y) 0.0) - (set! (-> v1-0 z) 0.0) - (set! (-> v1-0 w) 1.0) - ) + (set-vector! s5-0 0.0 0.0 0.0 1.0) (dotimes (s3-0 10) (let ((f28-0 (* f30-0 (sin (* 3276.8 (the float s3-0))))) (f26-0 (* f30-0 (sin (* 3276.8 (the float (+ s3-0 1)))))) diff --git a/goal_src/engine/geometry/geometry.gc b/goal_src/engine/geometry/geometry.gc index cc1613eaac..d27fcee95a 100644 --- a/goal_src/engine/geometry/geometry.gc +++ b/goal_src/engine/geometry/geometry.gc @@ -917,18 +917,8 @@ (s5-0 (new-stack-vector0)) (gp-0 (new-stack-vector0)) ) - (let ((v1-3 s4-0)) - (set! (-> v1-3 x) 0.0) - (set! (-> v1-3 y) 0.0) - (set! (-> v1-3 z) 0.0) - (set! (-> v1-3 w) 1.0) - ) - (let ((v1-4 a1-2)) - (set! (-> v1-4 x) 100.0) - (set! (-> v1-4 y) 0.0) - (set! (-> v1-4 z) 0.0) - (set! (-> v1-4 w) 10000.0) - ) + (set-vector! s4-0 0.0 0.0 0.0 1.0) + (set-vector! a1-2 100.0 0.0 0.0 10000.0) (let ((a2-1 (circle-circle-xz-intersect s4-0 a1-2 s5-0 gp-0))) (format #t "res = ~d~%" a2-1) ) diff --git a/goal_src/engine/gfx/mood-h.gc b/goal_src/engine/gfx/mood-h.gc index 9d6104c914..bc687b332a 100644 --- a/goal_src/engine/gfx/mood-h.gc +++ b/goal_src/engine/gfx/mood-h.gc @@ -94,54 +94,14 @@ (defmethod new mood-context ((allocation symbol) (type-to-make type)) (let ((v0-0 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) - (let ((v1-2 (-> v0-0 times))) - (set! (-> v1-2 0 x) 1.0) - (set! (-> v1-2 0 y) 1.0) - (set! (-> v1-2 0 z) 1.0) - (set! (-> v1-2 0 w) 0.0) - ) - (let ((v1-3 (-> v0-0 times 1))) - (set! (-> v1-3 x) 1.0) - (set! (-> v1-3 y) 1.0) - (set! (-> v1-3 z) 1.0) - (set! (-> v1-3 w) 0.0) - ) - (let ((v1-4 (-> v0-0 times 2))) - (set! (-> v1-4 x) 1.0) - (set! (-> v1-4 y) 1.0) - (set! (-> v1-4 z) 1.0) - (set! (-> v1-4 w) 0.0) - ) - (let ((v1-5 (-> v0-0 times 3))) - (set! (-> v1-5 x) 1.0) - (set! (-> v1-5 y) 1.0) - (set! (-> v1-5 z) 1.0) - (set! (-> v1-5 w) 0.0) - ) - (let ((v1-6 (-> v0-0 times 4))) - (set! (-> v1-6 x) 1.0) - (set! (-> v1-6 y) 1.0) - (set! (-> v1-6 z) 1.0) - (set! (-> v1-6 w) 0.0) - ) - (let ((v1-7 (-> v0-0 times 5))) - (set! (-> v1-7 x) 1.0) - (set! (-> v1-7 y) 1.0) - (set! (-> v1-7 z) 1.0) - (set! (-> v1-7 w) 0.0) - ) - (let ((v1-8 (-> v0-0 times 6))) - (set! (-> v1-8 x) 1.0) - (set! (-> v1-8 y) 1.0) - (set! (-> v1-8 z) 1.0) - (set! (-> v1-8 w) 0.0) - ) - (let ((v1-9 (-> v0-0 times 7))) - (set! (-> v1-9 x) 1.0) - (set! (-> v1-9 y) 1.0) - (set! (-> v1-9 z) 1.0) - (set! (-> v1-9 w) 0.0) - ) + (set-vector! (-> v0-0 times 0) 1.0 1.0 1.0 0.0) + (set-vector! (-> v0-0 times 1) 1.0 1.0 1.0 0.0) + (set-vector! (-> v0-0 times 2) 1.0 1.0 1.0 0.0) + (set-vector! (-> v0-0 times 3) 1.0 1.0 1.0 0.0) + (set-vector! (-> v0-0 times 4) 1.0 1.0 1.0 0.0) + (set-vector! (-> v0-0 times 5) 1.0 1.0 1.0 0.0) + (set-vector! (-> v0-0 times 6) 1.0 1.0 1.0 0.0) + (set-vector! (-> v0-0 times 7) 1.0 1.0 1.0 0.0) v0-0 ) ) diff --git a/goal_src/engine/math/matrix.gc b/goal_src/engine/math/matrix.gc index 469e2d7378..75bb41f644 100644 --- a/goal_src/engine/math/matrix.gc +++ b/goal_src/engine/math/matrix.gc @@ -247,18 +247,11 @@ "Set dst to be ([src 1.0] * mat).xyz. Doesn't touch the w of dst. dst and vec can be the same memory" (let ((temp-vec3 (new-stack-vector0))) - ;; create a temporary vec with [x, y, z, 1.0] - (let ((v1-0 temp-vec3)) - (set! (-> v1-0 data 0) (-> vec data 0)) - (set! (-> v1-0 data 1) (-> vec data 1)) - (set! (-> v1-0 data 2) (-> vec data 2)) - (set! (-> v1-0 data 3) 1.0) - ) + (set-vector! temp-vec3 (-> vec x) (-> vec y) (-> vec z) 1.0) (vector-matrix*! temp-vec3 temp-vec3 mat) - ;; only write back x,y,z - (set! (-> dst data 0) (-> temp-vec3 data 0)) - (set! (-> dst data 1) (-> temp-vec3 data 1)) - (set! (-> dst data 2) (-> temp-vec3 data 2)) + (set! (-> dst x) (-> temp-vec3 x)) + (set! (-> dst y) (-> temp-vec3 y)) + (set! (-> dst z) (-> temp-vec3 z)) ) dst ) @@ -267,16 +260,11 @@ "Set dst to vec rotated by the rotation in the homogeneous transform mat. mat should not have a scale/shear (the upper 3x3 should be a pure rotation)." (let ((temp-vec3 (new-stack-vector0))) - (let ((v1-0 temp-vec3)) - (set! (-> v1-0 data 0) (-> vec data 0)) - (set! (-> v1-0 data 1) (-> vec data 1)) - (set! (-> v1-0 data 2) (-> vec data 2)) - (set! (-> v1-0 data 3) 1.0) - ) + (set-vector! temp-vec3 (-> vec x) (-> vec y) (-> vec z) 1.0) (vector-rotate*! temp-vec3 temp-vec3 mat) - (set! (-> dst data 0) (-> temp-vec3 data 0)) - (set! (-> dst data 1) (-> temp-vec3 data 1)) - (set! (-> dst data 2) (-> temp-vec3 data 2)) + (set! (-> dst x) (-> temp-vec3 x)) + (set! (-> dst y) (-> temp-vec3 y)) + (set! (-> dst z) (-> temp-vec3 z)) ) dst ) @@ -787,12 +775,13 @@ ;; the vector-sincos! lets us take the sine and cosine of 4 floats at a time. ;; it uses vector operations and reuses the taylor series coefficients to do this quickly - (let ((v1-0 sincos-input)) - (set! (-> v1-0 data 0) (-> rots-deg data 0)) - (set! (-> v1-0 data 1) (- (-> rots-deg data 1) (-> rots-deg data 2))) - (set! (-> v1-0 data 2) (-> rots-deg data 2)) - (set! (-> v1-0 data 3) 1.0) - ) + (set-vector! + sincos-input + (-> rots-deg x) + (- (-> rots-deg y) (-> rots-deg z)) + (-> rots-deg z) + 1.0 + ) (vector-sincos! sin-vec cos-vec sincos-input) (let ((cos-y (-> cos-vec data 1)) (sin-y (-> sin-vec data 1)) diff --git a/goal_src/engine/math/quaternion.gc b/goal_src/engine/math/quaternion.gc index a7cb848d34..c4b8fc2bb3 100644 --- a/goal_src/engine/math/quaternion.gc +++ b/goal_src/engine/math/quaternion.gc @@ -1033,16 +1033,11 @@ (let ((gp-0 (new 'stack-no-clear 'matrix)) (s5-0 (new 'stack-no-clear 'vector)) ) - (quaternion->matrix gp-0 arg0) - (let ((v1-1 s5-0)) - (set! (-> v1-1 data 0) 0.0) - (set! (-> v1-1 data 1) 0.0) - (set! (-> v1-1 data 2) 1.0) - (set! (-> v1-1 data 3) 1.0) + (quaternion->matrix gp-0 arg0) + (set-vector! s5-0 0.0 0.0 1.0 1.0) + (vector-matrix*! s5-0 s5-0 gp-0) + (vector-y-angle s5-0) ) - (vector-matrix*! s5-0 s5-0 gp-0) - (vector-y-angle s5-0) - ) ) (defun-debug quaternion-validate ((arg0 quaternion)) diff --git a/goal_src/engine/math/vector.gc b/goal_src/engine/math/vector.gc index 8af926b6bb..a222ac787b 100644 --- a/goal_src/engine/math/vector.gc +++ b/goal_src/engine/math/vector.gc @@ -1270,11 +1270,11 @@ (defun rand-vu-sphere-point! ((arg0 vector) (arg1 float)) "Get a random point on the sphere at the origin with radius arg1. The point is on the surface of the sphere." - (let ((s4-0 arg0)) - (set! (-> s4-0 data 0) (rand-vu-float-range -1.0 1.0)) - (set! (-> s4-0 data 1) (rand-vu-float-range -1.0 1.0)) - (set! (-> s4-0 data 2) (rand-vu-float-range -1.0 1.0)) - (set! (-> s4-0 data 3) 1.0) - ) + (set-vector! arg0 + (rand-vu-float-range -1.0 1.0) + (rand-vu-float-range -1.0 1.0) + (rand-vu-float-range -1.0 1.0) + 1.0 + ) (vector-normalize! arg0 (rand-vu-float-range 0.0 arg1)) ) diff --git a/goal_src/engine/sparticle/sparticle-h.gc b/goal_src/engine/sparticle/sparticle-h.gc index e140822f03..c3147920e2 100644 --- a/goal_src/engine/sparticle/sparticle-h.gc +++ b/goal_src/engine/sparticle/sparticle-h.gc @@ -7,11 +7,12 @@ (define *sp-frame-time* (new 'global 'vector)) -(let ((v1-1 *sp-frame-time*)) - (set! (-> v1-1 x) 0.00000000000000000000000000000000000001175495) - (set! (-> v1-1 y) 5.0) - (set! (-> v1-1 z) 1.0) - (set! (-> v1-1 w) 1.0) +(set-vector! + *sp-frame-time* + 0.00000000000000000000000000000000000001175495 + 5.0 + 1.0 + 1.0 ) (define *sp-60-hz* #t) diff --git a/goal_src/engine/target/joint-mod-h.gc b/goal_src/engine/target/joint-mod-h.gc index 2a2f2c1bd1..2f0e4fcd4f 100644 --- a/goal_src/engine/target/joint-mod-h.gc +++ b/goal_src/engine/target/joint-mod-h.gc @@ -82,12 +82,7 @@ (set! (-> obj joint) (-> (-> proc node-list) data joint-idx)) (set-mode! obj mode) ;; set defaults. - (let ((twist-max (-> obj twist-max))) - (set! (-> twist-max x) 8192.0) - (set! (-> twist-max y) 11832.889) - (set! (-> twist-max z) 0.0) - (set! (-> twist-max w) 1.0) - ) + (set-vector! (-> obj twist-max) 8192.0 11832.889 0.0 1.0) (set! (-> obj up) (the-as uint 1)) (set! (-> obj nose) (the-as uint 2)) (set! (-> obj ear) (the-as uint 0)) @@ -140,12 +135,7 @@ (set! (-> joint param2) #f) (vector-reset! (-> obj trans)) (quaternion-identity! (-> obj quat)) - (let ((v1-2 (-> obj scale))) - (set! (-> v1-2 x) 1.0) - (set! (-> v1-2 y) 1.0) - (set! (-> v1-2 z) 1.0) - (set! (-> v1-2 w) 1.0) - ) + (set-vector! (-> obj scale) 1.0 1.0 1.0 1.0) (set! (-> obj max-dist) (the-as float #f)) ) (((joint-mod-handler-mode joint-set*)) @@ -154,12 +144,7 @@ (set! (-> joint param2) #f) (vector-reset! (-> obj trans)) (quaternion-identity! (-> obj quat)) - (let ((v1-4 (-> obj scale))) - (set! (-> v1-4 x) 1.0) - (set! (-> v1-4 y) 1.0) - (set! (-> v1-4 z) 1.0) - (set! (-> v1-4 w) 1.0) - ) + (set-vector! (-> obj scale) 1.0 1.0 1.0 1.0) (set! (-> obj max-dist) (the-as float #f)) ) ) @@ -676,14 +661,9 @@ ) (vector*! (-> arg1 scale) (-> arg1 scale) (-> s5-0 scale)) (cspace<-parented-transformq-joint! arg0 arg1) - (when (-> s5-0 max-dist) - (let ((v1-4 (-> arg0 bone scale))) - (set! (-> v1-4 x) 1.0) - (set! (-> v1-4 y) 1.0) - (set! (-> v1-4 z) 1.0) - (set! (-> v1-4 w) 1.0) + (if (-> s5-0 max-dist) + (set-vector! (-> arg0 bone scale) 1.0 1.0 1.0 1.0) ) - ) ) (none) ) @@ -757,12 +737,7 @@ (set! (-> v0-0 wheel-radius) arg2) (set! (-> v0-0 wheel-axis) arg3) (set! (-> v0-0 angle) 0.0) - (let ((v1-2 (-> v0-0 last-position))) - (set! (-> v1-2 x) 0.0) - (set! (-> v1-2 y) 0.0) - (set! (-> v1-2 z) 0.0) - (set! (-> v1-2 w) 1.0) - ) + (set-vector! (-> v0-0 last-position) 0.0 0.0 0.0 1.0) (let ((v1-5 (-> (-> arg0 node-list) data arg1))) (set! (-> v1-5 param0) joint-mod-wheel-callback) (set! (-> v1-5 param1) v0-0) diff --git a/test/decompiler/reference/decompiler-macros.gc b/test/decompiler/reference/decompiler-macros.gc index 09e598077b..258c10976d 100644 --- a/test/decompiler/reference/decompiler-macros.gc +++ b/test/decompiler/reference/decompiler-macros.gc @@ -197,3 +197,12 @@ ) ) +(defmacro set-vector! (v xv yv zv wv) + "Set all fields in a vector" + (with-gensyms (vec) + `(let ((vec ,v)) + (set! (-> vec x) ,xv) + (set! (-> vec y) ,yv) + (set! (-> vec z) ,zv) + (set! (-> vec w) ,wv))) + ) \ No newline at end of file diff --git a/test/decompiler/reference/engine/ambient/mood-tables_REF.gc b/test/decompiler/reference/engine/ambient/mood-tables_REF.gc index ccefd2ae8a..5761ebe06c 100644 --- a/test/decompiler/reference/engine/ambient/mood-tables_REF.gc +++ b/test/decompiler/reference/engine/ambient/mood-tables_REF.gc @@ -13,12 +13,7 @@ (set! (-> v1-0 direction z) 0.612) (set! (-> v1-0 direction w) 0.0) ) - (let ((v1-1 (-> arg0 dir0 color))) - (set! (-> v1-1 x) 0.8) - (set! (-> v1-1 y) 0.775) - (set! (-> v1-1 z) 0.7) - (set! (-> v1-1 w) 1.0) - ) + (set-vector! (-> arg0 dir0 color) 0.8 0.775 0.7 1.0) (set! (-> arg0 dir0 levels x) arg2) (let ((v1-2 (-> arg0 dir1))) (set! (-> v1-2 direction x) 0.612) @@ -26,12 +21,7 @@ (set! (-> v1-2 direction z) -0.612) (set! (-> v1-2 direction w) 0.0) ) - (let ((v1-3 (-> arg0 dir1 color))) - (set! (-> v1-3 x) 0.8) - (set! (-> v1-3 y) 0.775) - (set! (-> v1-3 z) 0.7) - (set! (-> v1-3 w) 1.0) - ) + (set-vector! (-> arg0 dir1 color) 0.8 0.775 0.7 1.0) (set! (-> arg0 dir1 levels x) arg3) (vector-matrix*! (the-as vector (-> arg0 dir0)) @@ -50,12 +40,7 @@ (set! (-> v1-4 direction z) 0.0) (set! (-> v1-4 direction w) 0.0) ) - (let ((v1-5 (-> arg0 dir2 color))) - (set! (-> v1-5 x) 0.8) - (set! (-> v1-5 y) 0.775) - (set! (-> v1-5 z) 0.7) - (set! (-> v1-5 w) 1.0) - ) + (set-vector! (-> arg0 dir2 color) 0.8 0.775 0.7 1.0) (let ((f0-26 arg4)) (set! (-> arg0 dir2 levels x) f0-26) f0-26 @@ -74,12 +59,7 @@ (set! (-> v1-0 direction z) 0.0) (set! (-> v1-0 direction w) 0.0) ) - (let ((v1-1 (-> s5-0 dir2 color))) - (set! (-> v1-1 x) 0.75) - (set! (-> v1-1 y) 0.375) - (set! (-> v1-1 z) 0.0) - (set! (-> v1-1 w) 1.0) - ) + (set-vector! (-> s5-0 dir2 color) 0.75 0.375 0.0 1.0) ) (make-light-kit (-> arg0 light-group 3) 53703.11 0.9 0.9 0.5) (make-light-kit (-> arg0 light-group 4) 54613.332 0.9 0.9 0.4) @@ -94,18 +74,8 @@ (defun make-misty-light-kit ((arg0 mood-context)) (let ((gp-0 (-> arg0 light-group 1))) (make-light-kit gp-0 24576.0 1.0 0.4 1.0) - (let ((v1-0 (-> gp-0 dir0 color))) - (set! (-> v1-0 x) 0.75) - (set! (-> v1-0 y) 0.3) - (set! (-> v1-0 z) 0.0) - (set! (-> v1-0 w) 1.0) - ) - (let ((v0-1 (-> gp-0 dir2 color))) - (set! (-> v0-1 x) 0.75) - (set! (-> v0-1 y) 0.3) - (set! (-> v0-1 z) 0.0) - (set! (-> v0-1 w) 1.0) - ) + (set-vector! (-> gp-0 dir0 color) 0.75 0.3 0.0 1.0) + (set-vector! (-> gp-0 dir2 color) 0.75 0.3 0.0 1.0) ) (none) ) @@ -120,12 +90,7 @@ (set! (-> a0-1 direction z) 0.0) (set! (-> a0-1 direction w) 1.0) ) - (let ((a0-2 (-> v1-0 dir0 color))) - (set! (-> a0-2 x) 0.375) - (set! (-> a0-2 y) 0.25) - (set! (-> a0-2 z) 0.25) - (set! (-> a0-2 w) 1.0) - ) + (set-vector! (-> v1-0 dir0 color) 0.375 0.25 0.25 1.0) (set! (-> v1-0 dir0 levels x) 1.0) (let ((a0-3 (-> v1-0 dir1))) (set! (-> a0-3 direction x) -0.6119) @@ -133,12 +98,7 @@ (set! (-> a0-3 direction z) -0.6119) (set! (-> a0-3 direction w) 1.0) ) - (let ((a0-4 (-> v1-0 dir1 color))) - (set! (-> a0-4 x) 0.25) - (set! (-> a0-4 y) 0.75) - (set! (-> a0-4 z) 1.0) - (set! (-> a0-4 w) 1.0) - ) + (set-vector! (-> v1-0 dir1 color) 0.25 0.75 1.0 1.0) (set! (-> v1-0 dir1 levels x) 0.666) (let ((a0-5 (-> v1-0 dir2))) (set! (-> a0-5 direction x) 0.9961) @@ -146,12 +106,7 @@ (set! (-> a0-5 direction z) -0.0871) (set! (-> a0-5 direction w) 1.0) ) - (let ((a0-6 (-> v1-0 dir2 color))) - (set! (-> a0-6 x) 0.0) - (set! (-> a0-6 y) 0.25) - (set! (-> a0-6 z) 1.0) - (set! (-> a0-6 w) 1.0) - ) + (set-vector! (-> v1-0 dir2 color) 0.0 0.25 1.0 1.0) (set! (-> v1-0 dir2 levels x) 1.0) ) (let ((v1-2 (-> arg0 light-group 2))) @@ -161,12 +116,7 @@ (set! (-> a0-7 direction z) 0.836) (set! (-> a0-7 direction w) 1.0) ) - (let ((a0-8 (-> v1-2 dir0 color))) - (set! (-> a0-8 x) 0.8) - (set! (-> a0-8 y) 0.8) - (set! (-> a0-8 z) 0.8) - (set! (-> a0-8 w) 1.0) - ) + (set-vector! (-> v1-2 dir0 color) 0.8 0.8 0.8 1.0) (set! (-> v1-2 dir0 levels x) 0.7) (let ((a0-9 (-> v1-2 dir1))) (set! (-> a0-9 direction x) -0.2959) @@ -174,31 +124,16 @@ (set! (-> a0-9 direction z) -0.8133) (set! (-> a0-9 direction w) 1.0) ) - (let ((a0-10 (-> v1-2 dir1 color))) - (set! (-> a0-10 x) 0.8) - (set! (-> a0-10 y) 0.8) - (set! (-> a0-10 z) 0.8) - (set! (-> a0-10 w) 1.0) - ) + (set-vector! (-> v1-2 dir1 color) 0.8 0.8 0.8 1.0) (set! (-> v1-2 dir1 levels x) 0.7) ) (let ((s5-0 (-> arg0 light-group 3))) (make-light-kit s5-0 5461.3335 1.0 0.8 0.2) - (let ((v1-4 (-> s5-0 dir0 color))) - (set! (-> v1-4 x) 0.675) - (set! (-> v1-4 y) 0.45) - (set! (-> v1-4 z) 0.15) - (set! (-> v1-4 w) 1.0) - ) + (set-vector! (-> s5-0 dir0 color) 0.675 0.45 0.15 1.0) ) (let ((s5-1 (-> arg0 light-group 4))) (make-light-kit s5-1 57344.0 1.0 0.8 0.2) - (let ((v1-5 (-> s5-1 dir0 color))) - (set! (-> v1-5 x) 0.675) - (set! (-> v1-5 y) 0.45) - (set! (-> v1-5 z) 0.15) - (set! (-> v1-5 w) 1.0) - ) + (set-vector! (-> s5-1 dir0 color) 0.675 0.45 0.15 1.0) ) (let ((v1-6 (-> arg0 light-group 5))) (let ((a0-13 (-> v1-6 dir0))) @@ -207,28 +142,13 @@ (set! (-> a0-13 direction z) 0.0) (set! (-> a0-13 direction w) 0.0) ) - (let ((a0-14 (-> v1-6 dir0 color))) - (set! (-> a0-14 x) 2.0) - (set! (-> a0-14 y) 1.0) - (set! (-> a0-14 z) 0.0) - (set! (-> a0-14 w) 1.0) - ) + (set-vector! (-> v1-6 dir0 color) 2.0 1.0 0.0 1.0) (set! (-> v1-6 dir1 levels x) 0.0) (set! (-> v1-6 dir2 levels x) 0.0) ) (let ((v1-8 (-> arg0 light-group 6))) - (let ((a0-15 (-> v1-8 dir0 color))) - (set! (-> a0-15 x) 1.0) - (set! (-> a0-15 y) 0.5) - (set! (-> a0-15 z) 0.0) - (set! (-> a0-15 w) 1.0) - ) - (let ((a0-16 (-> v1-8 dir1 color))) - (set! (-> a0-16 x) 0.6) - (set! (-> a0-16 y) 0.58125) - (set! (-> a0-16 z) 0.525) - (set! (-> a0-16 w) 1.0) - ) + (set-vector! (-> v1-8 dir0 color) 1.0 0.5 0.0 1.0) + (set-vector! (-> v1-8 dir1 color) 0.6 0.58125 0.525 1.0) (set! (-> v1-8 dir1 levels x) 0.0) (set! (-> v1-8 dir2 levels x) 0.0) ) @@ -246,12 +166,7 @@ (set! (-> v1-0 direction z) 0.0) (set! (-> v1-0 direction w) 1.0) ) - (let ((v1-1 (-> s5-0 dir0 color))) - (set! (-> v1-1 x) 1.0) - (set! (-> v1-1 y) 0.9) - (set! (-> v1-1 z) 0.0) - (set! (-> v1-1 w) 1.0) - ) + (set-vector! (-> s5-0 dir0 color) 1.0 0.9 0.0 1.0) ) (let ((s5-1 (-> arg0 light-group 2))) (make-light-kit s5-1 0.0 1.0 0.0 0.0) @@ -261,12 +176,7 @@ (set! (-> v1-2 direction z) 0.0) (set! (-> v1-2 direction w) 1.0) ) - (let ((v1-3 (-> s5-1 dir0 color))) - (set! (-> v1-3 x) 1.0) - (set! (-> v1-3 y) 0.9) - (set! (-> v1-3 z) 0.0) - (set! (-> v1-3 w) 1.0) - ) + (set-vector! (-> s5-1 dir0 color) 1.0 0.9 0.0 1.0) ) (let ((s5-2 (-> arg0 light-group 3))) (make-light-kit s5-2 0.0 1.0 0.0 0.0) @@ -276,12 +186,7 @@ (set! (-> v1-4 direction z) 0.0) (set! (-> v1-4 direction w) 1.0) ) - (let ((v1-5 (-> s5-2 dir0 color))) - (set! (-> v1-5 x) 1.0) - (set! (-> v1-5 y) 0.9) - (set! (-> v1-5 z) 0.0) - (set! (-> v1-5 w) 1.0) - ) + (set-vector! (-> s5-2 dir0 color) 1.0 0.9 0.0 1.0) ) (let ((s5-3 (-> arg0 light-group 4))) (make-light-kit s5-3 0.0 1.0 0.0 0.0) @@ -291,12 +196,7 @@ (set! (-> v1-6 direction z) 0.0) (set! (-> v1-6 direction w) 1.0) ) - (let ((v1-7 (-> s5-3 dir0 color))) - (set! (-> v1-7 x) 1.0) - (set! (-> v1-7 y) 0.9) - (set! (-> v1-7 z) 0.0) - (set! (-> v1-7 w) 1.0) - ) + (set-vector! (-> s5-3 dir0 color) 1.0 0.9 0.0 1.0) ) (let ((s5-4 (-> arg0 light-group 5))) (make-light-kit s5-4 0.0 1.0 0.0 0.0) @@ -306,12 +206,7 @@ (set! (-> v1-8 direction z) 0.0) (set! (-> v1-8 direction w) 1.0) ) - (let ((v1-9 (-> s5-4 dir0 color))) - (set! (-> v1-9 x) 1.0) - (set! (-> v1-9 y) 0.9) - (set! (-> v1-9 z) 0.0) - (set! (-> v1-9 w) 1.0) - ) + (set-vector! (-> s5-4 dir0 color) 1.0 0.9 0.0 1.0) ) (let ((gp-1 (-> arg0 light-group 6))) (make-light-kit gp-1 0.0 1.0 0.0 0.0) @@ -321,12 +216,7 @@ (set! (-> v1-10 direction z) 0.0) (set! (-> v1-10 direction w) 1.0) ) - (let ((v0-6 (-> gp-1 dir0 color))) - (set! (-> v0-6 x) 1.0) - (set! (-> v0-6 y) 0.9) - (set! (-> v0-6 z) 0.0) - (set! (-> v0-6 w) 1.0) - ) + (set-vector! (-> gp-1 dir0 color) 1.0 0.9 0.0 1.0) ) (none) ) @@ -341,12 +231,7 @@ (set! (-> a1-0 direction z) 0.2929) (set! (-> a1-0 direction w) 1.0) ) - (let ((a1-1 (-> v1-0 dir0 color))) - (set! (-> a1-1 x) 0.5) - (set! (-> a1-1 y) 1.0) - (set! (-> a1-1 z) 1.0) - (set! (-> a1-1 w) 1.0) - ) + (set-vector! (-> v1-0 dir0 color) 0.5 1.0 1.0 1.0) (set! (-> v1-0 dir0 levels x) 1.0) (let ((a1-2 (-> v1-0 dir2))) (set! (-> a1-2 direction x) 0.0) @@ -354,12 +239,7 @@ (set! (-> a1-2 direction z) 0.0) (set! (-> a1-2 direction w) 1.0) ) - (let ((v1-1 (-> v1-0 dir2 color))) - (set! (-> v1-1 x) 0.625) - (set! (-> v1-1 y) 0.375) - (set! (-> v1-1 z) 0.1) - (set! (-> v1-1 w) 1.0) - ) + (set-vector! (-> v1-0 dir2 color) 0.625 0.375 0.1 1.0) ) (let ((v1-2 (-> arg0 light-group 2))) (let ((a0-1 (-> v1-2 dir0))) @@ -368,12 +248,7 @@ (set! (-> a0-1 direction z) 0.2929) (set! (-> a0-1 direction w) 1.0) ) - (let ((a0-2 (-> v1-2 dir0 color))) - (set! (-> a0-2 x) 0.25) - (set! (-> a0-2 y) 0.5) - (set! (-> a0-2 z) 0.5) - (set! (-> a0-2 w) 1.0) - ) + (set-vector! (-> v1-2 dir0 color) 0.25 0.5 0.5 1.0) (set! (-> v1-2 dir0 levels x) 1.0) (let ((a0-3 (-> v1-2 dir2))) (set! (-> a0-3 direction x) 0.0) @@ -381,12 +256,7 @@ (set! (-> a0-3 direction z) 0.0) (set! (-> a0-3 direction w) 1.0) ) - (let ((v0-0 (-> v1-2 dir2 color))) - (set! (-> v0-0 x) 0.625) - (set! (-> v0-0 y) 0.375) - (set! (-> v0-0 z) 0.1) - (set! (-> v0-0 w) 1.0) - ) + (set-vector! (-> v1-2 dir2 color) 0.625 0.375 0.1 1.0) ) (none) ) diff --git a/test/decompiler/reference/engine/anim/aligner_REF.gc b/test/decompiler/reference/engine/anim/aligner_REF.gc index 0f90cf76b0..d6ba1d44c5 100644 --- a/test/decompiler/reference/engine/anim/aligner_REF.gc +++ b/test/decompiler/reference/engine/anim/aligner_REF.gc @@ -112,11 +112,12 @@ (the-as vector (-> obj transform)) (the-as vector (-> obj transform 1)) ) - (let ((s5-2 (-> obj align scale))) - (set! (-> s5-2 x) (vector-length (the-as vector (-> obj matrix)))) - (set! (-> s5-2 y) (vector-length (-> obj matrix 0 vector 1))) - (set! (-> s5-2 z) (vector-length (-> obj matrix 0 vector 2))) - (set! (-> s5-2 w) 1.0) + (set-vector! + (-> obj align scale) + (vector-length (the-as vector (-> obj matrix))) + (vector-length (-> obj matrix 0 vector 1)) + (vector-length (-> obj matrix 0 vector 2)) + 1.0 ) (vector-! (-> obj delta scale) diff --git a/test/decompiler/reference/engine/camera/camera-h_REF.gc b/test/decompiler/reference/engine/camera/camera-h_REF.gc index 8420b4c816..d5967ae39d 100644 --- a/test/decompiler/reference/engine/camera/camera-h_REF.gc +++ b/test/decompiler/reference/engine/camera/camera-h_REF.gc @@ -276,7 +276,7 @@ (f0-5 (* (-> obj max-partial) (fabs f1-2))) ) (let ((f1-3 (* f1-2 (* (-> obj accel) (-> *display* time-adjust-ratio))))) - (set! (-> obj vel) (+ (-> obj vel) f1-3)) + (+! (-> obj vel) f1-3) ) (let ((f1-6 (fabs (-> obj vel))) (f0-6 (fmin f0-5 (-> obj max-vel))) @@ -287,7 +287,7 @@ ) ) (let ((f0-10 (* (-> obj vel) (-> *display* time-adjust-ratio)))) - (set! (-> obj value) (+ (-> obj value) f0-10)) + (+! (-> obj value) f0-10) ) 0 (none) diff --git a/test/decompiler/reference/engine/camera/math-camera_REF.gc b/test/decompiler/reference/engine/camera/math-camera_REF.gc index 023baf301b..54401693c7 100644 --- a/test/decompiler/reference/engine/camera/math-camera_REF.gc +++ b/test/decompiler/reference/engine/camera/math-camera_REF.gc @@ -241,23 +241,20 @@ (set! (-> sprite-row-0 vector 0 z) 0.0) (set! (-> sprite-row-0 vector 0 w) 0.0) ) - (let ((sprite-row-1 (-> math-cam sprite-2d vector 1))) - (set! (-> sprite-row-1 x) 0.0) - (set! (-> sprite-row-1 y) (- (* (/ persp-yy persp-xx) persp-x))) - (set! (-> sprite-row-1 z) 0.0) - (set! (-> sprite-row-1 w) 0.0) + (set-vector! + (-> math-cam sprite-2d vector 1) + 0.0 + (- (* (/ persp-yy persp-xx) persp-x)) + 0.0 + 0.0 ) - (let ((sprite-row-2 (-> math-cam sprite-2d vector 2))) - (set! (-> sprite-row-2 x) 0.0) - (set! (-> sprite-row-2 y) 0.0) - (set! (-> sprite-row-2 z) (- persp-x)) - (set! (-> sprite-row-2 w) 0.0) - ) - (let ((sprite-row-3 (-> math-cam sprite-2d vector 3))) - (set! (-> sprite-row-3 x) 0.0) - (set! (-> sprite-row-3 y) 0.0) - (set! (-> sprite-row-3 z) (* 500000000.0 persp-x)) - (set! (-> sprite-row-3 w) (* (* 60.0 persp-x) (-> math-cam pfog0))) + (set-vector! (-> math-cam sprite-2d vector 2) 0.0 0.0 (- persp-x) 0.0) + (set-vector! + (-> math-cam sprite-2d vector 3) + 0.0 + 0.0 + (* 500000000.0 persp-x) + (* (* 60.0 persp-x) (-> math-cam pfog0)) ) ) (set! (-> math-cam sprite-2d-hvdf quad) (-> math-cam hvdf-off quad)) @@ -624,12 +621,7 @@ (let ((s2-0 (new 'stack 'vector4s-3))) (matrix*! s5-0 arg0 (-> *math-camera* camera-temp)) (matrix-3x3-inverse-transpose! gp-0 arg0) - (let ((v1-3 s3-0)) - (set! (-> v1-3 x) 0.4) - (set! (-> v1-3 y) 0.4) - (set! (-> v1-3 z) 0.4) - (set! (-> v1-3 w) 1.0) - ) + (set-vector! s3-0 0.4 0.4 0.4 1.0) (let ((v1-4 (-> s4-0 data))) (set! (-> v1-4 0) 1.0) (set! (-> v1-4 1) 1.0) diff --git a/test/decompiler/reference/engine/collide/collide-frag_REF.gc b/test/decompiler/reference/engine/collide/collide-frag_REF.gc index 12cdb3891b..c7a281be76 100644 --- a/test/decompiler/reference/engine/collide/collide-frag_REF.gc +++ b/test/decompiler/reference/engine/collide/collide-frag_REF.gc @@ -77,39 +77,21 @@ (s4-0 (-> obj mesh)) ) (set! (-> arg0 data s5-0 name) (symbol->string 'collide-fragment)) - (set! (-> arg0 data s5-0 count) (+ (-> arg0 data s5-0 count) 1)) + (+! (-> arg0 data s5-0 count) 1) (let ((v1-11 (+ (asize-of obj) (asize-of s4-0)))) - (set! (-> arg0 data s5-0 used) (+ (-> arg0 data s5-0 used) v1-11)) - (set! - (-> arg0 data s5-0 total) - (+ (-> arg0 data s5-0 total) (logand -16 (+ v1-11 15))) - ) + (+! (-> arg0 data s5-0 used) v1-11) + (+! (-> arg0 data s5-0 total) (logand -16 (+ v1-11 15))) ) (set! (-> arg0 data (+ s5-0 1) name) "collision-poly") - (set! - (-> arg0 data (+ s5-0 1) count) - (+ (-> arg0 data (+ s5-0 1) count) (the-as int (-> s4-0 poly-count))) - ) + (+! (-> arg0 data (+ s5-0 1) count) (the-as int (-> s4-0 poly-count))) (let ((v1-22 (+ (-> s4-0 strip-data-len) (-> s4-0 poly-count)))) - (set! - (-> arg0 data (+ s5-0 1) used) - (+ (-> arg0 data (+ s5-0 1) used) (the-as int v1-22)) - ) - (set! - (-> arg0 data (+ s5-0 1) total) - (+ (-> arg0 data (+ s5-0 1) total) (the-as int v1-22)) - ) + (+! (-> arg0 data (+ s5-0 1) used) (the-as int v1-22)) + (+! (-> arg0 data (+ s5-0 1) total) (the-as int v1-22)) ) (set! (-> arg0 data (+ s5-0 2) name) "collision-vertex") - (set! - (-> arg0 data (+ s5-0 2) count) - (+ (-> arg0 data (+ s5-0 2) count) (the-as int (-> s4-0 vertex-count))) - ) + (+! (-> arg0 data (+ s5-0 2) count) (the-as int (-> s4-0 vertex-count))) (let ((v1-31 (* (-> s4-0 vertex-data-qwc) 16))) - (set! - (-> arg0 data (+ s5-0 2) used) - (+ (-> arg0 data (+ s5-0 2) used) (the-as int v1-31)) - ) + (+! (-> arg0 data (+ s5-0 2) used) (the-as int v1-31)) (let ((v0-2 (+ (-> arg0 data (+ s5-0 2) total) (the-as int v1-31)))) (set! (-> arg0 data (+ s5-0 2) total) v0-2) (the-as collide-fragment v0-2) @@ -195,13 +177,10 @@ ) (set! (-> arg0 length) (max 1 (-> arg0 length))) (set! (-> arg0 data 0 name) (symbol->string 'drawable-group)) - (set! (-> arg0 data 0 count) (+ (-> arg0 data 0 count) 1)) + (+! (-> arg0 data 0 count) 1) (let ((v1-7 32)) - (set! (-> arg0 data 0 used) (+ (-> arg0 data 0 used) v1-7)) - (set! - (-> arg0 data 0 total) - (+ (-> arg0 data 0 total) (logand -16 (+ v1-7 15))) - ) + (+! (-> arg0 data 0 used) v1-7) + (+! (-> arg0 data 0 total) (logand -16 (+ v1-7 15))) ) (dotimes (s3-0 (-> obj length)) (mem-usage (-> obj data s3-0) arg0 arg1) diff --git a/test/decompiler/reference/engine/data/res_REF.gc b/test/decompiler/reference/engine/data/res_REF.gc index 013febf6a1..e94dd06198 100644 --- a/test/decompiler/reference/engine/data/res_REF.gc +++ b/test/decompiler/reference/engine/data/res_REF.gc @@ -898,7 +898,7 @@ ) (else (set! (-> obj tag (-> obj length)) s4-1) - (set! (-> obj length) (+ (-> obj length) 1)) + (+! (-> obj length) 1) (sort! obj) ) ) @@ -1040,19 +1040,10 @@ ) (set! (-> block length) (max (-> block length) (+ mem-use-id 1))) (set! (-> block data mem-use-id name) mem-use-name) - (set! - (-> block data mem-use-id count) - (+ (-> block data mem-use-id count) 1) - ) + (+! (-> block data mem-use-id count) 1) (let ((obj-size (asize-of obj))) - (set! - (-> block data mem-use-id used) - (+ (-> block data mem-use-id used) obj-size) - ) - (set! - (-> block data mem-use-id total) - (+ (-> block data mem-use-id total) (logand -16 (+ obj-size 15))) - ) + (+! (-> block data mem-use-id used) obj-size) + (+! (-> block data mem-use-id total) (logand -16 (+ obj-size 15))) ) (dotimes (tag-idx (-> obj length)) (when (zero? (-> obj tag tag-idx inlined?)) @@ -1077,19 +1068,10 @@ ((string) (set! (-> block length) (max (-> block length) (+ mem-use-id 1))) (set! (-> block data mem-use-id name) mem-use-name) - (set! - (-> block data mem-use-id count) - (+ (-> block data mem-use-id count) 1) - ) + (+! (-> block data mem-use-id count) 1) (let ((v1-47 (asize-of tag-data))) - (set! - (-> block data mem-use-id used) - (+ (-> block data mem-use-id used) v1-47) - ) - (set! - (-> block data mem-use-id total) - (+ (-> block data mem-use-id total) (logand -16 (+ v1-47 15))) - ) + (+! (-> block data mem-use-id used) v1-47) + (+! (-> block data mem-use-id total) (logand -16 (+ v1-47 15))) ) ) ((nav-mesh collide-mesh) @@ -1098,19 +1080,10 @@ ((array) (set! (-> block length) (max (-> block length) (+ mem-use-id 1))) (set! (-> block data mem-use-id name) mem-use-name) - (set! - (-> block data mem-use-id count) - (+ (-> block data mem-use-id count) 1) - ) + (+! (-> block data mem-use-id count) 1) (let ((v1-63 (asize-of (the-as (array object) tag-data)))) - (set! - (-> block data mem-use-id used) - (+ (-> block data mem-use-id used) v1-63) - ) - (set! - (-> block data mem-use-id total) - (+ (-> block data mem-use-id total) (logand -16 (+ v1-63 15))) - ) + (+! (-> block data mem-use-id used) v1-63) + (+! (-> block data mem-use-id total) (logand -16 (+ v1-63 15))) ) (set! sv-16 0) (while (< sv-16 (-> (the-as array tag-data) length)) @@ -1123,19 +1096,10 @@ (else (set! (-> block length) (max (-> block length) (+ mem-use-id 1))) (set! (-> block data mem-use-id name) mem-use-name) - (set! - (-> block data mem-use-id count) - (+ (-> block data mem-use-id count) 1) - ) + (+! (-> block data mem-use-id count) 1) (let ((v1-88 (asize-of tag-data))) - (set! - (-> block data mem-use-id used) - (+ (-> block data mem-use-id used) v1-88) - ) - (set! - (-> block data mem-use-id total) - (+ (-> block data mem-use-id total) (logand -16 (+ v1-88 15))) - ) + (+! (-> block data mem-use-id used) v1-88) + (+! (-> block data mem-use-id total) (logand -16 (+ v1-88 15))) ) ) ) diff --git a/test/decompiler/reference/engine/debug/debug-sphere_REF.gc b/test/decompiler/reference/engine/debug/debug-sphere_REF.gc index af8c199c63..5e8f91b99d 100644 --- a/test/decompiler/reference/engine/debug/debug-sphere_REF.gc +++ b/test/decompiler/reference/engine/debug/debug-sphere_REF.gc @@ -26,12 +26,7 @@ (f30-0 1.0) (s4-0 0) ) - (let ((v1-0 s5-0)) - (set! (-> v1-0 x) 0.0) - (set! (-> v1-0 y) 0.0) - (set! (-> v1-0 z) 0.0) - (set! (-> v1-0 w) 1.0) - ) + (set-vector! s5-0 0.0 0.0 0.0 1.0) (dotimes (s3-0 10) (let ((f28-0 (* f30-0 (sin (* 3276.8 (the float s3-0))))) (f26-0 (* f30-0 (sin (* 3276.8 (the float (+ s3-0 1)))))) diff --git a/test/decompiler/reference/engine/debug/menu_REF.gc b/test/decompiler/reference/engine/debug/menu_REF.gc index 0f21cc7dcf..bce6ed296c 100644 --- a/test/decompiler/reference/engine/debug/menu_REF.gc +++ b/test/decompiler/reference/engine/debug/menu_REF.gc @@ -1090,17 +1090,11 @@ ) (set! (-> v1-2 color) (cond ((> (-> arg0 hilite-timer) 0) - (set! - (-> arg0 hilite-timer) - (+ (-> arg0 hilite-timer) -1) - ) + (+! (-> arg0 hilite-timer) -1) 10 ) ((< (-> arg0 hilite-timer) 0) - (set! - (-> arg0 hilite-timer) - (+ (-> arg0 hilite-timer) 1) - ) + (+! (-> arg0 hilite-timer) 1) 14 ) ((nonzero? arg3) @@ -1200,7 +1194,7 @@ debug-menu-item-render ((arg0 debug-menu-item) (arg1 int) (arg2 int) (arg3 int) (arg4 symbol)) (when (> (-> arg0 refresh-delay) 0) - (set! (-> arg0 refresh-ctr) (+ (-> arg0 refresh-ctr) -1)) + (+! (-> arg0 refresh-ctr) -1) (when (<= (-> arg0 refresh-ctr) 0) (set! (-> arg0 refresh-ctr) (-> arg0 refresh-delay)) (debug-menu-item-send-msg arg0 3) @@ -1506,7 +1500,7 @@ (defun debug-menu-context-close-submenu ((arg0 debug-menu-context)) (debug-menu-context-send-msg arg0 2 3) (if (< 1 (-> arg0 sel-length)) - (set! (-> arg0 sel-length) (+ (-> arg0 sel-length) -1)) + (+! (-> arg0 sel-length) -1) ) arg0 ) @@ -1672,7 +1666,7 @@ (cond ((<= (-> arg0 inc-delay-ctr) 0) (if (> (-> arg0 inc-delay) 0) - (set! (-> arg0 inc-delay) (+ (-> arg0 inc-delay) -1)) + (+! (-> arg0 inc-delay) -1) ) (when (zero? (-> arg0 inc-delay)) (cond @@ -1695,7 +1689,7 @@ ) ) (else - (set! (-> arg0 step-delay-ctr) (+ (-> arg0 step-delay-ctr) -1)) + (+! (-> arg0 step-delay-ctr) -1) ) ) ) @@ -1770,7 +1764,7 @@ ) ) (else - (set! (-> arg0 inc-delay-ctr) (+ (-> arg0 inc-delay-ctr) -1)) + (+! (-> arg0 inc-delay-ctr) -1) ) ) ) diff --git a/test/decompiler/reference/engine/debug/stats-h_REF.gc b/test/decompiler/reference/engine/debug/stats-h_REF.gc index acc3b408e0..2914affca2 100644 --- a/test/decompiler/reference/engine/debug/stats-h_REF.gc +++ b/test/decompiler/reference/engine/debug/stats-h_REF.gc @@ -126,9 +126,9 @@ perf-stat ((obj perf-stat) (arg0 uint) (arg1 uint) (arg2 uint)) (when (nonzero? (-> obj ctrl)) - (set! (-> obj to-vu0-waits) (+ (-> obj to-vu0-waits) arg0)) - (set! (-> obj to-spr-waits) (+ (-> obj to-spr-waits) arg1)) - (set! (-> obj from-spr-waits) (+ (-> obj from-spr-waits) arg2)) + (+! (-> obj to-vu0-waits) arg0) + (+! (-> obj to-spr-waits) arg1) + (+! (-> obj from-spr-waits) arg2) ) 0 (none) diff --git a/test/decompiler/reference/engine/engine/connect_REF.gc b/test/decompiler/reference/engine/engine/connect_REF.gc index fdb021f4ba..3693568ff6 100644 --- a/test/decompiler/reference/engine/engine/connect_REF.gc +++ b/test/decompiler/reference/engine/engine/connect_REF.gc @@ -425,7 +425,7 @@ ) (set! (-> con prev1) (-> proc connection-list)) (set! (-> proc connection-list next1) con) - (set! (-> obj length) (+ (-> obj length) 1)) + (+! (-> obj length) 1) con ) ) @@ -444,7 +444,7 @@ (set! (-> obj next0 prev0) obj) (set! (-> obj prev0) (-> v1-1 dead-list)) (set! (-> v1-1 dead-list next0) obj) - (set! (-> v1-1 length) (+ (-> v1-1 length) -1)) + (+! (-> v1-1 length) -1) ) obj ) diff --git a/test/decompiler/reference/engine/game/task/hint-control_REF.gc b/test/decompiler/reference/engine/game/task/hint-control_REF.gc index 20ed15f73f..4b50de8235 100644 --- a/test/decompiler/reference/engine/game/task/hint-control_REF.gc +++ b/test/decompiler/reference/engine/game/task/hint-control_REF.gc @@ -406,7 +406,7 @@ (= (-> gp-1 num-attempts-before-playing) 1) (< (the-as int a0-24) 30) ) - (set! (-> gp-1 start-time) (+ (-> gp-1 start-time) a0-24)) + (+! (-> gp-1 start-time) a0-24) ) (cond ((and diff --git a/test/decompiler/reference/engine/geometry/geometry_REF.gc b/test/decompiler/reference/engine/geometry/geometry_REF.gc index c7712f0bac..e961719902 100644 --- a/test/decompiler/reference/engine/geometry/geometry_REF.gc +++ b/test/decompiler/reference/engine/geometry/geometry_REF.gc @@ -1001,18 +1001,8 @@ (s5-0 (new-stack-vector0)) (gp-0 (new-stack-vector0)) ) - (let ((v1-3 s4-0)) - (set! (-> v1-3 x) 0.0) - (set! (-> v1-3 y) 0.0) - (set! (-> v1-3 z) 0.0) - (set! (-> v1-3 w) 1.0) - ) - (let ((v1-4 a1-2)) - (set! (-> v1-4 x) 100.0) - (set! (-> v1-4 y) 0.0) - (set! (-> v1-4 z) 0.0) - (set! (-> v1-4 w) 10000.0) - ) + (set-vector! s4-0 0.0 0.0 0.0 1.0) + (set-vector! a1-2 100.0 0.0 0.0 10000.0) (let ((a2-1 (circle-circle-xz-intersect s4-0 a1-2 s5-0 gp-0))) (format #t "res = ~d~%" a2-1) ) diff --git a/test/decompiler/reference/engine/geometry/vol-h_REF.gc b/test/decompiler/reference/engine/geometry/vol-h_REF.gc index 99b83cdc3b..50bdc5584c 100644 --- a/test/decompiler/reference/engine/geometry/vol-h_REF.gc +++ b/test/decompiler/reference/engine/geometry/vol-h_REF.gc @@ -128,10 +128,7 @@ (set! (-> a0-8 num-planes) (the-as int (-> s2-0 elt-count))) (set! (-> a0-8 plane) (the-as uint v1-12)) ) - (set! - (-> (the-as vol-control gp-0) pos-vol-count) - (+ (-> (the-as vol-control gp-0) pos-vol-count) 1) - ) + (+! (-> (the-as vol-control gp-0) pos-vol-count) 1) (+! s3-0 1) (set! s2-0 (-> s5-1 tag s3-0)) ) @@ -168,10 +165,7 @@ (set! (-> a0-19 num-planes) (the-as int (-> s2-1 elt-count))) (set! (-> a0-19 plane) (the-as uint v1-31)) ) - (set! - (-> (the-as vol-control gp-0) neg-vol-count) - (+ (-> (the-as vol-control gp-0) neg-vol-count) 1) - ) + (+! (-> (the-as vol-control gp-0) neg-vol-count) 1) (+! s3-1 1) (set! s2-1 (-> s5-2 tag s3-1)) ) diff --git a/test/decompiler/reference/engine/gfx/hw/display_REF.gc b/test/decompiler/reference/engine/gfx/hw/display_REF.gc index 0c095fd9ac..36bee4dc29 100644 --- a/test/decompiler/reference/engine/gfx/hw/display_REF.gc +++ b/test/decompiler/reference/engine/gfx/hw/display_REF.gc @@ -281,7 +281,7 @@ (defmethod add-frame profile-bar ((obj profile-bar) (name symbol) (color rgba)) (when *debug-segment* (let ((new-frame (-> obj data (-> obj profile-frame-count)))) - (set! (-> obj profile-frame-count) (+ (-> obj profile-frame-count) 1)) + (+! (-> obj profile-frame-count) 1) (set! (-> new-frame name) name) (set! (-> new-frame time-stamp) @@ -306,7 +306,7 @@ profile-bar ((obj profile-bar) (name symbol) (color rgba)) (let ((new-frame (-> obj data (-> obj profile-frame-count)))) - (set! (-> obj profile-frame-count) (+ (-> obj profile-frame-count) 1)) + (+! (-> obj profile-frame-count) 1) (set! (-> new-frame name) name) (set! (-> new-frame time-stamp) (the-as uint *ticks-per-frame*)) (set! (-> new-frame color) color) diff --git a/test/decompiler/reference/engine/gfx/hw/gs_REF.gc b/test/decompiler/reference/engine/gfx/hw/gs_REF.gc index 484fe36639..d9e6fb4988 100644 --- a/test/decompiler/reference/engine/gfx/hw/gs_REF.gc +++ b/test/decompiler/reference/engine/gfx/hw/gs_REF.gc @@ -944,7 +944,7 @@ ) ) (set! (-> (&-> packet args (-> packet reg-count)) 0) (the-as uint reg-val)) - (set! (-> packet reg-count) (+ (-> packet reg-count) 1)) + (+! (-> packet reg-count) 1) (none) ) diff --git a/test/decompiler/reference/engine/gfx/lights_REF.gc b/test/decompiler/reference/engine/gfx/lights_REF.gc index 33018a8ae9..f4df4966f6 100644 --- a/test/decompiler/reference/engine/gfx/lights_REF.gc +++ b/test/decompiler/reference/engine/gfx/lights_REF.gc @@ -49,47 +49,12 @@ ;; definition for function vu-lights-default! (defun vu-lights-default! ((arg0 vu-lights)) - (let ((v1-0 (-> arg0 ambient))) - (set! (-> v1-0 x) 0.3) - (set! (-> v1-0 y) 0.3) - (set! (-> v1-0 z) 0.3) - (set! (-> v1-0 w) 1.0) - ) - (let ((v1-1 (-> arg0 color))) - (set! (-> v1-1 0 x) 1.0) - (set! (-> v1-1 0 y) 1.0) - (set! (-> v1-1 0 z) 1.0) - (set! (-> v1-1 0 w) 1.0) - ) - (let ((v1-2 (-> arg0 color 1))) - (set! (-> v1-2 x) 0.2) - (set! (-> v1-2 y) 0.2) - (set! (-> v1-2 z) 0.2) - (set! (-> v1-2 w) 1.0) - ) - (let ((v1-3 (-> arg0 color 2))) - (set! (-> v1-3 x) 0.0) - (set! (-> v1-3 y) 0.0) - (set! (-> v1-3 z) 0.0) - (set! (-> v1-3 w) 1.0) - ) - (let ((v1-4 (-> arg0 direction))) - (set! (-> v1-4 0 x) 1.0) - (set! (-> v1-4 0 y) 0.0) - (set! (-> v1-4 0 z) 0.0) - (set! (-> v1-4 0 w) 1.0) - ) - (let ((v1-5 (-> arg0 direction 1))) - (set! (-> v1-5 x) 0.0) - (set! (-> v1-5 y) 1.0) - (set! (-> v1-5 z) 0.0) - (set! (-> v1-5 w) 1.0) - ) - (let ((v1-6 (-> arg0 direction 2))) - (set! (-> v1-6 x) 0.0) - (set! (-> v1-6 y) 0.0) - (set! (-> v1-6 z) 1.0) - (set! (-> v1-6 w) 1.0) - ) + (set-vector! (-> arg0 ambient) 0.3 0.3 0.3 1.0) + (set-vector! (-> arg0 color 0) 1.0 1.0 1.0 1.0) + (set-vector! (-> arg0 color 1) 0.2 0.2 0.2 1.0) + (set-vector! (-> arg0 color 2) 0.0 0.0 0.0 1.0) + (set-vector! (-> arg0 direction 0) 1.0 0.0 0.0 1.0) + (set-vector! (-> arg0 direction 1) 0.0 1.0 0.0 1.0) + (set-vector! (-> arg0 direction 2) 0.0 0.0 1.0 1.0) arg0 ) diff --git a/test/decompiler/reference/engine/gfx/mood-h_REF.gc b/test/decompiler/reference/engine/gfx/mood-h_REF.gc index 79605a47be..024d16ed30 100644 --- a/test/decompiler/reference/engine/gfx/mood-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/mood-h_REF.gc @@ -205,54 +205,14 @@ (object-new allocation type-to-make (the-as int (-> type-to-make size))) ) ) - (let ((v1-2 (-> v0-0 times))) - (set! (-> v1-2 0 x) 1.0) - (set! (-> v1-2 0 y) 1.0) - (set! (-> v1-2 0 z) 1.0) - (set! (-> v1-2 0 w) 0.0) - ) - (let ((v1-3 (-> v0-0 times 1))) - (set! (-> v1-3 x) 1.0) - (set! (-> v1-3 y) 1.0) - (set! (-> v1-3 z) 1.0) - (set! (-> v1-3 w) 0.0) - ) - (let ((v1-4 (-> v0-0 times 2))) - (set! (-> v1-4 x) 1.0) - (set! (-> v1-4 y) 1.0) - (set! (-> v1-4 z) 1.0) - (set! (-> v1-4 w) 0.0) - ) - (let ((v1-5 (-> v0-0 times 3))) - (set! (-> v1-5 x) 1.0) - (set! (-> v1-5 y) 1.0) - (set! (-> v1-5 z) 1.0) - (set! (-> v1-5 w) 0.0) - ) - (let ((v1-6 (-> v0-0 times 4))) - (set! (-> v1-6 x) 1.0) - (set! (-> v1-6 y) 1.0) - (set! (-> v1-6 z) 1.0) - (set! (-> v1-6 w) 0.0) - ) - (let ((v1-7 (-> v0-0 times 5))) - (set! (-> v1-7 x) 1.0) - (set! (-> v1-7 y) 1.0) - (set! (-> v1-7 z) 1.0) - (set! (-> v1-7 w) 0.0) - ) - (let ((v1-8 (-> v0-0 times 6))) - (set! (-> v1-8 x) 1.0) - (set! (-> v1-8 y) 1.0) - (set! (-> v1-8 z) 1.0) - (set! (-> v1-8 w) 0.0) - ) - (let ((v1-9 (-> v0-0 times 7))) - (set! (-> v1-9 x) 1.0) - (set! (-> v1-9 y) 1.0) - (set! (-> v1-9 z) 1.0) - (set! (-> v1-9 w) 0.0) - ) + (set-vector! (-> v0-0 times 0) 1.0 1.0 1.0 0.0) + (set-vector! (-> v0-0 times 1) 1.0 1.0 1.0 0.0) + (set-vector! (-> v0-0 times 2) 1.0 1.0 1.0 0.0) + (set-vector! (-> v0-0 times 3) 1.0 1.0 1.0 0.0) + (set-vector! (-> v0-0 times 4) 1.0 1.0 1.0 0.0) + (set-vector! (-> v0-0 times 5) 1.0 1.0 1.0 0.0) + (set-vector! (-> v0-0 times 6) 1.0 1.0 1.0 0.0) + (set-vector! (-> v0-0 times 7) 1.0 1.0 1.0 0.0) v0-0 ) ) diff --git a/test/decompiler/reference/engine/gfx/ripple_REF.gc b/test/decompiler/reference/engine/gfx/ripple_REF.gc index 131f285846..99e4b2e3d2 100644 --- a/test/decompiler/reference/engine/gfx/ripple_REF.gc +++ b/test/decompiler/reference/engine/gfx/ripple_REF.gc @@ -57,7 +57,7 @@ (when (zero? a3-0) (set! (-> a2-1 v1-1 effect) arg1) (set! (-> a2-1 v1-1 waveform) arg0) - (set! (-> *ripple-globals* count) (+ (-> *ripple-globals* count) 1)) + (+! (-> *ripple-globals* count) 1) ) ) ) @@ -76,7 +76,7 @@ (when (!= f0-1 0.0) (dotimes (v1-4 (-> arg0 count)) (let ((a1-4 (-> arg0 wave v1-4))) - (set! (-> a1-4 offs) (+ (-> a1-4 offs) (* f0-1 (-> a1-4 delta)))) + (+! (-> a1-4 offs) (* f0-1 (-> a1-4 delta))) (set! (-> a1-4 offs) (the float (logand (the int (-> a1-4 offs)) #xffff))) ) ) diff --git a/test/decompiler/reference/engine/gfx/shrub/shrub-work_REF.gc b/test/decompiler/reference/engine/gfx/shrub/shrub-work_REF.gc index 18926272f7..73dc04868c 100644 --- a/test/decompiler/reference/engine/gfx/shrub/shrub-work_REF.gc +++ b/test/decompiler/reference/engine/gfx/shrub/shrub-work_REF.gc @@ -660,7 +660,7 @@ (set! (-> v1-1 vector 2 quad) t2-4) (set! (-> v1-1 vector 3 quad) t3-1) ) - (set! (-> arg0 base) (&+ (-> arg0 base) 64)) + (&+! (-> arg0 base) 64) (let* ((v1-4 arg0) (t0-4 (the-as object (-> v1-4 base))) ) @@ -787,7 +787,3 @@ ) arg0 ) - - - - diff --git a/test/decompiler/reference/engine/gfx/sparticle/sparticle-h_REF.gc b/test/decompiler/reference/engine/gfx/sparticle/sparticle-h_REF.gc index 54e30dfcfa..26d6d05f11 100644 --- a/test/decompiler/reference/engine/gfx/sparticle/sparticle-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/sparticle/sparticle-h_REF.gc @@ -5,11 +5,12 @@ (define *sp-frame-time* (new 'global 'vector)) ;; failed to figure out what this is: -(let ((v1-1 *sp-frame-time*)) - (set! (-> v1-1 x) 0.00000000000000000000000000000000000001175495) - (set! (-> v1-1 y) 5.0) - (set! (-> v1-1 z) 1.0) - (set! (-> v1-1 w) 1.0) +(set-vector! + *sp-frame-time* + 0.00000000000000000000000000000000000001175495 + 5.0 + 1.0 + 1.0 ) ;; definition for symbol *sp-60-hz*, type symbol diff --git a/test/decompiler/reference/engine/gfx/texture_REF.gc b/test/decompiler/reference/engine/gfx/texture_REF.gc index d452b79a17..9be03dab00 100644 --- a/test/decompiler/reference/engine/gfx/texture_REF.gc +++ b/test/decompiler/reference/engine/gfx/texture_REF.gc @@ -33,18 +33,15 @@ ((obj texture-page) (arg0 memory-usage-block) (arg1 int)) (set! (-> arg0 length) (max 80 (-> arg0 length))) (set! (-> arg0 data 79 name) "texture") - (set! (-> arg0 data 79 count) (+ (-> arg0 data 79 count) (-> obj length))) + (+! (-> arg0 data 79 count) (-> obj length)) (let ((v1-7 (- (asize-of obj) (the-as int (* (-> obj size) 4))))) (dotimes (a0-6 (-> obj length)) (if (-> obj data a0-6) (+! v1-7 64) ) ) - (set! (-> arg0 data 79 used) (+ (-> arg0 data 79 used) v1-7)) - (set! - (-> arg0 data 79 total) - (+ (-> arg0 data 79 total) (logand -16 (+ v1-7 15))) - ) + (+! (-> arg0 data 79 used) v1-7) + (+! (-> arg0 data 79 total) (logand -16 (+ v1-7 15))) ) obj ) @@ -693,7 +690,7 @@ texture-pool ((obj texture-pool) (word-count int)) (let ((v0-0 (-> obj cur))) - (set! (-> obj cur) (+ (-> obj cur) word-count)) + (+! (-> obj cur) word-count) v0-0 ) ) @@ -1701,17 +1698,14 @@ (when tfrag-page (set! (-> level upload-size 0) 0) (if (< distance 81920.0) - (set! + (+! (-> level upload-size 0) - (+ - (-> level upload-size 0) - (upload-vram-pages - obj - (-> obj segment-near) - tfrag-page - 2 - (the-as bucket-id tfrag-bucket) - ) + (upload-vram-pages + obj + (-> obj segment-near) + tfrag-page + 2 + (the-as bucket-id tfrag-bucket) ) ) ) @@ -1719,32 +1713,26 @@ ((= distance 4095996000.0) ) ((< 102400.0 distance) - (set! + (+! (-> level upload-size 0) - (+ - (-> level upload-size 0) - (upload-vram-pages - obj - (-> obj segment-common) - tfrag-page - 0 - (the-as bucket-id tfrag-bucket) - ) + (upload-vram-pages + obj + (-> obj segment-common) + tfrag-page + 0 + (the-as bucket-id tfrag-bucket) ) ) ) (else - (set! + (+! (-> level upload-size 0) - (+ - (-> level upload-size 0) - (upload-vram-pages - obj - (-> obj segment-common) - tfrag-page - -2 - (the-as bucket-id tfrag-bucket) - ) + (upload-vram-pages + obj + (-> obj segment-common) + tfrag-page + -2 + (the-as bucket-id tfrag-bucket) ) ) ) @@ -2911,10 +2899,7 @@ (-> v1-2 loaded-texture-page (-> v1-2 loaded-texture-page-count)) obj ) - (set! - (-> v1-2 loaded-texture-page-count) - (+ (-> v1-2 loaded-texture-page-count) 1) - ) + (+! (-> v1-2 loaded-texture-page-count) 1) ) ) (set! (-> obj segment 1 dest) (-> obj segment 0 size)) diff --git a/test/decompiler/reference/engine/gfx/tie/prototype_REF.gc b/test/decompiler/reference/engine/gfx/tie/prototype_REF.gc index ce162db556..8b56f3443c 100644 --- a/test/decompiler/reference/engine/gfx/tie/prototype_REF.gc +++ b/test/decompiler/reference/engine/gfx/tie/prototype_REF.gc @@ -57,13 +57,10 @@ ((obj prototype-array-tie) (arg0 memory-usage-block) (arg1 int)) (set! (-> arg0 length) (max 1 (-> arg0 length))) (set! (-> arg0 data 0 name) (symbol->string 'drawable-group)) - (set! (-> arg0 data 0 count) (+ (-> arg0 data 0 count) 1)) + (+! (-> arg0 data 0 count) 1) (let ((v1-8 (asize-of obj))) - (set! (-> arg0 data 0 used) (+ (-> arg0 data 0 used) v1-8)) - (set! - (-> arg0 data 0 total) - (+ (-> arg0 data 0 total) (logand -16 (+ v1-8 15))) - ) + (+! (-> arg0 data 0 used) v1-8) + (+! (-> arg0 data 0 total) (logand -16 (+ v1-8 15))) ) (dotimes (s3-0 (-> obj length)) (mem-usage (-> obj array-data s3-0) arg0 arg1) @@ -85,25 +82,19 @@ ) (set! (-> arg0 length) (max 81 (-> arg0 length))) (set! (-> arg0 data 80 name) "string") - (set! (-> arg0 data 80 count) (+ (-> arg0 data 80 count) 1)) + (+! (-> arg0 data 80 count) 1) (let ((v1-13 ((method-of-type string asize-of) (the-as string (-> obj name))))) - (set! (-> arg0 data 80 used) (+ (-> arg0 data 80 used) v1-13)) - (set! - (-> arg0 data 80 total) - (+ (-> arg0 data 80 total) (logand -16 (+ v1-13 15))) - ) + (+! (-> arg0 data 80 used) v1-13) + (+! (-> arg0 data 80 total) (logand -16 (+ v1-13 15))) ) (when (nonzero? (-> obj tie-colors)) (set! (-> arg0 length) (max 17 (-> arg0 length))) (set! (-> arg0 data 16 name) "tie-pal") - (set! (-> arg0 data 16 count) (+ (-> arg0 data 16 count) 1)) + (+! (-> arg0 data 16 count) 1) (let ((v1-25 (asize-of (-> obj tie-colors)))) - (set! (-> arg0 data 16 used) (+ (-> arg0 data 16 used) v1-25)) - (set! - (-> arg0 data 16 total) - (+ (-> arg0 data 16 total) (logand -16 (+ v1-25 15))) - ) + (+! (-> arg0 data 16 used) v1-25) + (+! (-> arg0 data 16 total) (logand -16 (+ v1-25 15))) ) ) (if (nonzero? (-> obj collide-frag)) @@ -119,13 +110,10 @@ ((obj prototype-inline-array-shrub) (arg0 memory-usage-block) (arg1 int)) (set! (-> arg0 length) (max 1 (-> arg0 length))) (set! (-> arg0 data 0 name) (symbol->string 'drawable-group)) - (set! (-> arg0 data 0 count) (+ (-> arg0 data 0 count) 1)) + (+! (-> arg0 data 0 count) 1) (let ((v1-8 (asize-of obj))) - (set! (-> arg0 data 0 used) (+ (-> arg0 data 0 used) v1-8)) - (set! - (-> arg0 data 0 total) - (+ (-> arg0 data 0 total) (logand -16 (+ v1-8 15))) - ) + (+! (-> arg0 data 0 used) v1-8) + (+! (-> arg0 data 0 total) (logand -16 (+ v1-8 15))) ) (dotimes (s3-0 (-> obj length)) (mem-usage (-> obj data s3-0) arg0 arg1) @@ -140,13 +128,10 @@ ((obj prototype-bucket-shrub) (arg0 memory-usage-block) (arg1 int)) (set! (-> arg0 length) (max 25 (-> arg0 length))) (set! (-> arg0 data 24 name) "prototype-bucket-shrub") - (set! (-> arg0 data 24 count) (+ (-> arg0 data 24 count) 1)) + (+! (-> arg0 data 24 count) 1) (let ((v1-5 112)) - (set! (-> arg0 data 24 used) (+ (-> arg0 data 24 used) v1-5)) - (set! - (-> arg0 data 24 total) - (+ (-> arg0 data 24 total) (logand -16 (+ v1-5 15))) - ) + (+! (-> arg0 data 24 used) v1-5) + (+! (-> arg0 data 24 total) (logand -16 (+ v1-5 15))) ) (dotimes (s3-0 4) (let ((a0-5 (-> obj geometry s3-0))) @@ -157,14 +142,11 @@ ) (set! (-> arg0 length) (max 81 (-> arg0 length))) (set! (-> arg0 data 80 name) "string") - (set! (-> arg0 data 80 count) (+ (-> arg0 data 80 count) 1)) + (+! (-> arg0 data 80 count) 1) (let ((v1-22 ((method-of-type string asize-of) (the-as string (-> obj name))))) - (set! (-> arg0 data 80 used) (+ (-> arg0 data 80 used) v1-22)) - (set! - (-> arg0 data 80 total) - (+ (-> arg0 data 80 total) (logand -16 (+ v1-22 15))) - ) + (+! (-> arg0 data 80 used) v1-22) + (+! (-> arg0 data 80 total) (logand -16 (+ v1-22 15))) ) obj ) diff --git a/test/decompiler/reference/engine/gfx/wind_REF.gc b/test/decompiler/reference/engine/gfx/wind_REF.gc index aa18c88467..ee0a149cf2 100644 --- a/test/decompiler/reference/engine/gfx/wind_REF.gc +++ b/test/decompiler/reference/engine/gfx/wind_REF.gc @@ -14,7 +14,7 @@ (set! (-> arg0 wind-normal x) (cos f30-1)) (set! (-> arg0 wind-normal z) (sin f30-1)) ) - (set! (-> arg0 wind-time) (+ (-> arg0 wind-time) 1)) + (+! (-> arg0 wind-time) 1) (let* ((s4-0 (logand (-> arg0 wind-time) 63)) (f0-4 (rand-vu-float-range 0.0 100.0)) (v1-5 (/ (-> arg0 wind-time) (the-as uint 120))) diff --git a/test/decompiler/reference/engine/math/matrix_REF.gc b/test/decompiler/reference/engine/math/matrix_REF.gc index 041359c519..c83c5de3e4 100644 --- a/test/decompiler/reference/engine/math/matrix_REF.gc +++ b/test/decompiler/reference/engine/math/matrix_REF.gc @@ -222,12 +222,7 @@ ;; Used lq/sq (defun vector3s-matrix*! ((dst vector3s) (vec vector3s) (mat matrix)) (let ((temp-vec3 (new-stack-vector0))) - (let ((v1-0 temp-vec3)) - (set! (-> v1-0 x) (-> vec x)) - (set! (-> v1-0 y) (-> vec y)) - (set! (-> v1-0 z) (-> vec z)) - (set! (-> v1-0 w) 1.0) - ) + (set-vector! temp-vec3 (-> vec x) (-> vec y) (-> vec z) 1.0) (vector-matrix*! temp-vec3 temp-vec3 mat) (set! (-> dst x) (-> temp-vec3 x)) (set! (-> dst y) (-> temp-vec3 y)) @@ -240,12 +235,7 @@ ;; Used lq/sq (defun vector3s-rotate*! ((dst vector3s) (vec vector3s) (mat matrix)) (let ((temp-vec3 (new-stack-vector0))) - (let ((v1-0 temp-vec3)) - (set! (-> v1-0 x) (-> vec x)) - (set! (-> v1-0 y) (-> vec y)) - (set! (-> v1-0 z) (-> vec z)) - (set! (-> v1-0 w) 1.0) - ) + (set-vector! temp-vec3 (-> vec x) (-> vec y) (-> vec z) 1.0) (vector-rotate*! temp-vec3 temp-vec3 mat) (set! (-> dst x) (-> temp-vec3 x)) (set! (-> dst y) (-> temp-vec3 y)) @@ -733,11 +723,12 @@ (sin-vec (new 'stack-no-clear 'vector)) (cos-vec (new 'stack-no-clear 'vector)) ) - (let ((v1-0 sincos-input)) - (set! (-> v1-0 x) (-> rots-deg x)) - (set! (-> v1-0 y) (- (-> rots-deg y) (-> rots-deg z))) - (set! (-> v1-0 z) (-> rots-deg z)) - (set! (-> v1-0 w) 1.0) + (set-vector! + sincos-input + (-> rots-deg x) + (- (-> rots-deg y) (-> rots-deg z)) + (-> rots-deg z) + 1.0 ) (vector-sincos! sin-vec cos-vec sincos-input) (let ((cos-y (-> cos-vec y)) diff --git a/test/decompiler/reference/engine/math/quaternion_REF.gc b/test/decompiler/reference/engine/math/quaternion_REF.gc index 217a8fe76a..4f5f004d95 100644 --- a/test/decompiler/reference/engine/math/quaternion_REF.gc +++ b/test/decompiler/reference/engine/math/quaternion_REF.gc @@ -1090,12 +1090,7 @@ (s5-0 (new 'stack-no-clear 'vector)) ) (quaternion->matrix gp-0 arg0) - (let ((v1-1 s5-0)) - (set! (-> v1-1 x) 0.0) - (set! (-> v1-1 y) 0.0) - (set! (-> v1-1 z) 1.0) - (set! (-> v1-1 w) 1.0) - ) + (set-vector! s5-0 0.0 0.0 1.0 1.0) (vector-matrix*! s5-0 s5-0 gp-0) (vector-y-angle s5-0) ) diff --git a/test/decompiler/reference/engine/math/vector_REF.gc b/test/decompiler/reference/engine/math/vector_REF.gc index 67b29f663b..2c2fb4729c 100644 --- a/test/decompiler/reference/engine/math/vector_REF.gc +++ b/test/decompiler/reference/engine/math/vector_REF.gc @@ -319,13 +319,13 @@ ) (cond ((>= max-step step-len) - (set! (-> vec x) (+ (-> vec x) x-step)) - (set! (-> vec z) (+ (-> vec z) z-step)) + (+! (-> vec x) x-step) + (+! (-> vec z) z-step) ) (else (let ((f2-6 (/ max-step step-len))) - (set! (-> vec x) (+ (-> vec x) (* f2-6 x-step))) - (set! (-> vec z) (+ (-> vec z) (* f2-6 z-step))) + (+! (-> vec x) (* f2-6 x-step)) + (+! (-> vec z) (* f2-6 z-step)) ) ) ) @@ -349,13 +349,13 @@ ) (cond ((>= max-step step-len) - (set! (-> vec y) (+ (-> vec y) y-step)) - (set! (-> vec z) (+ (-> vec z) z-step)) + (+! (-> vec y) y-step) + (+! (-> vec z) z-step) ) (else (let ((step-scale (/ max-step step-len))) - (set! (-> vec y) (+ (-> vec y) (* step-scale y-step))) - (set! (-> vec z) (+ (-> vec z) (* step-scale z-step))) + (+! (-> vec y) (* step-scale y-step)) + (+! (-> vec z) (* step-scale z-step)) ) ) ) @@ -385,15 +385,15 @@ ) (cond ((>= max-step step-len) - (set! (-> vec x) (+ (-> vec x) x-step)) - (set! (-> vec y) (+ (-> vec y) y-step)) - (set! (-> vec z) (+ (-> vec z) z-step)) + (+! (-> vec x) x-step) + (+! (-> vec y) y-step) + (+! (-> vec z) z-step) ) (else (let ((step-scale (/ max-step step-len))) - (set! (-> vec x) (+ (-> vec x) (* step-scale x-step))) - (set! (-> vec y) (+ (-> vec y) (* step-scale y-step))) - (set! (-> vec z) (+ (-> vec z) (* step-scale z-step))) + (+! (-> vec x) (* step-scale x-step)) + (+! (-> vec y) (* step-scale y-step)) + (+! (-> vec z) (* step-scale z-step)) ) ) ) @@ -1185,11 +1185,12 @@ ;; definition for function rand-vu-sphere-point! (defun rand-vu-sphere-point! ((arg0 vector) (arg1 float)) - (let ((s4-0 arg0)) - (set! (-> s4-0 x) (rand-vu-float-range -1.0 1.0)) - (set! (-> s4-0 y) (rand-vu-float-range -1.0 1.0)) - (set! (-> s4-0 z) (rand-vu-float-range -1.0 1.0)) - (set! (-> s4-0 w) 1.0) + (set-vector! + arg0 + (rand-vu-float-range -1.0 1.0) + (rand-vu-float-range -1.0 1.0) + (rand-vu-float-range -1.0 1.0) + 1.0 ) (vector-normalize! arg0 (rand-vu-float-range 0.0 arg1)) ) diff --git a/test/decompiler/reference/engine/physics/trajectory_REF.gc b/test/decompiler/reference/engine/physics/trajectory_REF.gc index e415e84c51..2f7776369b 100644 --- a/test/decompiler/reference/engine/physics/trajectory_REF.gc +++ b/test/decompiler/reference/engine/physics/trajectory_REF.gc @@ -5,10 +5,10 @@ ;; Used lq/sq (defmethod TODO-RENAME-9 trajectory ((obj trajectory) (arg0 float) (arg1 vector)) (set! (-> arg1 quad) (-> obj initial-position quad)) - (set! (-> arg1 x) (+ (-> arg1 x) (* arg0 (-> obj initial-velocity x)))) - (set! (-> arg1 y) (+ (-> arg1 y) (* arg0 (-> obj initial-velocity y)))) - (set! (-> arg1 z) (+ (-> arg1 z) (* arg0 (-> obj initial-velocity z)))) - (set! (-> arg1 y) (+ (-> arg1 y) (* (* (* 0.5 arg0) arg0) (-> obj gravity)))) + (+! (-> arg1 x) (* arg0 (-> obj initial-velocity x))) + (+! (-> arg1 y) (* arg0 (-> obj initial-velocity y))) + (+! (-> arg1 z) (* arg0 (-> obj initial-velocity z))) + (+! (-> arg1 y) (* (* (* 0.5 arg0) arg0) (-> obj gravity))) arg1 ) @@ -19,7 +19,7 @@ trajectory ((obj trajectory) (arg0 float) (arg1 vector)) (set! (-> arg1 quad) (-> obj initial-velocity quad)) - (set! (-> arg1 y) (+ (-> arg1 y) (* arg0 (-> obj gravity)))) + (+! (-> arg1 y) (* arg0 (-> obj gravity))) arg1 ) diff --git a/test/decompiler/reference/engine/ps2/rpc-h_REF.gc b/test/decompiler/reference/engine/ps2/rpc-h_REF.gc index 37db005a76..08d17e558d 100644 --- a/test/decompiler/reference/engine/ps2/rpc-h_REF.gc +++ b/test/decompiler/reference/engine/ps2/rpc-h_REF.gc @@ -223,7 +223,7 @@ (set! v1-0 (-> obj current)) ) (let ((v0-2 (&+ (-> v1-0 base) (* (-> v1-0 elt-used) (-> v1-0 elt-size))))) - (set! (-> v1-0 elt-used) (+ (-> v1-0 elt-used) 1)) + (+! (-> v1-0 elt-used) 1) v0-2 ) ) @@ -232,7 +232,7 @@ ;; definition for method 11 of type rpc-buffer-pair (defmethod decrement-elt-used rpc-buffer-pair ((obj rpc-buffer-pair)) (if (> (-> obj current elt-used) 0) - (set! (-> obj current elt-used) (+ (-> obj current elt-used) -1)) + (+! (-> obj current elt-used) -1) ) 0 ) diff --git a/test/decompiler/reference/engine/ps2/timer_REF.gc b/test/decompiler/reference/engine/ps2/timer_REF.gc index 9c154536a7..986da8e977 100644 --- a/test/decompiler/reference/engine/ps2/timer_REF.gc +++ b/test/decompiler/reference/engine/ps2/timer_REF.gc @@ -100,12 +100,9 @@ (set! (-> arg0 begin-level) 0) 0 (.mfc0 a1-0 Count) - (set! + (+! (-> arg0 prev-time-elapsed) - (+ - (-> arg0 prev-time-elapsed) - (the-as uint (- a1-0 (the-as int (-> arg0 start-time)))) - ) + (the-as uint (- a1-0 (the-as int (-> arg0 start-time)))) ) ) (the-as uint 0) @@ -120,7 +117,7 @@ (.mfc0 v1-3 Count) (set! (-> arg0 start-time) (the-as uint v1-3)) ) - (set! (-> arg0 begin-level) (+ (-> arg0 begin-level) 1)) + (+! (-> arg0 begin-level) 1) 0 ) @@ -129,16 +126,13 @@ ;; WARN: Unsupported inline assembly instruction kind - [mfc0 a1, Count] (defun stopwatch-end ((arg0 stopwatch)) (local-vars (a1-0 int)) - (set! (-> arg0 begin-level) (+ (-> arg0 begin-level) -1)) + (+! (-> arg0 begin-level) -1) (when (zero? (-> arg0 begin-level)) 0 (.mfc0 a1-0 Count) - (set! + (+! (-> arg0 prev-time-elapsed) - (+ - (-> arg0 prev-time-elapsed) - (the-as uint (- a1-0 (the-as int (-> arg0 start-time)))) - ) + (the-as uint (- a1-0 (the-as int (-> arg0 start-time)))) ) ) (the-as uint 0) diff --git a/test/decompiler/reference/engine/target/joint-mod-h_REF.gc b/test/decompiler/reference/engine/target/joint-mod-h_REF.gc index c2353db5ad..60a5d302e9 100644 --- a/test/decompiler/reference/engine/target/joint-mod-h_REF.gc +++ b/test/decompiler/reference/engine/target/joint-mod-h_REF.gc @@ -89,12 +89,7 @@ (set! (-> obj process) proc) (set! (-> obj joint) (-> proc node-list data joint-idx)) (set-mode! obj mode) - (let ((twist-max (-> obj twist-max))) - (set! (-> twist-max x) 8192.0) - (set! (-> twist-max y) 11832.889) - (set! (-> twist-max z) 0.0) - (set! (-> twist-max w) 1.0) - ) + (set-vector! (-> obj twist-max) 8192.0 11832.889 0.0 1.0) (set! (-> obj up) (the-as uint 1)) (set! (-> obj nose) (the-as uint 2)) (set! (-> obj ear) (the-as uint 0)) @@ -150,12 +145,7 @@ (set! (-> joint param2) #f) (vector-reset! (-> obj trans)) (quaternion-identity! (-> obj quat)) - (let ((v1-2 (-> obj scale))) - (set! (-> v1-2 x) 1.0) - (set! (-> v1-2 y) 1.0) - (set! (-> v1-2 z) 1.0) - (set! (-> v1-2 w) 1.0) - ) + (set-vector! (-> obj scale) 1.0 1.0 1.0 1.0) (set! (-> obj max-dist) (the-as meters #f)) ) (((joint-mod-handler-mode joint-set*)) @@ -164,12 +154,7 @@ (set! (-> joint param2) #f) (vector-reset! (-> obj trans)) (quaternion-identity! (-> obj quat)) - (let ((v1-4 (-> obj scale))) - (set! (-> v1-4 x) 1.0) - (set! (-> v1-4 y) 1.0) - (set! (-> v1-4 z) 1.0) - (set! (-> v1-4 w) 1.0) - ) + (set-vector! (-> obj scale) 1.0 1.0 1.0 1.0) (set! (-> obj max-dist) (the-as meters #f)) ) ) @@ -724,13 +709,8 @@ ) (vector*! (-> arg1 scale) (-> arg1 scale) (-> s5-0 scale)) (cspace<-parented-transformq-joint! arg0 arg1) - (when (-> s5-0 max-dist) - (let ((v1-4 (-> arg0 bone scale))) - (set! (-> v1-4 x) 1.0) - (set! (-> v1-4 y) 1.0) - (set! (-> v1-4 z) 1.0) - (set! (-> v1-4 w) 1.0) - ) + (if (-> s5-0 max-dist) + (set-vector! (-> arg0 bone scale) 1.0 1.0 1.0 1.0) ) ) 0 @@ -797,7 +777,7 @@ (f2-1 (* 6.28318 (-> s4-0 wheel-radius))) (f0-4 (* (* f1-0 (/ 1.0 f2-1)) f0-3)) ) - (set! (-> s4-0 angle) (+ (-> s4-0 angle) f0-4)) + (+! (-> s4-0 angle) f0-4) ) ) (quaternion-vector-angle! @@ -830,12 +810,7 @@ (set! (-> v0-0 wheel-radius) arg2) (set! (-> v0-0 wheel-axis) arg3) (set! (-> v0-0 angle) 0.0) - (let ((v1-2 (-> v0-0 last-position))) - (set! (-> v1-2 x) 0.0) - (set! (-> v1-2 y) 0.0) - (set! (-> v1-2 z) 0.0) - (set! (-> v1-2 w) 1.0) - ) + (set-vector! (-> v0-0 last-position) 0.0 0.0 0.0 1.0) (let ((v1-5 (-> arg0 node-list data arg1))) (set! (-> v1-5 param0) joint-mod-wheel-callback) (set! (-> v1-5 param1) v0-0) diff --git a/test/decompiler/reference/engine/ui/credits_REF.gc b/test/decompiler/reference/engine/ui/credits_REF.gc index 43286e566f..af1256340f 100644 --- a/test/decompiler/reference/engine/ui/credits_REF.gc +++ b/test/decompiler/reference/engine/ui/credits_REF.gc @@ -140,12 +140,9 @@ (print-game-text s3-0 gp-0 #f (the int f30-1) 22) ) ) - (set! + (+! (-> gp-0 origin y) - (+ - (-> gp-0 origin y) - (the float (-> *title-credits-spacing* (+ s5-1 s4-1))) - ) + (the float (-> *title-credits-spacing* (+ s5-1 s4-1))) ) ) ) @@ -206,7 +203,7 @@ (set! v1-13 25) ) ) - (set! (-> s5-0 origin y) (+ (-> s5-0 origin y) (the float v1-13))) + (+! (-> s5-0 origin y) (the float v1-13)) (+! gp-0 1) ) #f diff --git a/test/decompiler/reference/engine/util/sync-info_REF.gc b/test/decompiler/reference/engine/util/sync-info_REF.gc index a546f28ea3..96ac1d5079 100644 --- a/test/decompiler/reference/engine/util/sync-info_REF.gc +++ b/test/decompiler/reference/engine/util/sync-info_REF.gc @@ -400,17 +400,14 @@ ) ) ) - (set! (-> obj vel) (+ (-> obj vel) f0-3)) + (+! (-> obj vel) f0-3) ) (set! (-> obj vel) (fmin (-> obj max-vel) (fmax (- (-> obj max-vel)) (-> obj vel))) ) (set! (-> obj vel) (* (-> obj vel) (-> obj damping))) - (set! - (-> obj value) - (+ (-> obj value) (* (-> obj vel) (-> *display* time-adjust-ratio))) - ) + (+! (-> obj value) (* (-> obj vel) (-> *display* time-adjust-ratio))) (-> obj value) ) diff --git a/test/decompiler/reference/kernel/gkernel_REF.gc b/test/decompiler/reference/kernel/gkernel_REF.gc index 5c97fd1cb3..9f6d723562 100644 --- a/test/decompiler/reference/kernel/gkernel_REF.gc +++ b/test/decompiler/reference/kernel/gkernel_REF.gc @@ -1058,7 +1058,7 @@ (shrink-heap obj s3-0) (relocate s3-0 (- s2-0)) (set! (-> obj first-gap) (find-gap obj s4-1)) - (set! (-> obj compact-count) (+ (-> obj compact-count) 1)) + (+! (-> obj compact-count) 1) ) ) ) diff --git a/test/decompiler/test_FormExpressionBuild2.cpp b/test/decompiler/test_FormExpressionBuild2.cpp index e3baaa022d..2d1713e641 100644 --- a/test/decompiler/test_FormExpressionBuild2.cpp +++ b/test/decompiler/test_FormExpressionBuild2.cpp @@ -1484,12 +1484,7 @@ TEST_F(FormRegressionTest, VectorNewInlineProp) { std::string expected = "(begin\n" " (let ((s5-0 (new-stack-vector0)))\n" - " (let ((v1-0 s5-0))\n" - " (set! (-> v1-0 x) (-> arg1 x))\n" - " (set! (-> v1-0 y) (-> arg1 y))\n" - " (set! (-> v1-0 z) (-> arg1 z))\n" - " (set! (-> v1-0 w) 0.0)\n" - " )\n" + " (set-vector! s5-0 (-> arg1 x) (-> arg1 y) (-> arg1 z) 0.0)\n" " (vector-matrix*! s5-0 s5-0 arg2)\n" " (set! (-> arg0 x) (-> s5-0 x))\n" " (set! (-> arg0 y) (-> s5-0 y))\n" diff --git a/test/decompiler/test_gkernel_decomp.cpp b/test/decompiler/test_gkernel_decomp.cpp index 69141cc049..526c5cbe29 100644 --- a/test/decompiler/test_gkernel_decomp.cpp +++ b/test/decompiler/test_gkernel_decomp.cpp @@ -2613,7 +2613,7 @@ TEST_F(FormRegressionTest, ExprMethod16DeadPoolHeap) { " (shrink-heap arg0 s3-0)\n" " (relocate s3-0 (- s2-0))\n" " (set! (-> arg0 first-gap) (find-gap arg0 s4-1))\n" - " (set! (-> arg0 compact-count) (+ (-> arg0 compact-count) 1))\n" + " (+! (-> arg0 compact-count) 1)\n" " )\n" " )\n" " )\n" From 0ed587cba9ed0477bb92efe8a8ee72a7d93d4fe4 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 17 Jul 2021 19:01:30 +0000 Subject: [PATCH 21/63] Updated github pages site --- docs/gh-pages-proj/src/config/progress.json | 2 +- docs/index.html | 2 +- docs/js/{about.7917c4b3.js => about.3bed851a.js} | 4 ++-- docs/js/{about.7917c4b3.js.map => about.3bed851a.js.map} | 2 +- docs/js/{app.734a4a0b.js => app.79cea398.js} | 4 ++-- docs/js/{app.734a4a0b.js.map => app.79cea398.js.map} | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) rename docs/js/{about.7917c4b3.js => about.3bed851a.js} (99%) rename docs/js/{about.7917c4b3.js.map => about.3bed851a.js.map} (99%) rename docs/js/{app.734a4a0b.js => app.79cea398.js} (97%) rename docs/js/{app.734a4a0b.js.map => app.79cea398.js.map} (98%) diff --git a/docs/gh-pages-proj/src/config/progress.json b/docs/gh-pages-proj/src/config/progress.json index a8fd6c7ded..6842c1447f 100644 --- a/docs/gh-pages-proj/src/config/progress.json +++ b/docs/gh-pages-proj/src/config/progress.json @@ -1,7 +1,7 @@ { "jak1": { "locPercentage": { - "value": 107452, + "value": 107228, "label": "Lines of Code" } } diff --git a/docs/index.html b/docs/index.html index 5523133e04..79a3d40716 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1 +1 @@ -OpenGOAL Tooling
\ No newline at end of file +OpenGOAL Tooling
\ No newline at end of file diff --git a/docs/js/about.7917c4b3.js b/docs/js/about.3bed851a.js similarity index 99% rename from docs/js/about.7917c4b3.js rename to docs/js/about.3bed851a.js index 4016f16b9a..72efaca026 100644 --- a/docs/js/about.7917c4b3.js +++ b/docs/js/about.3bed851a.js @@ -1,2 +1,2 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":107452,"label":"Lines of Code"}}}')}}]); -//# sourceMappingURL=about.7917c4b3.js.map \ No newline at end of file +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":107228,"label":"Lines of Code"}}}')}}]); +//# sourceMappingURL=about.3bed851a.js.map \ No newline at end of file diff --git a/docs/js/about.7917c4b3.js.map b/docs/js/about.3bed851a.js.map similarity index 99% rename from docs/js/about.7917c4b3.js.map rename to docs/js/about.3bed851a.js.map index c754d92bd4..ce35d0b4ec 100644 --- a/docs/js/about.7917c4b3.js.map +++ b/docs/js/about.3bed851a.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?1e25","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.7917c4b3.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?1e25","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.3bed851a.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/js/app.734a4a0b.js b/docs/js/app.79cea398.js similarity index 97% rename from docs/js/app.734a4a0b.js rename to docs/js/app.79cea398.js index 576c7c81fb..c01e46c7f8 100644 --- a/docs/js/app.734a4a0b.js +++ b/docs/js/app.79cea398.js @@ -1,2 +1,2 @@ -(function(e){function t(t){for(var n,o,i=t[0],c=t[1],l=t[2],s=0,p=[];s\n \n \n \n \n \n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?341e","webpack:///src/App.vue","webpack:///./src/App.vue?1160","webpack:///./src/App.vue","webpack:///./src/plugins/vuetify.js","webpack:///./src/router/index.js","webpack:///./src/main.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_h","$createElement","_c","_self","staticRenderFns","components","component","VApp","VMain","Vue","use","Vuetify","theme","dark","VueRouter","routes","path","router","base","process","config","productionTip","vuetify","render","h","App","$mount"],"mappings":"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","file":"js/app.79cea398.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"3bed851a\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"about\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"8d0e9591\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/jak-project/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[_c('v-main',[_c('router-view')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file From b70fcb2f7a7ed8acd370f714e8d01ca6cc821ffb Mon Sep 17 00:00:00 2001 From: water111 <48171810+water111@users.noreply.github.com> Date: Sat, 17 Jul 2021 18:07:21 -0400 Subject: [PATCH 22/63] support non-virtual gos in decompiler (#707) --- common/CMakeLists.txt | 1 + common/type_system/state.cpp | 15 ++ common/type_system/state.h | 9 + decompiler/IR2/AtomicOpTypeAnalysis.cpp | 34 +++- decompiler/IR2/FormExpressionAnalysis.cpp | 79 ++++++- decompiler/config/all-types.gc | 33 +-- .../jak1_ntsc_black_label/type_casts.jsonc | 10 +- .../jak1_ntsc_black_label/var_names.jsonc | 15 +- decompiler/util/DecompilerTypeSystem.cpp | 7 + decompiler/util/TP_Type.cpp | 6 + decompiler/util/TP_Type.h | 9 + goal_src/engine/collide/collide-frag.gc | 32 +-- goal_src/engine/collide/collide-mesh-h.gc | 10 +- goal_src/engine/collide/collide-shape-h.gc | 30 ++- goal_src/engine/collide/collide-target-h.gc | 2 +- goal_src/engine/draw/drawable-actor-h.gc | 2 +- goal_src/engine/draw/drawable-ambient-h.gc | 2 +- goal_src/engine/draw/drawable-h.gc | 10 +- goal_src/engine/draw/drawable-inline-array.gc | 7 +- goal_src/engine/game/fact-h.gc | 96 +++++---- goal_src/engine/game/game-h.gc | 12 +- goal_src/engine/geometry/vol-h.gc | 192 +++++++----------- goal_src/engine/gfx/lights.gc | 9 +- goal_src/engine/level/level.gc | 8 +- goal_src/engine/target/joint-mod-h.gc | 96 ++++----- goal_src/engine/target/pat-h.gc | 3 + goal_src/engine/target/surface-h.gc | 20 +- goal_src/kernel-defs.gc | 4 +- goal_src/kernel/gkernel-h.gc | 2 +- goal_src/kernel/gkernel.gc | 8 +- .../decompiler/reference/decompiler-macros.gc | 9 +- .../reference/engine/anim/aligner-h_REF.gc | 7 +- .../engine/collide/collide-frag_REF.gc | 14 +- .../engine/collide/collide-mesh-h_REF.gc | 16 +- .../engine/collide/collide-shape-h_REF.gc | 86 ++++---- .../engine/collide/collide-target-h_REF.gc | 20 +- .../engine/draw/drawable-actor-h_REF.gc | 2 +- .../engine/draw/drawable-ambient-h_REF.gc | 2 +- .../reference/engine/draw/drawable-h_REF.gc | 4 +- .../engine/draw/drawable-inline-array_REF.gc | 8 +- .../reference/engine/game/fact-h_REF.gc | 169 ++++++++------- .../reference/engine/geometry/vol-h_REF.gc | 181 ++++++++--------- .../reference/engine/gfx/tie/prototype_REF.gc | 6 +- .../reference/engine/nav/navigate-h_REF.gc | 87 ++++---- .../reference/engine/nav/path-h_REF.gc | 109 +++++----- .../engine/target/joint-mod-h_REF.gc | 12 +- .../reference/kernel/gkernel_REF.gc | 13 +- test/decompiler/test_gkernel_decomp.cpp | 49 ++--- 48 files changed, 824 insertions(+), 733 deletions(-) create mode 100644 common/type_system/state.cpp create mode 100644 common/type_system/state.h diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt index fde51701b3..bcf36d3a68 100644 --- a/common/CMakeLists.txt +++ b/common/CMakeLists.txt @@ -12,6 +12,7 @@ add_library(common log/log.cpp type_system/defenum.cpp type_system/deftype.cpp + type_system/state.cpp type_system/Type.cpp type_system/TypeFieldLookup.cpp type_system/TypeSpec.cpp diff --git a/common/type_system/state.cpp b/common/type_system/state.cpp new file mode 100644 index 0000000000..b601df7471 --- /dev/null +++ b/common/type_system/state.cpp @@ -0,0 +1,15 @@ +#include "state.h" + +/*! + * Convert a (state ...) to the function required to go. Must be state. + */ +TypeSpec state_to_go_function(const TypeSpec& state_type) { + assert(state_type.base_type() == "state"); + std::vector arg_types; + for (int i = 0; i < (int)state_type.arg_count() - 1; i++) { + arg_types.push_back(state_type.get_arg(i)); + } + + arg_types.push_back(TypeSpec("none")); // none for the return. + return TypeSpec("function", arg_types); +} \ No newline at end of file diff --git a/common/type_system/state.h b/common/type_system/state.h new file mode 100644 index 0000000000..1d1ebd5f7f --- /dev/null +++ b/common/type_system/state.h @@ -0,0 +1,9 @@ +#pragma once + +#include "common/type_system/TypeSpec.h" + +/*! + * This contains type system utilities related to state and process + */ + +TypeSpec state_to_go_function(const TypeSpec& state_type); diff --git a/decompiler/IR2/AtomicOpTypeAnalysis.cpp b/decompiler/IR2/AtomicOpTypeAnalysis.cpp index dabf071443..9f472e93b1 100644 --- a/decompiler/IR2/AtomicOpTypeAnalysis.cpp +++ b/decompiler/IR2/AtomicOpTypeAnalysis.cpp @@ -5,6 +5,7 @@ #include "decompiler/util/TP_Type.h" #include "decompiler/util/DecompilerTypeSystem.h" #include "decompiler/IR2/bitfields.h" +#include "common/type_system/state.h" namespace decompiler { @@ -81,6 +82,8 @@ TP_Type SimpleAtom::get_type(const TypeState& input, // which actually means that you get the first address in the symbol table. // it's not really a linked symbol, but the basic op builder represents it as one. return TP_Type::make_from_ts(TypeSpec("pointer")); + } else if (m_string == "enter-state") { + return TP_Type::make_enter_state(); } // look up the type of the symbol @@ -798,9 +801,18 @@ TypeState SetVarConditionOp::propagate_types_internal(const TypeState& input, TypeState StoreOp::propagate_types_internal(const TypeState& input, const Env& env, DecompilerTypeSystem& dts) { + TypeState output = input; + + // look for setting the next state of the current process + IR2_RegOffset ro; + if (get_as_reg_offset(m_addr, &ro)) { + if (ro.reg == Register(Reg::GPR, Reg::S6) && ro.offset == 72) { + output.next_state_type = m_value.get_type(input, env, dts); + } + } (void)env; (void)dts; - return input; + return output; } TP_Type LoadVarOp::get_src_type(const TypeState& input, @@ -1113,6 +1125,26 @@ TypeState CallOp::propagate_types_internal(const TypeState& input, throw std::runtime_error("Called something that was not a function: " + in_type.print()); } + // If we call enter-state, update our type. + if (in_tp.kind == TP_Type::Kind::ENTER_STATE_FUNCTION) { + // this is a GO! + auto state_type = input.next_state_type.typespec(); + if (state_type.base_type() != "state") { + throw std::runtime_error( + fmt::format("At op {}, called enter-state, but the current next-state has type {}, which " + "is not a valid state.", + m_my_idx, input.next_state_type.print())); + } + + if (state_type.arg_count() == 0) { + throw std::runtime_error(fmt::format( + "At op {}, tried to enter-state, but the type of (-> s6 next-state) is just a plain " + "state. The decompiler must know the specific state type.", + m_my_idx)); + } + in_type = state_to_go_function(state_type); + } + if (in_type.arg_count() < 1) { throw std::runtime_error("Called a function, but we do not know its type"); } diff --git a/decompiler/IR2/FormExpressionAnalysis.cpp b/decompiler/IR2/FormExpressionAnalysis.cpp index d65f80958d..84e1735093 100644 --- a/decompiler/IR2/FormExpressionAnalysis.cpp +++ b/decompiler/IR2/FormExpressionAnalysis.cpp @@ -7,6 +7,7 @@ #include "decompiler/util/data_decompile.h" #include "decompiler/IR2/bitfields.h" #include "common/util/BitUtils.h" +#include "common/type_system/state.h" /* * TODO @@ -2334,6 +2335,34 @@ void AbsElement::update_from_stack(const Env& env, result->push_back(new_form); } +namespace { +/*! + * Try to recognize setting the next state. + */ +Form* get_set_next_state(FormElement* set_elt, const Env& env) { + auto as_set = dynamic_cast(set_elt); + if (!as_set) { + return nullptr; + } + + auto dst = as_set->dst(); + auto dst_matcher = + Matcher::deref(Matcher::any_reg(0), false, {DerefTokenMatcher::string("next-state")}); + auto mr = match(dst_matcher, dst); + if (!mr.matched) { + fmt::print("failed to match dst {}\n", dst->to_string(env)); + return nullptr; + } + + if (mr.maps.regs.at(0)->reg() != Register(Reg::GPR, Reg::S6)) { + fmt::print("failed to match pp reg, got {}\n", mr.maps.regs.at(0)->reg().to_string()); + return nullptr; + } + + return as_set->src(); +} +} // namespace + /////////////////// // FunctionCallElement /////////////////// @@ -2354,11 +2383,42 @@ void FunctionCallElement::update_from_stack(const Env& env, } TypeSpec function_type; - auto& tp_type = env.get_types_before_op(all_pop_vars.at(0).idx()).get(all_pop_vars.at(0).reg()); + auto& in_type_state = env.get_types_before_op(all_pop_vars.at(0).idx()); + auto& tp_type = in_type_state.get(all_pop_vars.at(0).reg()); if (env.has_type_analysis()) { function_type = tp_type.typespec(); } + // if we're actually a go: + Form* go_next_state = nullptr; + if (tp_type.kind == TP_Type::Kind::ENTER_STATE_FUNCTION) { + auto& next_state_type = in_type_state.next_state_type; + if (next_state_type.typespec().base_type() != "state") { + throw std::runtime_error("Bad state type in expressions (not state): " + + next_state_type.print()); + } + if (next_state_type.typespec().arg_count() == 0) { + throw std::runtime_error("Bad state type in expressions (no args): " + + next_state_type.print()); + } + + // modify our type for the go. + function_type = state_to_go_function(next_state_type.typespec()); + + // up next, we need to deal with the + // (set! (-> pp next-state) process-drawable-art-error) + auto stack_back = stack.pop_back(pool); + + auto next_state = get_set_next_state(stack_back, env); + if (!next_state) { + throw std::runtime_error( + fmt::format("Expressions couldn't figure out this go. The back of the stack was {} and " + "we expected to see something set (-> pp next-state) instead.", + stack_back->to_string(env))); + } + go_next_state = next_state; + } + bool swap_function = tp_type.kind == TP_Type::Kind::NON_VIRTUAL_METHOD && all_pop_vars.size() >= 2; if (tp_type.kind == TP_Type::Kind::NON_VIRTUAL_METHOD) { @@ -2410,6 +2470,16 @@ void FunctionCallElement::update_from_stack(const Env& env, FormElement* new_form = nullptr; + if (go_next_state) { + arg_forms.insert(arg_forms.begin(), go_next_state); + auto go_form = pool.alloc_element( + GenericOperator::make_function( + pool.alloc_single_element_form(nullptr, "go")), + arg_forms); + result->push_back(go_form); + return; + } + { // deal with virtual method calls. auto matcher = Matcher::op(GenericOpMatcher::fixed(FixedOperatorKind::METHOD_OF_OBJECT), @@ -2448,6 +2518,7 @@ void FunctionCallElement::update_from_stack(const Env& env, new_form = pool.alloc_element( GenericOperator::make_function(mr.maps.forms.at(1)), arg_forms); result->push_back(new_form); + assert(!go_next_state); return; } } @@ -2496,6 +2567,7 @@ void FunctionCallElement::update_from_stack(const Env& env, auto new_op = pool.alloc_element( GenericOperator::make_fixed(FixedOperatorKind::OBJECT_NEW), new_args); result->push_back(new_op); + assert(!go_next_state); return; } if (name == "new" && type_1 == "type") { @@ -2503,6 +2575,7 @@ void FunctionCallElement::update_from_stack(const Env& env, auto new_op = pool.alloc_element( GenericOperator::make_fixed(FixedOperatorKind::TYPE_NEW), new_args); result->push_back(new_op); + assert(!go_next_state); return; } else if (name == "new") { constexpr int allocation = 2; @@ -2538,6 +2611,7 @@ void FunctionCallElement::update_from_stack(const Env& env, auto cons_op = pool.alloc_element( GenericOperator::make_fixed(FixedOperatorKind::CONS), cons_args); result->push_back(cons_op); + assert(!go_next_state); return; } else { // just normal construction on the heap @@ -2547,6 +2621,7 @@ void FunctionCallElement::update_from_stack(const Env& env, auto new_op = pool.alloc_element( GenericOperator::make_fixed(FixedOperatorKind::NEW), new_args); result->push_back(new_op); + assert(!go_next_state); return; } } @@ -2596,6 +2671,7 @@ void FunctionCallElement::update_from_stack(const Env& env, auto gop = GenericOperator::make_function(method_op); result->push_back(pool.alloc_element(gop, arg_forms)); + assert(!go_next_state); return; } @@ -2633,6 +2709,7 @@ void FunctionCallElement::update_from_stack(const Env& env, } result->push_back(pool.alloc_element( GenericOperator::make_fixed(FixedOperatorKind::NEW), stack_new_args)); + assert(!go_next_state); return; } } diff --git a/decompiler/config/all-types.gc b/decompiler/config/all-types.gc index 66fb25521f..3c304cee86 100644 --- a/decompiler/config/all-types.gc +++ b/decompiler/config/all-types.gc @@ -962,13 +962,15 @@ ;; - Types (define-extern process-tree type) ; deftype provided by C Kernel +(declare-type process basic) + (deftype process-tree (basic) ((name basic :offset-assert 4) (mask process-mask :offset-assert 8) (parent (pointer process-tree) :offset-assert 12) (brother (pointer process-tree) :offset-assert 16) (child (pointer process-tree) :offset-assert 20) - (ppointer (pointer process-tree) :offset-assert 24) + (ppointer (pointer process) :offset-assert 24) (self process-tree :offset-assert 28) ) (:methods @@ -5831,8 +5833,8 @@ :size-assert #x20 :flag-assert #x1200000020 (:methods - (dummy-9 (_type_) _type_ 9) ;; probably login or init. - (dummy-10 (_type_ drawable display-frame) int 10) ;; display-frame is from the method inspect tool + (login (_type_) _type_ 9) ;; probably login or init. + (draw (_type_ drawable display-frame) int 10) ;; display-frame is from the method inspect tool (dummy-11 (_type_ int) none 11) ; int - length (dummy-12 (_type_ int) none 12) ; int - length (dummy-13 (_type_ int) none 13) ; int - length @@ -9654,7 +9656,8 @@ ;; - Symbols -(define-extern process-drawable-art-error state) +(declare-type process-drawable process) +(define-extern process-drawable-art-error (state string process-drawable)) (define-extern *FACT-bank* fact-bank) ;; unknown type @@ -10489,7 +10492,7 @@ ((vertex vector 3 :inline :offset-assert 0) (intersect vector :inline :offset-assert 48) (normal vector :inline :offset-assert 64) - (pat uint32 :offset-assert 80) + (pat pat-surface :offset-assert 80) ) :method-count-assert 9 :size-assert #x54 @@ -10497,9 +10500,9 @@ ) (deftype collide-mesh-tri (structure) - ((vertex-index uint8 3 :offset-assert 0) - (unused uint8 :offset-assert 3) - (pat uint32 :offset-assert 4) + ((vertex-index uint8 3 :offset-assert 0) + (unused uint8 :offset-assert 3) + (pat pat-surface :offset-assert 4) ) :pack-me :method-count-assert 9 @@ -10549,7 +10552,7 @@ ((vertex vector 3 :inline :offset-assert 0) (normal vector :inline :offset-assert 48) (bbox4w bounding-box4w :inline :offset-assert 64) - (pat uint32 :offset 60) + (pat pat-surface :offset 60) ) :method-count-assert 9 :size-assert #x60 @@ -10703,7 +10706,7 @@ ) (deftype collide-shape-prim-sphere (collide-shape-prim) - ((pat uint32 :offset-assert 72) + ((pat pat-surface :offset-assert 72) ) :method-count-assert 28 :size-assert #x4c @@ -10805,7 +10808,7 @@ (max-iteration-count uint8 :offset-assert 144) (nav-flags uint8 :offset-assert 145) (pad-byte uint8 2 :offset-assert 146) - (pat-ignore-mask uint32 :offset-assert 148) + (pat-ignore-mask pat-surface :offset-assert 148) (event-self basic :offset-assert 152) (event-other basic :offset-assert 156) (root-prim basic :offset-assert 160) @@ -10853,9 +10856,9 @@ ((rider-time uint64 :offset-assert 184) (rider-last-move vector :inline :offset-assert 192) (trans-old vector 3 :inline :offset-assert 208) - (poly-pat uint32 :offset-assert 256) - (cur-pat uint32 :offset-assert 260) - (ground-pat uint32 :offset-assert 264) + (poly-pat pat-surface :offset-assert 256) + (cur-pat pat-surface :offset-assert 260) + (ground-pat pat-surface :offset-assert 264) (status uint64 :offset-assert 272) (old-status uint64 :offset-assert 280) (prev-status uint64 :offset-assert 288) @@ -10919,7 +10922,7 @@ (surface-normal vector :inline :offset-assert 80) (time uint64 :offset-assert 96) (status uint64 :offset-assert 104) - (pat uint32 :offset-assert 112) + (pat pat-surface :offset-assert 112) (reaction-flag uint32 :offset-assert 116) ) :method-count-assert 10 diff --git a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc index 8355f7e1e1..a7123bde12 100644 --- a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc @@ -544,7 +544,7 @@ "(method 0 fact-info)": [ [81, "v0", "float"], - [16, "t9", "(function string none)"], + //[16, "t9", "(function string none)"], ["_stack_", 16, "res-tag"], [[32, 43], "v1", "(pointer int32)"], [86, "gp", "fact-info"] @@ -553,7 +553,6 @@ "(method 0 fact-info-target)": [[[3, 20], "gp", "fact-info-target"]], "(method 0 align-control)": [ - [[8, 13], "t9", "(function object object)"], [[14, 18], "v0", "align-control"] ], @@ -609,8 +608,7 @@ "(method 11 joint-mod)": [ [15, "s3", "process-drawable"], - [[26, 66], "s3", "fact-info-enemy"], - [[45, 50], "v1", "(pointer process)"] + [[26, 66], "s3", "fact-info-enemy"] ], "joint-mod-look-at-handler": [[[2, 254], "gp", "joint-mod"]], @@ -721,7 +719,6 @@ "actor-link-subtask-complete-hook": [[1, "v1", "entity-links"]], "(method 0 vol-control)": [ - [[9, 14], "t9", "(function object object)"], [30, "s5", "res-lump"], [36, "s5", "res-lump"], [58, "s5", "res-lump"], @@ -747,7 +744,6 @@ "(method 12 art-group)": [[13, "a0", "art-joint-anim"]], "(method 0 path-control)": [ - [15, "t9", "(function string none)"], ["_stack_", 16, "res-tag"] ], @@ -763,8 +759,6 @@ [77, "a0", "entity-links"] ], - "(method 0 nav-control)": [[17, "t9", "(function string none)"]], - "add-debug-point": [ [125, "a3", "pointer"], [[27, 144], "a0", "(pointer uint64)"], diff --git a/decompiler/config/jak1_ntsc_black_label/var_names.jsonc b/decompiler/config/jak1_ntsc_black_label/var_names.jsonc index abed42d99e..a1a9576b93 100644 --- a/decompiler/config/jak1_ntsc_black_label/var_names.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/var_names.jsonc @@ -1840,8 +1840,7 @@ "vars": { "gp-0": ["obj", "fact-info"], "s5-0": "ent", - "sv-16": "tag", - "t9-1": ["go-func", "(function string none)"] + "sv-16": "tag" } }, @@ -1983,8 +1982,7 @@ "vars": { "s1-0": "proc-drawable", "s3-1": ["enemy-facts", "fact-info-enemy"], - "f30-0": "dist", - "v1-12": ["ppointer", "(pointer process)"] + "f30-0": "dist" } }, @@ -2382,5 +2380,14 @@ "sv-32":"load-status", "sv-40":"heap-free" } + }, + + "(method 16 process-drawable)" : { + "vars": { + "s3-0":"body-T-world", + "s0-0":"world-T-body", + "s2-0":"grav-rt-body", + "a1-5":"vel-rt-body" + } } } diff --git a/decompiler/util/DecompilerTypeSystem.cpp b/decompiler/util/DecompilerTypeSystem.cpp index bfb28cecdb..916c8c3187 100644 --- a/decompiler/util/DecompilerTypeSystem.cpp +++ b/decompiler/util/DecompilerTypeSystem.cpp @@ -379,6 +379,13 @@ bool DecompilerTypeSystem::tp_lca(TypeState* combined, const TypeState& add) { } } + bool diff = false; + auto new_type = tp_lca(combined->next_state_type, add.next_state_type, &diff); + if (diff) { + result = true; + combined->next_state_type = new_type; + } + return result; } diff --git a/decompiler/util/TP_Type.cpp b/decompiler/util/TP_Type.cpp index bf6048708c..ffbe5f8909 100644 --- a/decompiler/util/TP_Type.cpp +++ b/decompiler/util/TP_Type.cpp @@ -71,6 +71,8 @@ std::string TP_Type::print() const { return fmt::format("", m_ts.print()); case Kind::LABEL_ADDR: return ""; + case Kind::ENTER_STATE_FUNCTION: + return ""; case Kind::INVALID: default: assert(false); @@ -124,6 +126,7 @@ bool TP_Type::operator==(const TP_Type& other) const { case Kind::PCPYUD_BITFIELD_AND: return m_pcpyud == other.m_pcpyud && m_ts == other.m_ts; case Kind::LABEL_ADDR: + case Kind::ENTER_STATE_FUNCTION: return true; case Kind::INVALID: default: @@ -185,6 +188,9 @@ TypeSpec TP_Type::typespec() const { return TypeSpec("int"); case Kind::LABEL_ADDR: return TypeSpec("pointer"); // ? + case Kind::ENTER_STATE_FUNCTION: + // give a general function so we can't call it normally. + return TypeSpec("function"); case Kind::INVALID: default: assert(false); diff --git a/decompiler/util/TP_Type.h b/decompiler/util/TP_Type.h index 9d0010df38..ce076cdb56 100644 --- a/decompiler/util/TP_Type.h +++ b/decompiler/util/TP_Type.h @@ -36,6 +36,7 @@ class TP_Type { PCPYUD_BITFIELD_AND, LEFT_SHIFTED_BITFIELD, // (bitfield << some-constant) LABEL_ADDR, + ENTER_STATE_FUNCTION, INVALID } kind = Kind::UNINITIALIZED; TP_Type() = default; @@ -65,6 +66,7 @@ class TP_Type { case Kind::PCPYUD_BITFIELD: case Kind::PCPYUD_BITFIELD_AND: case Kind::LABEL_ADDR: + case Kind::ENTER_STATE_FUNCTION: return false; case Kind::UNINITIALIZED: case Kind::OBJECT_NEW_METHOD: @@ -254,6 +256,12 @@ class TP_Type { return result; } + static TP_Type make_enter_state() { + TP_Type result; + result.kind = Kind::ENTER_STATE_FUNCTION; + return result; + } + static TP_Type make_label_addr() { TP_Type result; result.kind = Kind::LABEL_ADDR; @@ -352,6 +360,7 @@ class TypeState { std::unordered_map spill_slots; TP_Type gpr_types[32]; TP_Type fpr_types[32]; + TP_Type next_state_type; std::string print_gpr_masked(u32 mask) const; TP_Type& get(const Register& r) { switch (r.get_kind()) { diff --git a/goal_src/engine/collide/collide-frag.gc b/goal_src/engine/collide/collide-frag.gc index c1ea009aa3..c1d95b5eec 100644 --- a/goal_src/engine/collide/collide-frag.gc +++ b/goal_src/engine/collide/collide-frag.gc @@ -6,21 +6,15 @@ ;; dgos: GAME, ENGINE ;; definition for method 9 of type drawable-tree-collide-fragment -(defmethod - dummy-9 - drawable-tree-collide-fragment - ((obj drawable-tree-collide-fragment)) +(defmethod login drawable-tree-collide-fragment ((obj drawable-tree-collide-fragment)) obj ) ;; definition for method 10 of type drawable-tree-collide-fragment -(defmethod - dummy-10 - drawable-tree-collide-fragment - ((obj drawable-tree-collide-fragment) (arg0 drawable) (arg1 display-frame)) +(defmethod draw drawable-tree-collide-fragment ((obj drawable-tree-collide-fragment) (arg0 drawable) (arg1 display-frame)) (when *display-render-collision* (dotimes (s4-0 (-> obj length)) - (dummy-10 (-> obj data s4-0) (-> obj data s4-0) arg1) + (draw (-> obj data s4-0) (-> obj data s4-0) arg1) ) ) 0 @@ -126,33 +120,21 @@ ) ;; definition for method 9 of type drawable-inline-array-collide-fragment -(defmethod - dummy-9 - drawable-inline-array-collide-fragment - ((obj drawable-inline-array-collide-fragment)) +(defmethod login drawable-inline-array-collide-fragment ((obj drawable-inline-array-collide-fragment)) obj ) ;; definition for method 10 of type collide-fragment -(defmethod - dummy-10 - collide-fragment - ((obj collide-fragment) (arg0 drawable) (arg1 display-frame)) +(defmethod draw collide-fragment ((obj collide-fragment) (arg0 drawable) (arg1 display-frame)) 0 ) ;; definition for method 10 of type drawable-inline-array-collide-fragment -(defmethod - dummy-10 - drawable-inline-array-collide-fragment - ((obj drawable-inline-array-collide-fragment) - (arg0 drawable) - (arg1 display-frame) - ) +(defmethod draw drawable-inline-array-collide-fragment ((obj drawable-inline-array-collide-fragment) (arg0 drawable) (arg1 display-frame)) (dotimes (s4-0 (-> obj length)) (let ((s3-0 (-> obj data s4-0))) (if (sphere-cull (-> s3-0 bsphere)) - (dummy-10 s3-0 s3-0 arg1) + (draw s3-0 s3-0 arg1) ) ) ) diff --git a/goal_src/engine/collide/collide-mesh-h.gc b/goal_src/engine/collide/collide-mesh-h.gc index 05dfe2958d..4af6ed71cf 100644 --- a/goal_src/engine/collide/collide-mesh-h.gc +++ b/goal_src/engine/collide/collide-mesh-h.gc @@ -9,7 +9,7 @@ ((vertex vector 3 :inline :offset-assert 0) (intersect vector :inline :offset-assert 48) (normal vector :inline :offset-assert 64) - (pat uint32 :offset-assert 80) + (pat pat-surface :offset-assert 80) ) :method-count-assert 9 :size-assert #x54 @@ -17,9 +17,9 @@ ) (deftype collide-mesh-tri (structure) - ((vertex-index uint8 3 :offset-assert 0) - (unused uint8 :offset-assert 3) - (pat uint32 :offset-assert 4) + ((vertex-index uint8 3 :offset-assert 0) + (unused uint8 :offset-assert 3) + (pat pat-surface :offset-assert 4) ) :pack-me :method-count-assert 9 @@ -98,7 +98,7 @@ ((vertex vector 3 :inline :offset-assert 0) (normal vector :inline :offset-assert 48) (bbox4w bounding-box4w :inline :offset-assert 64) - (pat uint32 :offset 60) + (pat pat-surface :offset 60) ) :method-count-assert 9 :size-assert #x60 diff --git a/goal_src/engine/collide/collide-shape-h.gc b/goal_src/engine/collide/collide-shape-h.gc index 3ac61960b2..d8160b7534 100644 --- a/goal_src/engine/collide/collide-shape-h.gc +++ b/goal_src/engine/collide/collide-shape-h.gc @@ -177,7 +177,7 @@ ;; sphere collision ;; the pat is stored directly here. (deftype collide-shape-prim-sphere (collide-shape-prim) - ((pat uint32 :offset-assert 72) + ((pat pat-surface :offset-assert 72) ) :method-count-assert 28 :size-assert #x4c @@ -290,7 +290,7 @@ (max-iteration-count uint8 :offset-assert 144) (nav-flags uint8 :offset-assert 145) (pad-byte uint8 2 :offset-assert 146) - (pat-ignore-mask uint32 :offset-assert 148) + (pat-ignore-mask pat-surface :offset-assert 148) (event-self basic :offset-assert 152) (event-other basic :offset-assert 156) (root-prim basic :offset-assert 160) @@ -339,9 +339,9 @@ ((rider-time uint64 :offset-assert 184) (rider-last-move vector :inline :offset-assert 192) (trans-old vector 3 :inline :offset-assert 208) - (poly-pat uint32 :offset-assert 256) - (cur-pat uint32 :offset-assert 260) - (ground-pat uint32 :offset-assert 264) + (poly-pat pat-surface :offset-assert 256) + (cur-pat pat-surface :offset-assert 260) + (ground-pat pat-surface :offset-assert 264) (status uint64 :offset-assert 272) (old-status uint64 :offset-assert 280) (prev-status uint64 :offset-assert 288) @@ -402,7 +402,7 @@ "Allocate a new sphere primitive" (let ((obj (the collide-shape-prim-sphere ((method-of-type collide-shape-prim new) allocation type-to-make cshape prim-id (size-of collide-shape-prim-mesh))))) - (set! (-> obj pat) #x10) + (set! (-> obj pat) (new 'static 'pat-surface :mode (pat-mode obstacle))) (set! (-> obj prim-core prim-type) -1) obj ) @@ -444,7 +444,7 @@ (defmethod asize-of collide-shape-prim-group ((obj collide-shape-prim-group)) "How big is this in memory?" (the-as int - (+ (-> obj type size) (the-as uint (shl (+ (-> obj allocated-prims) -1) 2))) + (+ (-> obj type size) (the-as uint (* (+ (-> obj allocated-prims) -1) 4))) ) ) @@ -461,12 +461,20 @@ (set! (-> obj root-prim) #f) ;; add a special ignore mask for the camera vs other things. - (case (-> proc type symbol) - (('camera) - (set! (-> obj pat-ignore-mask) #x2) - (set! (-> obj pat-ignore-mask) #x1) + (case (-> proc type symbol) + (('camera) + (set! + (-> obj pat-ignore-mask) + (new 'static 'pat-surface :skip #x2 :nocamera #x1) ) ) + (else + (set! + (-> obj pat-ignore-mask) + (new 'static 'pat-surface :skip #x1 :noentity #x1) + ) + ) + ) ;; reset transformation to the origin. (set! (-> obj trans w) 1.0) diff --git a/goal_src/engine/collide/collide-target-h.gc b/goal_src/engine/collide/collide-target-h.gc index 5e9cea9072..bc1b5ccd4e 100644 --- a/goal_src/engine/collide/collide-target-h.gc +++ b/goal_src/engine/collide/collide-target-h.gc @@ -19,7 +19,7 @@ (surface-normal vector :inline :offset-assert 80) (time uint64 :offset-assert 96) (status uint64 :offset-assert 104) - (pat uint32 :offset-assert 112) + (pat pat-surface :offset-assert 112) (reaction-flag uint32 :offset-assert 116) ) :method-count-assert 10 diff --git a/goal_src/engine/draw/drawable-actor-h.gc b/goal_src/engine/draw/drawable-actor-h.gc index 65e416c612..182aa3fb8d 100644 --- a/goal_src/engine/draw/drawable-actor-h.gc +++ b/goal_src/engine/draw/drawable-actor-h.gc @@ -27,6 +27,6 @@ ) -(defmethod dummy-10 drawable-tree-actor ((obj _type_) (arg0 drawable) (arg1 display-frame)) +(defmethod draw drawable-tree-actor ((obj _type_) (arg0 drawable) (arg1 display-frame)) 0 ) diff --git a/goal_src/engine/draw/drawable-ambient-h.gc b/goal_src/engine/draw/drawable-ambient-h.gc index daec1beeb3..bccfc24f5f 100644 --- a/goal_src/engine/draw/drawable-ambient-h.gc +++ b/goal_src/engine/draw/drawable-ambient-h.gc @@ -31,7 +31,7 @@ :flag-assert #x1200000044 ) -(defmethod dummy-10 drawable-tree-ambient ((obj _type_) (arg0 drawable) (arg1 display-frame)) +(defmethod draw drawable-tree-ambient ((obj _type_) (arg0 drawable) (arg1 display-frame)) 0 ) diff --git a/goal_src/engine/draw/drawable-h.gc b/goal_src/engine/draw/drawable-h.gc index 48514eb616..e65ee8af7f 100644 --- a/goal_src/engine/draw/drawable-h.gc +++ b/goal_src/engine/draw/drawable-h.gc @@ -17,8 +17,8 @@ :size-assert #x20 :flag-assert #x1200000020 (:methods - (dummy-9 (_type_) _type_ 9) ;; probably login or init. - (dummy-10 (_type_ drawable display-frame) int 10) ;; display-frame is from the method inspect tool + (login (_type_) _type_ 9) ;; probably login or init. + (draw (_type_ drawable display-frame) int 10) ;; display-frame is from the method inspect tool (dummy-11 (_type_ int) none 11) ; int - length (dummy-12 (_type_ int) none 12) ; int - length (dummy-13 (_type_ int) none 13) ; int - length @@ -37,9 +37,5 @@ :flag-assert #x1200000024 ) -;; NOTE - I'm guessing there was a define-extern earlier in the build process -;; This is actually set in process-drawable.gc, but it's used by files earlier in the process -;; assuming (state process-drawable) -(define-extern process-drawable-art-error state) - (declare-type process-drawable process) +(define-extern process-drawable-art-error (state string process-drawable)) \ No newline at end of file diff --git a/goal_src/engine/draw/drawable-inline-array.gc b/goal_src/engine/draw/drawable-inline-array.gc index 60ef6c31f2..6ebb628f99 100644 --- a/goal_src/engine/draw/drawable-inline-array.gc +++ b/goal_src/engine/draw/drawable-inline-array.gc @@ -11,14 +11,11 @@ (-> obj length) ) -(defmethod dummy-9 drawable-inline-array ((obj drawable-inline-array)) +(defmethod login drawable-inline-array ((obj drawable-inline-array)) obj ) -(defmethod - dummy-10 - drawable-inline-array - ((obj drawable-inline-array) (arg0 drawable) (arg1 display-frame)) +(defmethod draw drawable-inline-array ((obj drawable-inline-array) (arg0 drawable) (arg1 display-frame)) 0 ) diff --git a/goal_src/engine/game/fact-h.gc b/goal_src/engine/game/fact-h.gc index b43b2dae1d..5c44304a10 100644 --- a/goal_src/engine/game/fact-h.gc +++ b/goal_src/engine/game/fact-h.gc @@ -149,58 +149,56 @@ the entity of the process automatically. Will attempt to read pickup-type and amount from the entity, but if this fails will use the values in the arguments" (local-vars (tag res-tag)) - (with-pp - ;; allocate. - (let ((obj (object-new allocation type-to-make (the-as int (-> type-to-make size))))) - (let ((ent (the res-lump (-> proc entity)))) - ;; confirm that we allocated successfully - (when (zero? obj) - (go process-drawable-art-error "memory") - ;; this is already true... - (set! obj (the-as fact-info 0)) - (goto cfg-10) - ) - - ;; remember who we belong to - (set! (-> obj process) proc) - - ;; eco may override the pickup type and amount, so try to get this. - (let ((v1-6 (res-lump-data ent 'eco-info (pointer int32) :tag-ptr (& tag) :time 0.0))) - (cond - (v1-6 - ;; eco-info lookup succeeded, - (let ((a0-6 (-> tag elt-count))) - ;; first thing is pickup type, it's always there - (set! (-> obj pickup-type) (the-as pickup-type (-> v1-6 0))) - ;; pickup amount is optional. - (set! pkup-amount (if (< (the-as uint 1) (the-as uint a0-6)) - (the float (-> v1-6 1)) - pkup-amount - ) - ) - ) - (set! (-> obj pickup-amount) pkup-amount) - ) - (else - ;; no eco-info, use stuff from args - (set! (-> obj pickup-type) pkup-type) - (set! (-> obj pickup-amount) pkup-amount) - ) - ) - ) - - ;; read the options - (set! (-> obj options) (res-lump-value ent 'options uint)) - - ;; TODO - some enum bitfield here. - (if (nonzero? (logand #x80200 (the-as int (-> obj options)))) - (set! (-> obj fade-time) (the-as uint (the int (* 300.0 (res-lump-float ent 'timeout))))) - ) + ;; allocate. + (let ((obj (object-new allocation type-to-make (the-as int (-> type-to-make size))))) + (let ((ent (the res-lump (-> proc entity)))) + ;; confirm that we allocated successfully + (when (zero? obj) + (go process-drawable-art-error "memory") + ;; this is already true... + (set! obj (the-as fact-info 0)) + (goto cfg-10) ) - (label cfg-10) - obj + ;; remember who we belong to + (set! (-> obj process) proc) + + ;; eco may override the pickup type and amount, so try to get this. + (let ((v1-6 (res-lump-data ent 'eco-info (pointer int32) :tag-ptr (& tag) :time 0.0))) + (cond + (v1-6 + ;; eco-info lookup succeeded, + (let ((a0-6 (-> tag elt-count))) + ;; first thing is pickup type, it's always there + (set! (-> obj pickup-type) (the-as pickup-type (-> v1-6 0))) + ;; pickup amount is optional. + (set! pkup-amount (if (< (the-as uint 1) (the-as uint a0-6)) + (the float (-> v1-6 1)) + pkup-amount + ) + ) + ) + (set! (-> obj pickup-amount) pkup-amount) + ) + (else + ;; no eco-info, use stuff from args + (set! (-> obj pickup-type) pkup-type) + (set! (-> obj pickup-amount) pkup-amount) + ) + ) + ) + + ;; read the options + (set! (-> obj options) (res-lump-value ent 'options uint)) + + ;; TODO - some enum bitfield here. + (if (nonzero? (logand #x80200 (the-as int (-> obj options)))) + (set! (-> obj fade-time) (the-as uint (the int (* 300.0 (res-lump-float ent 'timeout))))) + ) ) + + (label cfg-10) + obj ) ) diff --git a/goal_src/engine/game/game-h.gc b/goal_src/engine/game/game-h.gc index 31438ff196..a59d48eb93 100644 --- a/goal_src/engine/game/game-h.gc +++ b/goal_src/engine/game/game-h.gc @@ -33,11 +33,21 @@ ;; inherited inspect of process (:methods (deactivate (_type_) none 10) - (dummy-14 (_type_ skeleton-group object) none 14) + ;; add-art? + (dummy-14 (_type_ skeleton-group object) none 14) ;; I think skeleton group is too specific. + + ;; load skeleton group? (dummy-15 (_type_ string object) _type_ 15) + + ;; apply velocity offset? + ;; probably a transformq (dummy-16 (_type_ int (inline-array vector) vector) collide-shape 16) + + ;; something with cspace (dummy-17 (_type_) none 17) (dummy-18 (_type_) symbol 18) + + ;; something with animation (dummy-19 (_type_) none 19) ) ) diff --git a/goal_src/engine/geometry/vol-h.gc b/goal_src/engine/geometry/vol-h.gc index 16e3ed1f25..d6684f194e 100644 --- a/goal_src/engine/geometry/vol-h.gc +++ b/goal_src/engine/geometry/vol-h.gc @@ -52,127 +52,93 @@ ;; INFO: Return type mismatch object vs vol-control. ;; Used lq/sq (defmethod new vol-control ((allocation symbol) (type-to-make type) (arg0 process-drawable)) - (with-pp - (let ((gp-0 (the-as object (object-new allocation type-to-make (the-as int (-> type-to-make size)))))) - (if (zero? (the-as vol-control gp-0)) - (begin - (let ((t9-1 (the-as (function object object) enter-state)) - (a0-1 "memory") - ) - (set! (-> pp next-state) process-drawable-art-error) - (t9-1 a0-1) - ) - (set! gp-0 0) - (goto cfg-13) + (let ((gp-0 (the-as object (object-new allocation type-to-make (the-as int (-> type-to-make size)))))) + (when (zero? (the-as vol-control gp-0)) + (go process-drawable-art-error "memory") + (set! gp-0 0) + (goto cfg-13) + ) + (set! (-> (the-as vol-control gp-0) process) arg0) + (let* ((s5-1 (the-as res-lump (-> (the-as vol-control gp-0) process entity))) + (s4-0 (-> (lookup-tag-idx (the-as entity s5-1) 'vol 'exact 0.0) lo)) + ) + (when (>= (the-as int s4-0) 0) + (let ((s3-0 (the-as uint s4-0)) + (s2-0 (-> s5-1 tag s4-0)) + ) + 0 + (while (= (-> s2-0 name) (-> s5-1 tag s4-0 name)) + (let + ((v1-12 + (make-property-data + s5-1 + 0.0 + (the-as res-tag-pair s3-0) + (the-as pointer #f) ) ) - (set! (-> (the-as vol-control gp-0) process) arg0) - (let* ((s5-1 (-> (the-as vol-control gp-0) process entity)) - (s4-0 - (-> - ((method-of-type res-lump lookup-tag-idx) - (the-as res-lump s5-1) - 'vol - 'exact - 0.0 - ) - lo - ) - ) - ) - (when (>= s4-0 0) - (let ((s3-0 s4-0) - (s2-0 (-> (-> (the-as res-lump s5-1) tag) s4-0)) - ) - (let ((v1-10 0)) - ) - (while (= (-> s2-0 name) (-> (-> (the-as res-lump s5-1) tag) s4-0 name)) - (let - ((v1-12 - (make-property-data - (the-as res-lump s5-1) - 0.0 - (the-as res-tag-pair s3-0) - (the-as pointer #f) - ) - ) - (a0-8 - (-> - (the-as vol-control gp-0) - pos-vol - (-> (the-as vol-control gp-0) pos-vol-count) - ) - ) - ) - (set! (-> a0-8 num-planes) (the-as int (-> s2-0 elt-count))) - (set! (-> a0-8 plane) (the-as uint v1-12)) - ) - (set! - (-> (the-as vol-control gp-0) pos-vol-count) - (+ (-> (the-as vol-control gp-0) pos-vol-count) 1) - ) - (+! s3-0 1) - (set! s2-0 (-> (-> (the-as res-lump s5-1) tag) s3-0)) - ) - ) + (a0-8 + (-> + (the-as vol-control gp-0) + pos-vol + (-> (the-as vol-control gp-0) pos-vol-count) + ) ) + ) + (set! (-> a0-8 num-planes) (the-as int (-> s2-0 elt-count))) + (set! (-> a0-8 plane) (the-as uint v1-12)) ) - (let* ((s5-2 (-> (the-as vol-control gp-0) process entity)) - (s4-1 - (-> - ((method-of-type res-lump lookup-tag-idx) - (the-as res-lump s5-2) - 'cutoutvol - 'exact - 0.0 - ) - lo - ) - ) - ) - (when (>= s4-1 0) - (let ((s3-1 s4-1) - (s2-1 (-> (-> (the-as res-lump s5-2) tag) s4-1)) - ) - (let ((v1-29 0)) - ) - (while (= (-> s2-1 name) (-> (-> (the-as res-lump s5-2) tag) s4-1 name)) - (let - ((v1-31 - (make-property-data - (the-as res-lump s5-2) - 0.0 - (the-as res-tag-pair s3-1) - (the-as pointer #f) - ) - ) - (a0-19 - (-> - (the-as vol-control gp-0) - neg-vol - (-> (the-as vol-control gp-0) neg-vol-count) - ) - ) - ) - (set! (-> a0-19 num-planes) (the-as int (-> s2-1 elt-count))) - (set! (-> a0-19 plane) (the-as uint v1-31)) - ) - (set! - (-> (the-as vol-control gp-0) neg-vol-count) - (+ (-> (the-as vol-control gp-0) neg-vol-count) 1) - ) - (+! s3-1 1) - (set! s2-1 (-> (-> (the-as res-lump s5-2) tag) s3-1)) - ) - ) - ) - ) - (label cfg-13) - (the-as vol-control gp-0) + (+! (-> (the-as vol-control gp-0) pos-vol-count) 1) + (+! s3-0 1) + (set! s2-0 (-> s5-1 tag s3-0)) + ) ) + ) ) + (let* ((s5-2 (the-as res-lump (-> (the-as vol-control gp-0) process entity))) + (s4-1 + (-> (lookup-tag-idx (the-as entity s5-2) 'cutoutvol 'exact 0.0) lo) + ) + ) + (when (>= (the-as int s4-1) 0) + (let ((s3-1 (the-as uint s4-1)) + (s2-1 (-> s5-2 tag s4-1)) + ) + 0 + (while (= (-> s2-1 name) (-> s5-2 tag s4-1 name)) + (let + ((v1-31 + (make-property-data + s5-2 + 0.0 + (the-as res-tag-pair s3-1) + (the-as pointer #f) + ) + ) + (a0-19 + (-> + (the-as vol-control gp-0) + neg-vol + (-> (the-as vol-control gp-0) neg-vol-count) + ) + ) + ) + (set! (-> a0-19 num-planes) (the-as int (-> s2-1 elt-count))) + (set! (-> a0-19 plane) (the-as uint v1-31)) + ) + (+! (-> (the-as vol-control gp-0) neg-vol-count) 1) + (+! s3-1 1) + (set! s2-1 (-> s5-2 tag s3-1)) + ) + ) + ) + ) + (label cfg-13) + (the-as vol-control gp-0) + ) ) + ;; definition for method 11 of type vol-control (defmethod TODO-RENAME-11 vol-control ((obj vol-control)) (and *display-vol-marks* (nonzero? (logand (-> obj flags) 1))) diff --git a/goal_src/engine/gfx/lights.gc b/goal_src/engine/gfx/lights.gc index a4ca0e5fb4..62ce671ca5 100644 --- a/goal_src/engine/gfx/lights.gc +++ b/goal_src/engine/gfx/lights.gc @@ -40,12 +40,9 @@ out ) -(defun light-group-process! ((lights vu-lights) (group light-group) (vector-1 vector) (vector-2 vector)) - "Unused - Seems to do effectively nothing" - ;; NOTE - dead code - ;; (let ((f0-0 (rotate-y<-vector+vector arg3 arg2))) - ;; ) - (vu-lights<-light-group! lights group) +(defun light-group-process! ((arg0 vu-lights) (arg1 light-group) (arg2 vector) (arg3 vector)) + (rotate-y<-vector+vector arg3 arg2) + (vu-lights<-light-group! arg0 arg1) (none) ) diff --git a/goal_src/engine/level/level.gc b/goal_src/engine/level/level.gc index 36be64cba9..4868cd9e7d 100644 --- a/goal_src/engine/level/level.gc +++ b/goal_src/engine/level/level.gc @@ -549,7 +549,7 @@ (1+! (-> level-login-state elts)) ) (else - (dummy-9 (-> current-drawable data idx-in-drawable)) + (login (-> current-drawable data idx-in-drawable)) ) ) ) @@ -561,7 +561,7 @@ (1+! (-> level-login-state elts)) ) (else - (dummy-9 (the-as drawable current-drawable)) + (login (the-as drawable current-drawable)) ) ) ) @@ -594,7 +594,7 @@ ((< (the-as int current-login-pos) (-> (the-as drawable-inline-array-tfrag s1-1) length)) (dotimes (s0-0 200) (when (< (the-as int current-login-pos) (-> (the-as drawable-inline-array-tfrag s1-1) length)) - (dummy-9 (-> (the-as drawable-inline-array-tfrag s1-1) data (the-as uint current-login-pos))) + (login (-> (the-as drawable-inline-array-tfrag s1-1) data (the-as uint current-login-pos))) (1+! current-login-pos) ) ) @@ -616,7 +616,7 @@ (dotimes (sv-32 4) (let ((a0-28 (-> sv-16 geometry sv-32))) (if (nonzero? a0-28) - (dummy-9 a0-28) + (login a0-28) ) ) ) diff --git a/goal_src/engine/target/joint-mod-h.gc b/goal_src/engine/target/joint-mod-h.gc index 2f0e4fcd4f..477544432b 100644 --- a/goal_src/engine/target/joint-mod-h.gc +++ b/goal_src/engine/target/joint-mod-h.gc @@ -177,19 +177,15 @@ (defmethod set-trs! joint-mod ((obj joint-mod) (trans vector) (rot quaternion) (scale vector)) "Set the translation, rotation, and scale." - (when trans - (let ((v1-1 (-> obj trans))) - (set! (-> v1-1 quad) (-> trans quad)) - ) - ) + (if trans + (set! (-> obj trans quad) (-> trans quad)) + ) (if rot - (quaternion-copy! (-> obj quat) rot) - ) - (when scale - (let ((v1-5 (-> obj scale))) - (set! (-> v1-5 quad) (-> scale quad)) - ) - ) + (quaternion-copy! (-> obj quat) rot) + ) + (if scale + (set! (-> obj scale quad) (-> scale quad)) + ) (none) ) @@ -203,9 +199,7 @@ ;; how far are we from the target? (let ((distance (vector-vector-distance (-> obj process root trans) target-trans))) (set! (-> obj shutting-down?) #f) - (let ((v1-6 (-> obj target))) - (set! (-> v1-6 quad) (-> target-trans quad)) - ) + (set! (-> obj target quad) (-> target-trans quad)) (if (< distance (-> obj max-dist)) (set! (-> obj blend) 1.0) ;; in range, set blend to 1.0 to start (set! (-> obj blend) 0.0) ;; not in range, set blend to 0.0 to disable. @@ -259,17 +253,16 @@ ;; success! we consider this a noticed and remember when (set! (-> obj notice-time) (-> *display* base-frame-counter)) ;; and update the look at data - (let ((ppointer (the-as (pointer process) - (if proc - (the-as (pointer process) (-> proc ppointer)) - ) - ) - ) - ) - (set! (-> last-try-to-look-at-data who) - (new 'static 'handle :process ppointer :pid (-> ppointer 0 pid)) - ) + (let ((v1-12 (if proc + (-> proc ppointer) + ) ) + ) + (set! + (-> last-try-to-look-at-data who) + (new 'static 'handle :process v1-12 :pid (-> v1-12 0 pid)) + ) + ) ;; not sure what these are yet. (if (< (-> last-try-to-look-at-data vert) (-> enemy-facts cam-vert)) (set! (-> last-try-to-look-at-data vert) (-> enemy-facts cam-vert)) @@ -302,9 +295,7 @@ (set-mode! obj (joint-mod-handler-mode look-at)) ) ;; set our target. - (let ((v1-37 (-> obj target))) - (set! (-> v1-37 quad) (-> target-trans quad)) - ) + (set! (-> obj target quad) (-> target-trans quad)) ;; activate us. (set! (-> obj blend) 1.0) (set! (-> obj shutting-down?) #f) @@ -695,38 +686,33 @@ ) ) -;; todo needs better vector-dot stuff (defun joint-mod-wheel-callback ((arg0 cspace) (arg1 transformq)) - (local-vars (f0-3 float)) (let ((s4-0 (the-as joint-mod-wheel (-> arg0 param1)))) - (let ((v1-1 (-> s4-0 process root)) - (s1-0 (new-stack-vector0)) - (s3-0 (new-stack-vector0)) - (s2-0 (new-stack-vector0)) - ) - (let ((f0-0 0.0)) - ) - (let ((f0-1 0.0)) - ) - (vector-z-quaternion! s2-0 (-> v1-1 quat)) - (vector<-cspace! s1-0 arg0) - (vector-! s3-0 s1-0 (-> s4-0 last-position)) - (set! (-> s4-0 last-position quad) (-> s1-0 quad)) - (set! f0-3 (vector-dot s2-0 s3-0)) - ) - (let* ((f0-4 f0-3) - (f1-1 65536.0) - (f2-2 (* 6.28318 (-> s4-0 wheel-radius))) - (f0-5 (* (* f1-1 (/ 1.0 f2-2)) f0-4)) + (let ((v1-1 (-> s4-0 process root)) + (s1-0 (new-stack-vector0)) + (s3-0 (new-stack-vector0)) + (s2-0 (new-stack-vector0)) + ) + 0.0 + 0.0 + (vector-z-quaternion! s2-0 (-> v1-1 quat)) + (vector<-cspace! s1-0 arg0) + (vector-! s3-0 s1-0 (-> s4-0 last-position)) + (set! (-> s4-0 last-position quad) (-> s1-0 quad)) + (let* ((f0-3 (vector-dot s2-0 s3-0)) + (f1-0 65536.0) + (f2-1 (* 6.28318 (-> s4-0 wheel-radius))) + (f0-4 (* (* f1-0 (/ 1.0 f2-1)) f0-3)) ) - (set! (-> s4-0 angle) (+ (-> s4-0 angle) f0-5)) - ) - (quaternion-vector-angle! - (-> arg1 quat) - (-> *joint-axis-vectors* (-> s4-0 wheel-axis)) - (-> s4-0 angle) + (+! (-> s4-0 angle) f0-4) ) ) + (quaternion-vector-angle! + (-> arg1 quat) + (-> *joint-axis-vectors* (-> s4-0 wheel-axis)) + (-> s4-0 angle) + ) + ) (cspace<-parented-transformq-joint! arg0 arg1) (none) ) diff --git a/goal_src/engine/target/pat-h.gc b/goal_src/engine/target/pat-h.gc index 0a03788be6..11ca7157e8 100644 --- a/goal_src/engine/target/pat-h.gc +++ b/goal_src/engine/target/pat-h.gc @@ -5,6 +5,9 @@ ;; name in dgo: pat-h ;; dgos: GAME, ENGINE +;; The "pat" system is used to classify terrain. +;; These are likely stored as part of the level data, so they are quite compact. + (defenum pat-material :type uint8 (stone) diff --git a/goal_src/engine/target/surface-h.gc b/goal_src/engine/target/surface-h.gc index 22c7cfbb5b..ec2cafc7dc 100644 --- a/goal_src/engine/target/surface-h.gc +++ b/goal_src/engine/target/surface-h.gc @@ -105,13 +105,21 @@ ;; if there is no good hook, set it to nothing. (dotimes (v1-3 4) (set! (-> dst hook v1-3) - (if (and (nonzero? (-> src1 hook v1-3)) (!= (-> src1 hook v1-3) nothing)) - (-> src1 hook v1-3) - (if (and (nonzero? (-> src0 hook v1-3)) (!= (-> src0 hook v1-3) nothing)) - (-> src0 hook v1-3) - nothing + (cond + ((and (nonzero? (-> src1 hook v1-3)) + (!= (-> src1 hook v1-3) nothing) ) - ) + (-> src1 hook v1-3) + ) + ((and (nonzero? (-> src0 hook v1-3)) + (!= (-> src0 hook v1-3) nothing) + ) + (-> src0 hook v1-3) + ) + (else + nothing + ) + ) ) ) diff --git a/goal_src/kernel-defs.gc b/goal_src/kernel-defs.gc index 4c411c99ac..5ad5df8681 100644 --- a/goal_src/kernel-defs.gc +++ b/goal_src/kernel-defs.gc @@ -227,13 +227,15 @@ (death 24) ;; 16777216 ) +(declare-type process basic) + (deftype process-tree (basic) ((name basic :offset-assert 4) (mask process-mask :offset-assert 8) (parent (pointer process-tree) :offset-assert 12) (brother (pointer process-tree) :offset-assert 16) (child (pointer process-tree) :offset-assert 20) - (ppointer (pointer process-tree) :offset-assert 24) + (ppointer (pointer process) :offset-assert 24) (self process-tree :offset-assert 28) ) diff --git a/goal_src/kernel/gkernel-h.gc b/goal_src/kernel/gkernel-h.gc index 14eb48d8fd..9c2fa5f505 100644 --- a/goal_src/kernel/gkernel-h.gc +++ b/goal_src/kernel/gkernel-h.gc @@ -204,7 +204,7 @@ (parent (pointer process-tree) :offset-assert 12) (brother (pointer process-tree) :offset-assert 16) (child (pointer process-tree) :offset-assert 20) - (ppointer (pointer process-tree) :offset-assert 24) + (ppointer (pointer process) :offset-assert 24) (self process-tree :offset-assert 28) ) diff --git a/goal_src/kernel/gkernel.gc b/goal_src/kernel/gkernel.gc index a5f7334fa7..9e2535c178 100644 --- a/goal_src/kernel/gkernel.gc +++ b/goal_src/kernel/gkernel.gc @@ -371,7 +371,7 @@ (set! (-> obj child) #f) (set! (-> obj self) obj) - (set! (-> obj ppointer) (&-> obj self)) + (set! (-> obj ppointer) (the (pointer process) (&-> obj self))) obj ) ) @@ -436,7 +436,7 @@ ;; setup reference stuff. (set! (-> obj self) obj) - (set! (-> obj ppointer) (&-> obj self)) + (set! (-> obj ppointer) (the (pointer process) (&-> obj self))) obj ) ) @@ -910,7 +910,7 @@ (set! (-> obj child) #f) ;; setup ref (set! (-> obj self) obj) - (set! (-> obj ppointer) (&-> obj self)) + (set! (-> obj ppointer) (the (pointer process) (&-> obj self))) (dotimes (i count) ;; create each process @@ -994,7 +994,7 @@ (set! (-> obj child) #f) (set! (-> obj self) obj) - (set! (-> obj ppointer) (&-> obj self)) + (set! (-> obj ppointer) (the (pointer process) (&-> obj self))) ;; initialize each process handle ;; build them into a linked list of null-process diff --git a/test/decompiler/reference/decompiler-macros.gc b/test/decompiler/reference/decompiler-macros.gc index 258c10976d..6778c18b22 100644 --- a/test/decompiler/reference/decompiler-macros.gc +++ b/test/decompiler/reference/decompiler-macros.gc @@ -205,4 +205,11 @@ (set! (-> vec y) ,yv) (set! (-> vec z) ,zv) (set! (-> vec w) ,wv))) - ) \ No newline at end of file + ) + +(defmacro go (next-state &rest args) + `(with-pp + (set! (-> pp next-state) ,next-state) + ((the (function _varargs_ object) enter-state) ,@args) + ) + ) \ No newline at end of file diff --git a/test/decompiler/reference/engine/anim/aligner-h_REF.gc b/test/decompiler/reference/engine/anim/aligner-h_REF.gc index adfa6b29ac..952034830d 100644 --- a/test/decompiler/reference/engine/anim/aligner-h_REF.gc +++ b/test/decompiler/reference/engine/anim/aligner-h_REF.gc @@ -53,12 +53,7 @@ ) ) (when (zero? obj) - (let ((t9-1 (the-as (function object object) enter-state)) - (a0-1 "memory") - ) - (set! (-> self next-state) process-drawable-art-error) - (t9-1 a0-1) - ) + (go process-drawable-art-error "memory") (return (the-as align-control 0)) ) (set! (-> obj process) (the-as process-drawable arg0)) diff --git a/test/decompiler/reference/engine/collide/collide-frag_REF.gc b/test/decompiler/reference/engine/collide/collide-frag_REF.gc index c7a281be76..3039343eae 100644 --- a/test/decompiler/reference/engine/collide/collide-frag_REF.gc +++ b/test/decompiler/reference/engine/collide/collide-frag_REF.gc @@ -3,7 +3,7 @@ ;; definition for method 9 of type drawable-tree-collide-fragment (defmethod - dummy-9 + login drawable-tree-collide-fragment ((obj drawable-tree-collide-fragment)) obj @@ -11,12 +11,12 @@ ;; definition for method 10 of type drawable-tree-collide-fragment (defmethod - dummy-10 + draw drawable-tree-collide-fragment ((obj drawable-tree-collide-fragment) (arg0 drawable) (arg1 display-frame)) (when *display-render-collision* (dotimes (s4-0 (-> obj length)) - (dummy-10 (-> obj data s4-0) (-> obj data s4-0) arg1) + (draw (-> obj data s4-0) (-> obj data s4-0) arg1) ) ) 0 @@ -102,7 +102,7 @@ ;; definition for method 9 of type drawable-inline-array-collide-fragment (defmethod - dummy-9 + login drawable-inline-array-collide-fragment ((obj drawable-inline-array-collide-fragment)) obj @@ -110,7 +110,7 @@ ;; definition for method 10 of type collide-fragment (defmethod - dummy-10 + draw collide-fragment ((obj collide-fragment) (arg0 drawable) (arg1 display-frame)) 0 @@ -118,7 +118,7 @@ ;; definition for method 10 of type drawable-inline-array-collide-fragment (defmethod - dummy-10 + draw drawable-inline-array-collide-fragment ((obj drawable-inline-array-collide-fragment) (arg0 drawable) @@ -127,7 +127,7 @@ (dotimes (s4-0 (-> obj length)) (let ((s3-0 (-> obj data s4-0))) (if (sphere-cull (-> s3-0 bsphere)) - (dummy-10 s3-0 s3-0 arg1) + (draw s3-0 s3-0 arg1) ) ) ) diff --git a/test/decompiler/reference/engine/collide/collide-mesh-h_REF.gc b/test/decompiler/reference/engine/collide/collide-mesh-h_REF.gc index 364cff33c6..e75c44497b 100644 --- a/test/decompiler/reference/engine/collide/collide-mesh-h_REF.gc +++ b/test/decompiler/reference/engine/collide/collide-mesh-h_REF.gc @@ -3,10 +3,10 @@ ;; definition of type collide-tri-result (deftype collide-tri-result (structure) - ((vertex vector 3 :inline :offset-assert 0) - (intersect vector :inline :offset-assert 48) - (normal vector :inline :offset-assert 64) - (pat uint32 :offset-assert 80) + ((vertex vector 3 :inline :offset-assert 0) + (intersect vector :inline :offset-assert 48) + (normal vector :inline :offset-assert 64) + (pat pat-surface :offset-assert 80) ) :method-count-assert 9 :size-assert #x54 @@ -25,9 +25,9 @@ ;; definition of type collide-mesh-tri (deftype collide-mesh-tri (structure) - ((vertex-index uint8 3 :offset-assert 0) - (unused uint8 :offset-assert 3) - (pat uint32 :offset-assert 4) + ((vertex-index uint8 3 :offset-assert 0) + (unused uint8 :offset-assert 3) + (pat pat-surface :offset-assert 4) ) :pack-me :method-count-assert 9 @@ -117,7 +117,7 @@ ((vertex vector 3 :inline :offset-assert 0) (normal vector :inline :offset-assert 48) (bbox4w bounding-box4w :inline :offset-assert 64) - (pat uint32 :offset 60) + (pat pat-surface :offset 60) ) :method-count-assert 9 :size-assert #x60 diff --git a/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc b/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc index 4f33a22fc8..8533f1126c 100644 --- a/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc +++ b/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc @@ -283,7 +283,7 @@ ;; definition of type collide-shape-prim-sphere (deftype collide-shape-prim-sphere (collide-shape-prim) - ((pat uint32 :offset-assert 72) + ((pat pat-surface :offset-assert 72) ) :method-count-assert 28 :size-assert #x4c @@ -389,17 +389,17 @@ ;; definition of type collide-shape (deftype collide-shape (trsqv) - ((process process :offset-assert 140) - (max-iteration-count uint8 :offset-assert 144) - (nav-flags uint8 :offset-assert 145) - (pad-byte uint8 2 :offset-assert 146) - (pat-ignore-mask uint32 :offset-assert 148) - (event-self basic :offset-assert 152) - (event-other basic :offset-assert 156) - (root-prim basic :offset-assert 160) - (riders basic :offset-assert 164) - (backup-collide-as uint64 :offset-assert 168) - (backup-collide-with uint64 :offset-assert 176) + ((process process :offset-assert 140) + (max-iteration-count uint8 :offset-assert 144) + (nav-flags uint8 :offset-assert 145) + (pad-byte uint8 2 :offset-assert 146) + (pat-ignore-mask pat-surface :offset-assert 148) + (event-self basic :offset-assert 152) + (event-other basic :offset-assert 156) + (root-prim basic :offset-assert 160) + (riders basic :offset-assert 164) + (backup-collide-as uint64 :offset-assert 168) + (backup-collide-with uint64 :offset-assert 176) ) :method-count-assert 56 :size-assert #xb8 @@ -472,31 +472,31 @@ ;; definition of type collide-shape-moving (deftype collide-shape-moving (collide-shape) - ((rider-time uint64 :offset-assert 184) - (rider-last-move vector :inline :offset-assert 192) - (trans-old vector 3 :inline :offset-assert 208) - (poly-pat uint32 :offset-assert 256) - (cur-pat uint32 :offset-assert 260) - (ground-pat uint32 :offset-assert 264) - (status uint64 :offset-assert 272) - (old-status uint64 :offset-assert 280) - (prev-status uint64 :offset-assert 288) - (reaction-flag uint32 :offset-assert 296) - (reaction basic :offset-assert 300) - (no-reaction basic :offset-assert 304) - (local-normal vector :inline :offset-assert 320) - (surface-normal vector :inline :offset-assert 336) - (poly-normal vector :inline :offset-assert 352) - (ground-poly-normal vector :inline :offset-assert 368) - (ground-touch-point vector :inline :offset-assert 384) - (shadow-pos vector :inline :offset-assert 400) - (ground-impact-vel meters :offset-assert 416) - (surface-angle float :offset-assert 420) - (poly-angle float :offset-assert 424) - (touch-angle float :offset-assert 428) - (coverage float :offset-assert 432) - (dynam basic :offset-assert 436) - (surf basic :offset-assert 440) + ((rider-time uint64 :offset-assert 184) + (rider-last-move vector :inline :offset-assert 192) + (trans-old vector 3 :inline :offset-assert 208) + (poly-pat pat-surface :offset-assert 256) + (cur-pat pat-surface :offset-assert 260) + (ground-pat pat-surface :offset-assert 264) + (status uint64 :offset-assert 272) + (old-status uint64 :offset-assert 280) + (prev-status uint64 :offset-assert 288) + (reaction-flag uint32 :offset-assert 296) + (reaction basic :offset-assert 300) + (no-reaction basic :offset-assert 304) + (local-normal vector :inline :offset-assert 320) + (surface-normal vector :inline :offset-assert 336) + (poly-normal vector :inline :offset-assert 352) + (ground-poly-normal vector :inline :offset-assert 368) + (ground-touch-point vector :inline :offset-assert 384) + (shadow-pos vector :inline :offset-assert 400) + (ground-impact-vel meters :offset-assert 416) + (surface-angle float :offset-assert 420) + (poly-angle float :offset-assert 424) + (touch-angle float :offset-assert 428) + (coverage float :offset-assert 432) + (dynam basic :offset-assert 436) + (surf basic :offset-assert 440) ) :method-count-assert 65 :size-assert #x1bc @@ -615,7 +615,7 @@ ) ) ) - (set! (-> obj pat) (the-as uint 16)) + (set! (-> obj pat) (new 'static 'pat-surface :mode (pat-mode obstacle))) (set! (-> obj prim-core prim-type) -1) (the-as collide-shape-prim-sphere obj) ) @@ -728,10 +728,16 @@ (set! (-> obj root-prim) #f) (case (-> proc type symbol) (('camera) - (set! (-> obj pat-ignore-mask) (the-as uint 2)) + (set! + (-> obj pat-ignore-mask) + (new 'static 'pat-surface :skip #x2 :nocamera #x1) + ) ) (else - (set! (-> obj pat-ignore-mask) (the-as uint 1)) + (set! + (-> obj pat-ignore-mask) + (new 'static 'pat-surface :skip #x1 :noentity #x1) + ) ) ) (set! (-> obj trans w) 1.0) diff --git a/test/decompiler/reference/engine/collide/collide-target-h_REF.gc b/test/decompiler/reference/engine/collide/collide-target-h_REF.gc index 4e674ada5c..e52de0bdb5 100644 --- a/test/decompiler/reference/engine/collide/collide-target-h_REF.gc +++ b/test/decompiler/reference/engine/collide/collide-target-h_REF.gc @@ -3,16 +3,16 @@ ;; definition of type collide-history (deftype collide-history (structure) - ((intersect vector :inline :offset-assert 0) - (trans vector :inline :offset-assert 16) - (transv vector :inline :offset-assert 32) - (transv-out vector :inline :offset-assert 48) - (local-normal vector :inline :offset-assert 64) - (surface-normal vector :inline :offset-assert 80) - (time uint64 :offset-assert 96) - (status uint64 :offset-assert 104) - (pat uint32 :offset-assert 112) - (reaction-flag uint32 :offset-assert 116) + ((intersect vector :inline :offset-assert 0) + (trans vector :inline :offset-assert 16) + (transv vector :inline :offset-assert 32) + (transv-out vector :inline :offset-assert 48) + (local-normal vector :inline :offset-assert 64) + (surface-normal vector :inline :offset-assert 80) + (time uint64 :offset-assert 96) + (status uint64 :offset-assert 104) + (pat pat-surface :offset-assert 112) + (reaction-flag uint32 :offset-assert 116) ) :method-count-assert 10 :size-assert #x78 diff --git a/test/decompiler/reference/engine/draw/drawable-actor-h_REF.gc b/test/decompiler/reference/engine/draw/drawable-actor-h_REF.gc index cfacb9db8f..0a2463eabd 100644 --- a/test/decompiler/reference/engine/draw/drawable-actor-h_REF.gc +++ b/test/decompiler/reference/engine/draw/drawable-actor-h_REF.gc @@ -39,7 +39,7 @@ ;; definition for method 10 of type drawable-tree-actor (defmethod - dummy-10 + draw drawable-tree-actor ((obj drawable-tree-actor) (arg0 drawable) (arg1 display-frame)) 0 diff --git a/test/decompiler/reference/engine/draw/drawable-ambient-h_REF.gc b/test/decompiler/reference/engine/draw/drawable-ambient-h_REF.gc index 447ff3b8ee..1055c0fdf4 100644 --- a/test/decompiler/reference/engine/draw/drawable-ambient-h_REF.gc +++ b/test/decompiler/reference/engine/draw/drawable-ambient-h_REF.gc @@ -42,7 +42,7 @@ ;; definition for method 10 of type drawable-tree-ambient (defmethod - dummy-10 + draw drawable-tree-ambient ((obj drawable-tree-ambient) (arg0 drawable) (arg1 display-frame)) 0 diff --git a/test/decompiler/reference/engine/draw/drawable-h_REF.gc b/test/decompiler/reference/engine/draw/drawable-h_REF.gc index deb9f044e5..ceb774e45e 100644 --- a/test/decompiler/reference/engine/draw/drawable-h_REF.gc +++ b/test/decompiler/reference/engine/draw/drawable-h_REF.gc @@ -10,8 +10,8 @@ :size-assert #x20 :flag-assert #x1200000020 (:methods - (dummy-9 (_type_) _type_ 9) - (dummy-10 (_type_ drawable display-frame) int 10) + (login (_type_) _type_ 9) + (draw (_type_ drawable display-frame) int 10) (dummy-11 (_type_ int) none 11) (dummy-12 (_type_ int) none 12) (dummy-13 (_type_ int) none 13) diff --git a/test/decompiler/reference/engine/draw/drawable-inline-array_REF.gc b/test/decompiler/reference/engine/draw/drawable-inline-array_REF.gc index c05d53d402..e75ec00306 100644 --- a/test/decompiler/reference/engine/draw/drawable-inline-array_REF.gc +++ b/test/decompiler/reference/engine/draw/drawable-inline-array_REF.gc @@ -7,13 +7,13 @@ ) ;; definition for method 9 of type drawable-inline-array -(defmethod dummy-9 drawable-inline-array ((obj drawable-inline-array)) +(defmethod login drawable-inline-array ((obj drawable-inline-array)) obj ) ;; definition for method 10 of type drawable-inline-array (defmethod - dummy-10 + draw drawable-inline-array ((obj drawable-inline-array) (arg0 drawable) (arg1 display-frame)) 0 @@ -32,7 +32,3 @@ 0 (none) ) - - - - diff --git a/test/decompiler/reference/engine/game/fact-h_REF.gc b/test/decompiler/reference/engine/game/fact-h_REF.gc index ec7405940e..249d7e5b11 100644 --- a/test/decompiler/reference/engine/game/fact-h_REF.gc +++ b/test/decompiler/reference/engine/game/fact-h_REF.gc @@ -243,99 +243,92 @@ (pkup-amount float) ) (local-vars (tag res-tag)) - (with-pp - (let - ((obj - (object-new allocation type-to-make (the-as int (-> type-to-make size))) + (let + ((obj + (object-new allocation type-to-make (the-as int (-> type-to-make size))) + ) + ) + (let ((ent (-> proc entity))) + (when (zero? obj) + (go process-drawable-art-error "memory") + (set! obj (the-as fact-info 0)) + (goto cfg-10) + ) + (set! (-> obj process) proc) + (set! tag (new 'static 'res-tag)) + (let + ((v1-6 + (the-as + (pointer int32) + ((method-of-type res-lump get-property-data) + ent + 'eco-info + 'interp + 0.0 + (the-as pointer #f) + (& tag) + *res-static-buf* + ) + ) + ) + ) + (cond + (v1-6 + (let ((a0-6 (-> tag elt-count))) + (set! (-> obj pickup-type) (the-as pickup-type (-> v1-6 0))) + (set! pkup-amount (cond + ((< (the-as uint 1) a0-6) + (the float (-> v1-6 1)) + ) + (else + (empty) + pkup-amount + ) + ) + ) + ) + (set! (-> obj pickup-amount) pkup-amount) + ) + (else + (set! (-> obj pickup-type) pkup-type) + (set! (-> obj pickup-amount) pkup-amount) + ) ) ) - (let ((ent (-> proc entity))) - (when (zero? obj) - (let ((go-func (the-as (function string none) enter-state)) - (a0-1 "memory") - ) - (set! (-> pp next-state) process-drawable-art-error) - (go-func a0-1) - ) - (set! obj (the-as fact-info 0)) - (goto cfg-10) - ) - (set! (-> obj process) proc) - (set! tag (new 'static 'res-tag)) - (let - ((v1-6 - (the-as - (pointer int32) - ((method-of-type res-lump get-property-data) - ent - 'eco-info - 'interp - 0.0 - (the-as pointer #f) - (& tag) - *res-static-buf* - ) - ) - ) - ) - (cond - (v1-6 - (let ((a0-6 (-> tag elt-count))) - (set! (-> obj pickup-type) (the-as pickup-type (-> v1-6 0))) - (set! pkup-amount (cond - ((< (the-as uint 1) a0-6) - (the float (-> v1-6 1)) - ) - (else - (empty) - pkup-amount - ) - ) - ) - ) - (set! (-> obj pickup-amount) pkup-amount) - ) - (else - (set! (-> obj pickup-type) pkup-type) - (set! (-> obj pickup-amount) pkup-amount) - ) + (set! + (-> obj options) + (the-as + uint + ((method-of-type res-lump get-property-value) + ent + 'options + 'interp + -1000000000.0 + (the-as uint128 0) + (the-as (pointer res-tag) #f) + *res-static-buf* ) ) + ) + (if (nonzero? (logand #x80200 (the-as int (-> obj options)))) (set! - (-> obj options) + (-> obj fade-time) (the-as uint - ((method-of-type res-lump get-property-value) - ent - 'options - 'interp - -1000000000.0 - (the-as uint128 0) - (the-as (pointer res-tag) #f) - *res-static-buf* - ) - ) - ) - (if (nonzero? (logand #x80200 (the-as int (-> obj options)))) - (set! - (-> obj fade-time) - (the-as - uint - (the - int - (* - 300.0 - (the-as - float - ((method-of-type res-lump get-property-value-float) - ent - 'timeout - 'interp - -1000000000.0 - 0.0 - (the-as (pointer res-tag) #f) - *res-static-buf* - ) + (the + int + (* + 300.0 + (the-as + float + ((method-of-type res-lump get-property-value-float) + ent + 'timeout + 'interp + -1000000000.0 + 0.0 + (the-as (pointer res-tag) #f) + *res-static-buf* ) ) ) @@ -343,9 +336,9 @@ ) ) ) - (label cfg-10) - obj ) + (label cfg-10) + obj ) ) diff --git a/test/decompiler/reference/engine/geometry/vol-h_REF.gc b/test/decompiler/reference/engine/geometry/vol-h_REF.gc index 50bdc5584c..0425525679 100644 --- a/test/decompiler/reference/engine/geometry/vol-h_REF.gc +++ b/test/decompiler/reference/engine/geometry/vol-h_REF.gc @@ -78,103 +78,96 @@ new vol-control ((allocation symbol) (type-to-make type) (arg0 process-drawable)) - (with-pp - (let - ((gp-0 - (the-as - object - (object-new allocation type-to-make (the-as int (-> type-to-make size))) - ) + (let + ((gp-0 + (the-as + object + (object-new allocation type-to-make (the-as int (-> type-to-make size))) ) ) - (when (zero? (the-as vol-control gp-0)) - (let ((t9-1 (the-as (function object object) enter-state)) - (a0-1 "memory") - ) - (set! (-> pp next-state) process-drawable-art-error) - (t9-1 a0-1) - ) - (set! gp-0 0) - (goto cfg-13) - ) - (set! (-> (the-as vol-control gp-0) process) arg0) - (let* - ((s5-1 (the-as res-lump (-> (the-as vol-control gp-0) process entity))) - (s4-0 (-> (lookup-tag-idx (the-as entity s5-1) 'vol 'exact 0.0) lo)) - ) - (when (>= (the-as int s4-0) 0) - (let ((s3-0 (the-as uint s4-0)) - (s2-0 (-> s5-1 tag s4-0)) - ) - 0 - (while (= (-> s2-0 name) (-> s5-1 tag s4-0 name)) - (let - ((v1-12 - (make-property-data - s5-1 - 0.0 - (the-as res-tag-pair s3-0) - (the-as pointer #f) - ) - ) - (a0-8 - (-> - (the-as vol-control gp-0) - pos-vol - (-> (the-as vol-control gp-0) pos-vol-count) - ) - ) - ) - (set! (-> a0-8 num-planes) (the-as int (-> s2-0 elt-count))) - (set! (-> a0-8 plane) (the-as uint v1-12)) - ) - (+! (-> (the-as vol-control gp-0) pos-vol-count) 1) - (+! s3-0 1) - (set! s2-0 (-> s5-1 tag s3-0)) - ) - ) - ) - ) - (let* - ((s5-2 (the-as res-lump (-> (the-as vol-control gp-0) process entity))) - (s4-1 (-> (lookup-tag-idx (the-as entity s5-2) 'cutoutvol 'exact 0.0) lo)) - ) - (when (>= (the-as int s4-1) 0) - (let ((s3-1 (the-as uint s4-1)) - (s2-1 (-> s5-2 tag s4-1)) - ) - 0 - (while (= (-> s2-1 name) (-> s5-2 tag s4-1 name)) - (let - ((v1-31 - (make-property-data - s5-2 - 0.0 - (the-as res-tag-pair s3-1) - (the-as pointer #f) - ) - ) - (a0-19 - (-> - (the-as vol-control gp-0) - neg-vol - (-> (the-as vol-control gp-0) neg-vol-count) - ) - ) - ) - (set! (-> a0-19 num-planes) (the-as int (-> s2-1 elt-count))) - (set! (-> a0-19 plane) (the-as uint v1-31)) - ) - (+! (-> (the-as vol-control gp-0) neg-vol-count) 1) - (+! s3-1 1) - (set! s2-1 (-> s5-2 tag s3-1)) - ) - ) - ) - ) - (label cfg-13) - (the-as vol-control gp-0) ) + (when (zero? (the-as vol-control gp-0)) + (go process-drawable-art-error "memory") + (set! gp-0 0) + (goto cfg-13) + ) + (set! (-> (the-as vol-control gp-0) process) arg0) + (let* ((s5-1 (the-as res-lump (-> (the-as vol-control gp-0) process entity))) + (s4-0 (-> (lookup-tag-idx (the-as entity s5-1) 'vol 'exact 0.0) lo)) + ) + (when (>= (the-as int s4-0) 0) + (let ((s3-0 (the-as uint s4-0)) + (s2-0 (-> s5-1 tag s4-0)) + ) + 0 + (while (= (-> s2-0 name) (-> s5-1 tag s4-0 name)) + (let + ((v1-12 + (make-property-data + s5-1 + 0.0 + (the-as res-tag-pair s3-0) + (the-as pointer #f) + ) + ) + (a0-8 + (-> + (the-as vol-control gp-0) + pos-vol + (-> (the-as vol-control gp-0) pos-vol-count) + ) + ) + ) + (set! (-> a0-8 num-planes) (the-as int (-> s2-0 elt-count))) + (set! (-> a0-8 plane) (the-as uint v1-12)) + ) + (+! (-> (the-as vol-control gp-0) pos-vol-count) 1) + (+! s3-0 1) + (set! s2-0 (-> s5-1 tag s3-0)) + ) + ) + ) + ) + (let* ((s5-2 (the-as res-lump (-> (the-as vol-control gp-0) process entity))) + (s4-1 + (-> (lookup-tag-idx (the-as entity s5-2) 'cutoutvol 'exact 0.0) lo) + ) + ) + (when (>= (the-as int s4-1) 0) + (let ((s3-1 (the-as uint s4-1)) + (s2-1 (-> s5-2 tag s4-1)) + ) + 0 + (while (= (-> s2-1 name) (-> s5-2 tag s4-1 name)) + (let + ((v1-31 + (make-property-data + s5-2 + 0.0 + (the-as res-tag-pair s3-1) + (the-as pointer #f) + ) + ) + (a0-19 + (-> + (the-as vol-control gp-0) + neg-vol + (-> (the-as vol-control gp-0) neg-vol-count) + ) + ) + ) + (set! (-> a0-19 num-planes) (the-as int (-> s2-1 elt-count))) + (set! (-> a0-19 plane) (the-as uint v1-31)) + ) + (+! (-> (the-as vol-control gp-0) neg-vol-count) 1) + (+! s3-1 1) + (set! s2-1 (-> s5-2 tag s3-1)) + ) + ) + ) + ) + (label cfg-13) + (the-as vol-control gp-0) ) ) diff --git a/test/decompiler/reference/engine/gfx/tie/prototype_REF.gc b/test/decompiler/reference/engine/gfx/tie/prototype_REF.gc index 8b56f3443c..cbfa4f619d 100644 --- a/test/decompiler/reference/engine/gfx/tie/prototype_REF.gc +++ b/test/decompiler/reference/engine/gfx/tie/prototype_REF.gc @@ -9,7 +9,7 @@ (dotimes (s3-0 4) (let ((a0-1 (-> s4-0 geometry s3-0))) (if (nonzero? a0-1) - (dummy-9 a0-1) + (login a0-1) ) ) ) @@ -33,7 +33,7 @@ ;; definition for method 9 of type prototype-inline-array-shrub (defmethod - dummy-9 + login prototype-inline-array-shrub ((obj prototype-inline-array-shrub)) (dotimes (s5-0 (-> obj length)) @@ -41,7 +41,7 @@ (dotimes (s3-0 4) (let ((a0-1 (-> s4-0 geometry s3-0))) (if (nonzero? a0-1) - (dummy-9 a0-1) + (login a0-1) ) ) ) diff --git a/test/decompiler/reference/engine/nav/navigate-h_REF.gc b/test/decompiler/reference/engine/nav/navigate-h_REF.gc index 5f7eea4ada..3be7752698 100644 --- a/test/decompiler/reference/engine/nav/navigate-h_REF.gc +++ b/test/decompiler/reference/engine/nav/navigate-h_REF.gc @@ -548,56 +548,49 @@ (sphere-count int) (nearest-y-threshold-default float) ) - (with-pp - (let - ((obj - (object-new - allocation - type-to-make - (the-as int (+ (-> type-to-make size) (the-as uint (* sphere-count 16)))) - ) + (let + ((obj + (object-new + allocation + type-to-make + (the-as int (+ (-> type-to-make size) (the-as uint (* sphere-count 16)))) ) ) - (when (zero? obj) - (let ((t9-1 (the-as function enter-state)) - (a0-1 "memory") - ) - (set! (-> pp next-state) process-drawable-art-error) - ((the-as (function string none) t9-1) a0-1) - ) - (set! obj (the-as nav-control 0)) - (goto cfg-4) - ) - (set! (-> obj max-spheres) sphere-count) - (set! (-> obj flags) (nav-control-flags bit8 bit13)) - (set! (-> obj mesh) (nav-mesh-connect (-> shape process) shape obj)) - (let ((ent (-> shape process entity))) - (set! - (-> obj nearest-y-threshold) - ((method-of-type res-lump get-property-value-float) - ent - 'nearest-y-threshold - 'interp - -1000000000.0 - nearest-y-threshold-default - (the-as (pointer res-tag) #f) - *res-static-buf* - ) - ) - ) - (set! (-> obj shape) shape) - (set! (-> obj process) (-> shape process)) - (set! (-> obj gap-event) #f) - (set! (-> obj current-poly) #f) - (set! (-> obj next-poly) #f) - (set! (-> obj target-poly) #f) - (set! (-> obj user-poly) #f) - (set! (-> obj portal 0) #f) - (set! (-> obj portal 1) #f) - (set! (-> obj nav-cull-radius) 40960.0) - (label cfg-4) - (the-as nav-control obj) ) + (when (zero? obj) + (go process-drawable-art-error "memory") + (set! obj (the-as nav-control 0)) + (goto cfg-4) + ) + (set! (-> obj max-spheres) sphere-count) + (set! (-> obj flags) (nav-control-flags bit8 bit13)) + (set! (-> obj mesh) (nav-mesh-connect (-> shape process) shape obj)) + (let ((ent (-> shape process entity))) + (set! + (-> obj nearest-y-threshold) + ((method-of-type res-lump get-property-value-float) + ent + 'nearest-y-threshold + 'interp + -1000000000.0 + nearest-y-threshold-default + (the-as (pointer res-tag) #f) + *res-static-buf* + ) + ) + ) + (set! (-> obj shape) shape) + (set! (-> obj process) (-> shape process)) + (set! (-> obj gap-event) #f) + (set! (-> obj current-poly) #f) + (set! (-> obj next-poly) #f) + (set! (-> obj target-poly) #f) + (set! (-> obj user-poly) #f) + (set! (-> obj portal 0) #f) + (set! (-> obj portal 1) #f) + (set! (-> obj nav-cull-radius) 40960.0) + (label cfg-4) + (the-as nav-control obj) ) ) diff --git a/test/decompiler/reference/engine/nav/path-h_REF.gc b/test/decompiler/reference/engine/nav/path-h_REF.gc index 5210d2736b..4f5d4c9b33 100644 --- a/test/decompiler/reference/engine/nav/path-h_REF.gc +++ b/test/decompiler/reference/engine/nav/path-h_REF.gc @@ -78,66 +78,59 @@ (time float) ) (local-vars (tag res-tag)) - (with-pp - (let - ((obj - (object-new allocation type-to-make (the-as int (-> type-to-make size))) - ) + (let + ((obj + (object-new allocation type-to-make (the-as int (-> type-to-make size))) ) - (when (zero? obj) - (let ((t9-1 (the-as function enter-state)) - (a0-1 "memory") - ) - (set! (-> pp next-state) process-drawable-art-error) - ((the-as (function string none) t9-1) a0-1) - ) - (set! obj (the-as path-control 0)) - (goto cfg-9) - ) - (set! (-> obj process) (the-as process-drawable proc)) - (set! (-> obj name) name) - (let ((ent (-> proc entity))) - (when (= name 'path) - (let ((lookup-entity (entity-actor-lookup ent 'path-actor 0))) - (if lookup-entity - (set! ent lookup-entity) - ) - ) - ) - (set! tag (new 'static 'res-tag)) - (let - ((data - ((method-of-type res-lump get-property-data) - ent - name - 'interp - time - (the-as pointer #f) - (& tag) - *res-static-buf* - ) - ) - ) - (cond - (data - (set! (-> obj cverts) (the-as (inline-array vector) data)) - (set! (-> obj curve num-cverts) (the-as int (-> tag elt-count))) - ) - (else - (set! - (-> obj flags) - (logior (-> obj flags) (path-control-flag not-found)) - ) - (set! (-> obj cverts) (the-as (inline-array vector) #f)) - (set! (-> obj curve num-cverts) 0) - 0 - ) - ) - ) - ) - (label cfg-9) - (the-as path-control obj) ) + (when (zero? obj) + (go process-drawable-art-error "memory") + (set! obj (the-as path-control 0)) + (goto cfg-9) + ) + (set! (-> obj process) (the-as process-drawable proc)) + (set! (-> obj name) name) + (let ((ent (-> proc entity))) + (when (= name 'path) + (let ((lookup-entity (entity-actor-lookup ent 'path-actor 0))) + (if lookup-entity + (set! ent lookup-entity) + ) + ) + ) + (set! tag (new 'static 'res-tag)) + (let + ((data + ((method-of-type res-lump get-property-data) + ent + name + 'interp + time + (the-as pointer #f) + (& tag) + *res-static-buf* + ) + ) + ) + (cond + (data + (set! (-> obj cverts) (the-as (inline-array vector) data)) + (set! (-> obj curve num-cverts) (the-as int (-> tag elt-count))) + ) + (else + (set! + (-> obj flags) + (logior (-> obj flags) (path-control-flag not-found)) + ) + (set! (-> obj cverts) (the-as (inline-array vector) #f)) + (set! (-> obj curve num-cverts) 0) + 0 + ) + ) + ) + ) + (label cfg-9) + (the-as path-control obj) ) ) diff --git a/test/decompiler/reference/engine/target/joint-mod-h_REF.gc b/test/decompiler/reference/engine/target/joint-mod-h_REF.gc index 60a5d302e9..5d3936d711 100644 --- a/test/decompiler/reference/engine/target/joint-mod-h_REF.gc +++ b/test/decompiler/reference/engine/target/joint-mod-h_REF.gc @@ -295,18 +295,14 @@ ) ) (set! (-> obj notice-time) (-> *display* base-frame-counter)) - (let ((ppointer (the-as (pointer process) (if proc - (the-as - (pointer process) - (-> proc ppointer) - ) - ) - ) + (let ((v1-12 (if proc + (-> proc ppointer) + ) ) ) (set! (-> last-try-to-look-at-data who) - (new 'static 'handle :process ppointer :pid (-> ppointer 0 pid)) + (new 'static 'handle :process v1-12 :pid (-> v1-12 0 pid)) ) ) (if (< (-> last-try-to-look-at-data vert) (-> enemy-facts cam-vert)) diff --git a/test/decompiler/reference/kernel/gkernel_REF.gc b/test/decompiler/reference/kernel/gkernel_REF.gc index 9f6d723562..60dde208f5 100644 --- a/test/decompiler/reference/kernel/gkernel_REF.gc +++ b/test/decompiler/reference/kernel/gkernel_REF.gc @@ -311,7 +311,7 @@ (set! (-> v0-0 brother) (the-as (pointer process-tree) #f)) (set! (-> v0-0 child) (the-as (pointer process-tree) #f)) (set! (-> v0-0 self) v0-0) - (set! (-> v0-0 ppointer) (&-> v0-0 self)) + (set! (-> v0-0 ppointer) (the-as (pointer process) (&-> v0-0 self))) v0-0 ) ) @@ -404,7 +404,10 @@ (set! (-> (the-as process v0-0) brother) (the-as (pointer process-tree) #f)) (set! (-> (the-as process v0-0) child) (the-as (pointer process-tree) #f)) (set! (-> (the-as process v0-0) self) (the-as process v0-0)) - (set! (-> (the-as process v0-0) ppointer) (&-> (the-as process v0-0) self)) + (set! + (-> (the-as process v0-0) ppointer) + (the-as (pointer process) (&-> (the-as process v0-0) self)) + ) (the-as process v0-0) ) ) @@ -545,7 +548,7 @@ (set! (-> s3-0 brother) (the-as (pointer process-tree) #f)) (set! (-> s3-0 child) (the-as (pointer process-tree) #f)) (set! (-> s3-0 self) s3-0) - (set! (-> s3-0 ppointer) (&-> s3-0 self)) + (set! (-> s3-0 ppointer) (the-as (pointer process) (&-> s3-0 self))) (dotimes (s2-1 arg0) (let ((s1-0 (-> s3-0 child)) (v1-5 ((method-of-type process new) allocation process 'dead arg1)) @@ -653,7 +656,7 @@ (set! (-> obj brother) (the-as (pointer process-tree) #f)) (set! (-> obj child) (the-as (pointer process-tree) #f)) (set! (-> obj self) obj) - (set! (-> obj ppointer) (&-> obj self)) + (set! (-> obj ppointer) (the-as (pointer process) (&-> obj self))) (countdown (v1-4 arg1) (let ((a0-4 (-> obj process-list v1-4))) (set! (-> a0-4 process) *null-process*) @@ -972,7 +975,7 @@ (set! (-> s5-1 2 mask) (the-as process-mask (-> s5-1 1))) (set! (-> obj alive-list prev) (the-as dead-pool-heap-rec (-> s5-1 1))) ) - (set! (-> s5-1 2) (the-as process-tree (-> obj dead-list next))) + (set! (-> s5-1 2) (the-as process (-> obj dead-list next))) (set! (-> obj dead-list next) (the-as dead-pool-heap-rec s5-1)) (set! (-> s5-1 0) *null-process*) ) diff --git a/test/decompiler/test_gkernel_decomp.cpp b/test/decompiler/test_gkernel_decomp.cpp index 526c5cbe29..a4d927710e 100644 --- a/test/decompiler/test_gkernel_decomp.cpp +++ b/test/decompiler/test_gkernel_decomp.cpp @@ -452,7 +452,7 @@ TEST_F(FormRegressionTest, RemoveMethod0ProcessTree) { " (set! (-> v0-0 brother) (the-as (pointer process-tree) #f))\n" " (set! (-> v0-0 child) (the-as (pointer process-tree) #f))\n" " (set! (-> v0-0 self) v0-0)\n" - " (set! (-> v0-0 ppointer) (&-> v0-0 self))\n" + " (set! (-> v0-0 ppointer) (the-as (pointer process) (&-> v0-0 self)))\n" " v0-0\n" " )"; test_with_expr(func, type, expected, false, "process-tree"); @@ -637,35 +637,35 @@ TEST_F(FormRegressionTest, ExprMethod0Process) { " daddiu sp, sp, 48"; std::string type = "(function symbol type basic int process)"; std::string expected = - "(let\n" - " ((v0-0\n" - " (if\n" - " (= (-> arg0 type) symbol)\n" - " (object-new\n" - " arg0\n" - " arg1\n" - " (the-as int (+ (-> process size) (the-as uint arg3)))\n" + "(let ((v0-0 (if (= (-> arg0 type) symbol)\n" + " (object-new\n" + " arg0\n" + " arg1\n" + " (the-as int (+ (-> process size) (the-as uint arg3)))\n" + " )\n" + " (+ (the-as int arg0) 4)\n" + " )\n" " )\n" - " (+ (the-as int arg0) 4)\n" " )\n" - " )\n" - " )\n" " (set! (-> (the-as process v0-0) name) arg2)\n" - " (set! (-> (the-as process v0-0) status) (quote dead))\n" + " (set! (-> (the-as process v0-0) status) 'dead)\n" " (set! (-> (the-as process v0-0) pid) 0)\n" " (set! (-> (the-as process v0-0) pool) #f)\n" " (set! (-> (the-as process v0-0) allocated-length) arg3)\n" " (set! (-> (the-as process v0-0) top-thread) #f)\n" " (set! (-> (the-as process v0-0) main-thread) #f)\n" - " (let\n" - " ((v1-5 (-> (the-as process v0-0) stack)))\n" + " (let ((v1-5 (-> (the-as process v0-0) stack)))\n" " (set! (-> (the-as process v0-0) heap-cur) v1-5)\n" " (set! (-> (the-as process v0-0) heap-base) v1-5)\n" " )\n" - " (set! (-> (the-as process v0-0) heap-top) (&-> (the-as process v0-0) stack (-> (the-as " - "process v0-0) allocated-length)))\n" - " (set! (-> (the-as process v0-0) stack-frame-top) (the-as stack-frame (-> (the-as process " - "v0-0) heap-top)))\n" + " (set!\n" + " (-> (the-as process v0-0) heap-top)\n" + " (&-> (the-as process v0-0) stack (-> (the-as process v0-0) allocated-length))\n" + " )\n" + " (set!\n" + " (-> (the-as process v0-0) stack-frame-top)\n" + " (the-as stack-frame (-> (the-as process v0-0) heap-top))\n" + " )\n" " (set! (-> (the-as process v0-0) stack-frame-top) #f)\n" " (set! (-> (the-as process v0-0) state) #f)\n" " (set! (-> (the-as process v0-0) next-state) #f)\n" @@ -677,7 +677,10 @@ TEST_F(FormRegressionTest, ExprMethod0Process) { " (set! (-> (the-as process v0-0) brother) (the-as (pointer process-tree) #f))\n" " (set! (-> (the-as process v0-0) child) (the-as (pointer process-tree) #f))\n" " (set! (-> (the-as process v0-0) self) (the-as process v0-0))\n" - " (set! (-> (the-as process v0-0) ppointer) (&-> (the-as process v0-0) self))\n" + " (set!\n" + " (-> (the-as process v0-0) ppointer)\n" + " (the-as (pointer process) (&-> (the-as process v0-0) self))\n" + " )\n" " (the-as process v0-0)\n" " )"; test_with_expr(func, type, expected, false, "process", {}, @@ -948,7 +951,7 @@ TEST_F(FormRegressionTest, ExprMethod0DeadPool) { " (set! (-> s3-0 brother) (the-as (pointer process-tree) #f))\n" " (set! (-> s3-0 child) (the-as (pointer process-tree) #f))\n" " (set! (-> s3-0 self) s3-0)\n" - " (set! (-> s3-0 ppointer) (&-> s3-0 self))\n" + " (set! (-> s3-0 ppointer) (the-as (pointer process) (&-> s3-0 self)))\n" " (dotimes\n" " (s2-1 arg2)\n" " (let\n" @@ -1264,7 +1267,7 @@ TEST_F(FormRegressionTest, ExprMethod0DeadPoolHeap) { " (set! (-> obj brother) (the-as (pointer process-tree) #f))\n" " (set! (-> obj child) (the-as (pointer process-tree) #f))\n" " (set! (-> obj self) obj)\n" - " (set! (-> obj ppointer) (&-> obj self))\n" + " (set! (-> obj ppointer) (the-as (pointer process) (&-> obj self)))\n" " (countdown (v1-4 arg3)\n" " (let ((a0-4 (-> obj process-list v1-4)))\n" " (set! (-> a0-4 process) *null-process*)\n" @@ -2240,7 +2243,7 @@ TEST_F(FormRegressionTest, ExprMethod15DeadPoolHeap) { " (set! (-> s5-1 2 mask) (the-as process-mask (-> s5-1 1)))\n" " (set! (-> arg0 alive-list prev) (the-as dead-pool-heap-rec (-> s5-1 1)))\n" " )\n" - " (set! (-> s5-1 2) (the-as process-tree (-> arg0 dead-list next)))\n" + " (set! (-> s5-1 2) (the-as process (-> arg0 dead-list next)))\n" " (set! (-> arg0 dead-list next) (the-as dead-pool-heap-rec s5-1))\n" " (set! (-> s5-1 0) *null-process*)\n" " )\n" From e537d5f8cbdb44750d59dc15b3f95d5f692dcf78 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 17 Jul 2021 22:08:38 +0000 Subject: [PATCH 23/63] Updated github pages site --- docs/gh-pages-proj/src/config/progress.json | 2 +- docs/index.html | 2 +- docs/js/{about.3bed851a.js => about.750138b1.js} | 4 ++-- docs/js/{about.3bed851a.js.map => about.750138b1.js.map} | 2 +- docs/js/{app.79cea398.js => app.81bb40f9.js} | 4 ++-- docs/js/{app.79cea398.js.map => app.81bb40f9.js.map} | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) rename docs/js/{about.3bed851a.js => about.750138b1.js} (99%) rename docs/js/{about.3bed851a.js.map => about.750138b1.js.map} (99%) rename docs/js/{app.79cea398.js => app.81bb40f9.js} (97%) rename docs/js/{app.79cea398.js.map => app.81bb40f9.js.map} (98%) diff --git a/docs/gh-pages-proj/src/config/progress.json b/docs/gh-pages-proj/src/config/progress.json index 6842c1447f..2c35918cdf 100644 --- a/docs/gh-pages-proj/src/config/progress.json +++ b/docs/gh-pages-proj/src/config/progress.json @@ -1,7 +1,7 @@ { "jak1": { "locPercentage": { - "value": 107228, + "value": 107180, "label": "Lines of Code" } } diff --git a/docs/index.html b/docs/index.html index 79a3d40716..14666610ec 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1 +1 @@ -OpenGOAL Tooling
\ No newline at end of file +OpenGOAL Tooling
\ No newline at end of file diff --git a/docs/js/about.3bed851a.js b/docs/js/about.750138b1.js similarity index 99% rename from docs/js/about.3bed851a.js rename to docs/js/about.750138b1.js index 72efaca026..44876fcc88 100644 --- a/docs/js/about.3bed851a.js +++ b/docs/js/about.750138b1.js @@ -1,2 +1,2 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":107228,"label":"Lines of Code"}}}')}}]); -//# sourceMappingURL=about.3bed851a.js.map \ No newline at end of file +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":107180,"label":"Lines of Code"}}}')}}]); +//# sourceMappingURL=about.750138b1.js.map \ No newline at end of file diff --git a/docs/js/about.3bed851a.js.map b/docs/js/about.750138b1.js.map similarity index 99% rename from docs/js/about.3bed851a.js.map rename to docs/js/about.750138b1.js.map index ce35d0b4ec..792dace111 100644 --- a/docs/js/about.3bed851a.js.map +++ b/docs/js/about.750138b1.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?1e25","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.3bed851a.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?1e25","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.750138b1.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/js/app.79cea398.js b/docs/js/app.81bb40f9.js similarity index 97% rename from docs/js/app.79cea398.js rename to docs/js/app.81bb40f9.js index c01e46c7f8..84e7a5f546 100644 --- a/docs/js/app.79cea398.js +++ b/docs/js/app.81bb40f9.js @@ -1,2 +1,2 @@ -(function(e){function t(t){for(var n,o,i=t[0],c=t[1],l=t[2],s=0,p=[];s\n \n \n \n \n \n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?341e","webpack:///src/App.vue","webpack:///./src/App.vue?1160","webpack:///./src/App.vue","webpack:///./src/plugins/vuetify.js","webpack:///./src/router/index.js","webpack:///./src/main.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_h","$createElement","_c","_self","staticRenderFns","components","component","VApp","VMain","Vue","use","Vuetify","theme","dark","VueRouter","routes","path","router","base","process","config","productionTip","vuetify","render","h","App","$mount"],"mappings":"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","file":"js/app.81bb40f9.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"750138b1\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"about\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"8d0e9591\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/jak-project/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[_c('v-main',[_c('router-view')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file From 9ed1170046b657a32f972595b672b515f5eaae4a Mon Sep 17 00:00:00 2001 From: water111 <48171810+water111@users.noreply.github.com> Date: Sun, 18 Jul 2021 19:28:56 -0400 Subject: [PATCH 24/63] add some really old vag file unpacking stuff (#708) --- common/CMakeLists.txt | 1 + common/audio/audio_formats.cpp | 300 ++++++++++++++++++ common/audio/audio_formats.h | 37 +++ common/util/BinaryReader.h | 26 +- decompiler/CMakeLists.txt | 1 + decompiler/ObjectFile/ObjectFileDB.cpp | 2 +- decompiler/config.cpp | 3 + decompiler/config.h | 3 + .../config/jak1_ntsc_black_label/inputs.jsonc | 13 + decompiler/data/streamed_audio.cpp | 222 +++++++++++++ decompiler/data/streamed_audio.h | 8 + decompiler/main.cpp | 5 + 12 files changed, 609 insertions(+), 12 deletions(-) create mode 100644 common/audio/audio_formats.cpp create mode 100644 common/audio/audio_formats.h create mode 100644 decompiler/data/streamed_audio.cpp create mode 100644 decompiler/data/streamed_audio.h diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt index bcf36d3a68..711d1d9c16 100644 --- a/common/CMakeLists.txt +++ b/common/CMakeLists.txt @@ -1,5 +1,6 @@ add_library(common SHARED + audio/audio_formats.cpp cross_os_debug/xdbg.cpp cross_sockets/xsocket.cpp goos/Interpreter.cpp diff --git a/common/audio/audio_formats.cpp b/common/audio/audio_formats.cpp new file mode 100644 index 0000000000..231c69079d --- /dev/null +++ b/common/audio/audio_formats.cpp @@ -0,0 +1,300 @@ +#include "audio_formats.h" +#include "common/util/BinaryWriter.h" +#include "third-party/fmt/core.h" + +/*! + * Write a wave file from a vector of samples. + */ +void write_wave_file_mono(const std::vector& samples, + s32 sample_rate, + const std::string& name) { + WaveFileHeader header; + memcpy(header.chunk_id, "RIFF", 4); + header.chunk_size = 36 + samples.size() * sizeof(s16); + memcpy(header.format, "WAVE", 4); + + // now the format + memcpy(header.subchunk1_id, "fmt ", 4); + header.subchunk1_size = 16; + header.aud_format = 1; + header.num_channels = 1; // mono + header.sample_rate = sample_rate; + header.byte_rate = sample_rate * header.num_channels * sizeof(s16); + header.block_align = header.num_channels * sizeof(s16); + header.bits_per_sample = 16; + + memcpy(header.subchunk2_id, "data", 4); + header.subchunk2_size = samples.size() * sizeof(s16); + + BinaryWriter writer; + writer.add(header); + + for (auto& samp : samples) { + writer.add(samp); + } + + writer.write_to_file(name); +} + +std::vector decode_adpcm(BinaryReader& reader) { + std::vector decoded_samples; + s32 sample_prev[2] = {0, 0}; + constexpr s32 f1[5] = {0, 60, 115, 98, 122}; + constexpr s32 f2[5] = {0, 0, -52, -55, -60}; + + int block_idx = 0; + while (true) { + if (!reader.bytes_left()) { + break; + } + u8 shift_filter = reader.read(); + u8 flags = reader.read(); + u8 shift = shift_filter & 0b1111; + u8 filter = shift_filter >> 4; + + if (shift > 12) { + assert(false); + } + + if (filter > 4) { + assert(false); + } + + if (flags == 7) { + break; + } + + u8 input_buffer[14]; + + for (int i = 0; i < 14; i++) { + input_buffer[i] = reader.read(); + } + + for (int i = 0; i < 28; i++) { + int16_t nibble = input_buffer[i / 2]; + if (i % 2 == 0) { + nibble = (nibble & 0x0f); + } else { + nibble = (nibble & 0xf0) >> 4; + } + + s32 sample = (s32)(s16)(nibble << 12); + sample >>= shift; + sample += (sample_prev[0] * f1[filter] + sample_prev[1] * f2[filter] + 32) / 64; + + if (sample > 0x7fff) { + sample = 0x7fff; + } + + if (sample < -0x8000) { + sample = -0x8000; + } + + sample_prev[1] = sample_prev[0]; + sample_prev[0] = sample; + + decoded_samples.push_back(sample); + } + block_idx++; + } + + return decoded_samples; +} + +// I attempted to write an encoder below, which works, but has some limitations. +// - In some cases we can't recover the original data exactly because the decode saturates the +// the output to fit in a signed 16-bit integer. +// - There are some cases when there are multiple ways to encode the same data. +// The break_filter_ties function attempts to handle this, but doesn't work 100% of the time. + +template +T saturate(T in, T minimum, T maximum) { + if (in < minimum) { + return minimum; + } + if (in > maximum) { + return maximum; + } + return in; +} + +constexpr int SAMPLES_PER_BLOCK = 28; + +void encode_block_with_filter(int filter_idx, + const s16* samples_in, + s32* out, + const s32* prev_samples_in) { + constexpr s32 f1[5] = {0, 60, 115, 98, 122}; + constexpr s32 f2[5] = {0, 0, -52, -55, -60}; + s32 prev_samples[2] = {prev_samples_in[0], prev_samples_in[1]}; + + for (int sample_idx = 0; sample_idx < SAMPLES_PER_BLOCK; sample_idx++) { + s32 sample = samples_in[sample_idx]; + s32 delta = + sample - (prev_samples[0] * f1[filter_idx] + prev_samples[1] * f2[filter_idx] + 32) / 64; + out[sample_idx] = delta; + prev_samples[1] = prev_samples[0]; + prev_samples[0] = sample; + } +} + +int get_shift_error(int shift, const s32* samples, bool /*debug*/) { + int result = 0; + + for (int sample_idx = 0; sample_idx < SAMPLES_PER_BLOCK; sample_idx++) { + int left_shift = 32 - (12 + 4 - shift); + assert(left_shift >= 0); + s32 sample_left = samples[sample_idx] << left_shift; + s32 sample_right = sample_left >> (32 - 4); + s32 sample_compressed = sample_right << (12 - shift); + + s32 err = std::abs(sample_compressed - samples[sample_idx]); + + result += err; + } + return result; +} + +int get_max_bits(s32 value) { + int result = 0; + if (value >= 0) { + int last = 1; + while (value) { + result++; + last = value & 1; + value >>= 1; + } + if (last) { + result++; + } + } else { + int last = 0; + while (value != -1) { + result++; + last = value & 1; + value >>= 1; + } + if (!last) { + result++; + } + } + return result; +} + +int break_filter_ties(s32* errors, s32* filter_shifts) { + s32 best_error = INT32_MAX; + + for (int filter_idx = 0; filter_idx < 5; filter_idx++) { + if (errors[filter_idx] < best_error) { + best_error = errors[filter_idx]; + } + } + + s32 best_shift = INT32_MAX; + int best_filter = -1; + for (int filter_idx = 5; filter_idx-- > 0;) { + if (errors[filter_idx] == best_error) { + if (filter_shifts[filter_idx] <= best_shift) { + best_shift = filter_shifts[filter_idx]; + best_filter = filter_idx; + } + } + } + + return best_filter; +} + +void test_encode_adpcm(const std::vector& samples, + const std::vector& filter_debug, + const std::vector& shift_debug) { + // the data is made of blocks. + // Each block decodes to 28 samples. + // each block has a shift and FIR filter. + // the window is continuous across blocks. + + // we could try all combinations of filters / shifts and pick the best, but that's slow and + // we don't know how to break ties if multiple are the same. + // we will try all 5 filters, then be smart about picking the best shift from there. + + // filter coefficients. + // there are 5x FIR filters that you can pick between. + + // last two samples from chosen encoding of the previous block + // init to 0, like the decoder + s32 prev_block_samples[2] = {0, 0}; + + // TODO - this will drop some samples at the end, if we don't use a multiple of 28. + // probably best to go back and pad with zeros or something. + int block_count = samples.size() / SAMPLES_PER_BLOCK; + + for (int block_idx = 0; block_idx < block_count; block_idx++) { + // try each filter + s32 pre_shift_samples_per_filter[5][SAMPLES_PER_BLOCK]; + for (int filter_idx = 0; filter_idx < 5; filter_idx++) { + encode_block_with_filter(filter_idx, samples.data() + SAMPLES_PER_BLOCK * block_idx, + pre_shift_samples_per_filter[filter_idx], prev_block_samples); + } + + // this is somewhat arbitrary, but we will require that the largest delta in the previous encode + // can be represented. + + s32 filter_errors[5] = {0, 0, 0, 0, 0}; + s32 filter_shifts[5] = {-1, -1, -1, -1}; + for (int filter_idx = 0; filter_idx < 5; filter_idx++) { + // find the largest value + s32 max_sample = INT32_MIN; + s32 min_sample = INT32_MAX; + + bool debug = block_idx == 10966 && filter_idx == 4; + + for (int sample_idx = 0; sample_idx < SAMPLES_PER_BLOCK; sample_idx++) { + s32 s = pre_shift_samples_per_filter[filter_idx][sample_idx]; + max_sample = std::max(s, max_sample); + min_sample = std::min(s, min_sample); + } + + if (debug) { + fmt::print("Range: {}\n", max_sample - min_sample); + } + + // see how many bits we need and pick shift. + auto bits_for_max = std::max(4, std::max(get_max_bits(min_sample), get_max_bits(max_sample))); + + filter_shifts[filter_idx] = 4 + 12 - bits_for_max; + + filter_errors[filter_idx] = get_shift_error(filter_shifts[filter_idx], + pre_shift_samples_per_filter[filter_idx], debug); + + if (filter_errors[filter_idx] == 0) { + while (filter_shifts[filter_idx] >= 0) { + int next_error = get_shift_error(filter_shifts[filter_idx] - 1, + pre_shift_samples_per_filter[filter_idx], false); + if (next_error == 0) { + filter_shifts[filter_idx]--; + } else { + break; + } + } + } + } + + int best_filter = break_filter_ties(filter_errors, filter_shifts); + s32 best_shift = filter_shifts[best_filter]; + + if (filter_errors[best_filter] || best_filter != filter_debug[block_idx] || + best_shift != shift_debug[block_idx]) { + fmt::print("Block {} me {}, {} : answer {} {}: ERR {}\n", block_idx, best_filter, best_shift, + filter_debug[block_idx], shift_debug[block_idx], filter_errors[best_filter]); + fmt::print("filter errors:\n"); + for (int i = 0; i < 5; i++) { + fmt::print(" [{}] {} {}\n", i, filter_errors[i], filter_shifts[i]); + } + fmt::print("prev: {} {}\n", prev_block_samples[0], prev_block_samples[1]); + assert(false); + } + + prev_block_samples[0] = samples.at(block_idx * 28 + 27); + prev_block_samples[1] = samples.at(block_idx * 28 + 26); + + } // end loop over blocks +} diff --git a/common/audio/audio_formats.h b/common/audio/audio_formats.h new file mode 100644 index 0000000000..ea72c50f5e --- /dev/null +++ b/common/audio/audio_formats.h @@ -0,0 +1,37 @@ +#pragma once + +#include +#include + +#include "common/util/BinaryReader.h" +#include "common/common_types.h" + +// The header data for a simple wave file +struct WaveFileHeader { + // wave file header + char chunk_id[4]; + s32 chunk_size; + char format[4]; + + // format chunk + char subchunk1_id[4]; + s32 subchunk1_size; + s16 aud_format; + s16 num_channels; + s32 sample_rate; + s32 byte_rate; + s16 block_align; + s16 bits_per_sample; + + // data chunk + char subchunk2_id[4]; + s32 subchunk2_size; +}; + +void write_wave_file_mono(const std::vector& samples, + s32 sample_rate, + const std::string& name); + +std::vector decode_adpcm(BinaryReader& reader); + +std::vector encode_adpcm(const std::vector& samples); \ No newline at end of file diff --git a/common/util/BinaryReader.h b/common/util/BinaryReader.h index b548c3366f..d6d43b0aae 100644 --- a/common/util/BinaryReader.h +++ b/common/util/BinaryReader.h @@ -6,31 +6,35 @@ */ #include +#include #include "common/util/assert.h" +#include "common/common_types.h" #include class BinaryReader { public: - explicit BinaryReader(const std::vector& _buffer) : buffer(_buffer) {} + explicit BinaryReader(const std::vector& _buffer) : m_buffer(_buffer) {} template T read() { - assert(seek + sizeof(T) <= buffer.size()); - T& obj = *(T*)(buffer.data() + seek); - seek += sizeof(T); + assert(m_seek + sizeof(T) <= m_buffer.size()); + T obj; + memcpy(&obj, m_buffer.data() + m_seek, sizeof(T)); + m_seek += sizeof(T); return obj; } void ffwd(int amount) { - seek += amount; - assert(seek <= buffer.size()); + m_seek += amount; + assert(m_seek <= m_buffer.size()); } - uint32_t bytes_left() const { return buffer.size() - seek; } - uint8_t* here() { return buffer.data() + seek; } - uint32_t get_seek() const { return seek; } + uint32_t bytes_left() const { return m_buffer.size() - m_seek; } + uint8_t* here() { return m_buffer.data() + m_seek; } + uint32_t get_seek() const { return m_seek; } + void set_seek(u32 seek) { m_seek = seek; } private: - std::vector buffer; - uint32_t seek = 0; + std::vector m_buffer; + uint32_t m_seek = 0; }; diff --git a/decompiler/CMakeLists.txt b/decompiler/CMakeLists.txt index 4a9ed5f51e..abf5e3986b 100644 --- a/decompiler/CMakeLists.txt +++ b/decompiler/CMakeLists.txt @@ -18,6 +18,7 @@ add_library( data/dir_tpages.cpp data/game_count.cpp data/game_text.cpp + data/streamed_audio.cpp data/StrFileReader.cpp data/tpage.cpp diff --git a/decompiler/ObjectFile/ObjectFileDB.cpp b/decompiler/ObjectFile/ObjectFileDB.cpp index e318eeca6a..b36b13b085 100644 --- a/decompiler/ObjectFile/ObjectFileDB.cpp +++ b/decompiler/ObjectFile/ObjectFileDB.cpp @@ -157,7 +157,7 @@ ObjectFileDB::ObjectFileDB(const std::vector& _dgos, lg::info("ObjectFileDB Initialized\n"); if (obj_files_by_name.empty()) { - lg::die( + lg::error( "No object files have been added. Check that there are input files and the allowed_objects " "list."); } diff --git a/decompiler/config.cpp b/decompiler/config.cpp index dccb5f247a..45f9d2c64f 100644 --- a/decompiler/config.cpp +++ b/decompiler/config.cpp @@ -33,6 +33,9 @@ Config read_config_file(const std::string& path_to_config_file) { config.dgo_names = inputs_json.at("dgo_names").get>(); config.object_file_names = inputs_json.at("object_file_names").get>(); config.str_file_names = inputs_json.at("str_file_names").get>(); + config.audio_dir_file_name = inputs_json.at("audio_dir_file_name").get(); + config.streamed_audio_file_names = + inputs_json.at("streamed_audio_file_names").get>(); if (cfg.contains("obj_file_name_map_file")) { config.obj_file_name_map_file = cfg.at("obj_file_name_map_file").get(); diff --git a/decompiler/config.h b/decompiler/config.h index c7af0b1be0..7b5161896b 100644 --- a/decompiler/config.h +++ b/decompiler/config.h @@ -68,6 +68,9 @@ struct Config { std::vector object_file_names; std::vector str_file_names; + std::string audio_dir_file_name; + std::vector streamed_audio_file_names; + std::string obj_file_name_map_file; bool disassemble_code = false; diff --git a/decompiler/config/jak1_ntsc_black_label/inputs.jsonc b/decompiler/config/jak1_ntsc_black_label/inputs.jsonc index 6a816ad2ba..40138334a2 100644 --- a/decompiler/config/jak1_ntsc_black_label/inputs.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/inputs.jsonc @@ -256,5 +256,18 @@ "TEXT/4COMMON.TXT", "TEXT/5COMMON.TXT", "TEXT/6COMMON.TXT" + ], + + // uncomment the next line to extract audio to wave files. + //"audio_dir_file_name": "VAG/VAGDIR.AYB", + "audio_dir_file_name" : "", + + "streamed_audio_file_names": [ + "VAG/VAGWAD.ENG", + "VAG/VAGWAD.FRE", + "VAG/VAGWAD.GER", + "VAG/VAGWAD.ITA", + "VAG/VAGWAD.JAP", + "VAG/VAGWAD.SPA" ] } diff --git a/decompiler/data/streamed_audio.cpp b/decompiler/data/streamed_audio.cpp new file mode 100644 index 0000000000..8636b6e3de --- /dev/null +++ b/decompiler/data/streamed_audio.cpp @@ -0,0 +1,222 @@ + +#include "common/log/log.h" +#include "common/util/FileUtil.h" +#include "common/util/BinaryReader.h" +#include "common/audio/audio_formats.h" +#include "third-party/fmt/core.h" +#include "third-party/json.hpp" + +#include "streamed_audio.h" + +namespace decompiler { + +// number of bytes per "audio page" in the VAG directory file. +constexpr int AUDIO_PAGE_SIZE = 2048; + +// Swap endian of 32-bit value. +uint32_t swap32(uint32_t in) { + return ((in << 24) | ((in & 0xff00) << 8) | ((in & 0xff0000) >> 8) | (in >> 24)); +} + +/*! + * A processed version of the VAGDIR file containing a map from 8-char name to location in the + * WAD files. + */ +struct AudioDir { + struct Entry { + std::string name; + s64 start_byte = -1; + s64 end_byte = -1; + }; + + std::vector entries; + + void set_file_size(u64 size) { + if (!entries.empty()) { + entries.back().end_byte = size; + } + } + + int entry_count() const { return entries.size(); } + + void debug_print() const { + for (auto& e : entries) { + fmt::print("\"{}\" 0x{:07x} - 0x{:07x}\n", e.name, e.start_byte, e.end_byte); + } + } +}; + +/*! + * Read an entry from a WAD and return the binary data. + */ +std::vector read_entry(const AudioDir& dir, const std::vector& data, int entry_idx) { + const auto& entry = dir.entries.at(entry_idx); + assert(entry.end_byte > 0); + return std::vector(data.begin() + entry.start_byte, data.begin() + entry.end_byte); +} + +/*! + * Matches the format in file. + */ +struct VagFileHeader { + char magic[4]; + u32 version; + u32 zero; + u32 channel_size; + u32 sample_rate; + u32 z[3]; + char name[16]; + + VagFileHeader swapped_endian() const { + VagFileHeader result(*this); + result.version = swap32(result.version); + result.channel_size = swap32(result.channel_size); + result.sample_rate = swap32(result.sample_rate); + return result; + } + + void debug_print() { + char temp_name[17]; + memcpy(temp_name, name, 16); + temp_name[16] = '\0'; + fmt::print("{}{}{}{} v {} zero {} chan {} samp {} z {} {} {} name {}\n", magic[0], magic[1], + magic[2], magic[3], version, zero, channel_size, sample_rate, z[0], z[1], z[2], + temp_name); + } +}; + +/*! + * Read the DIR file into an AudioDir + */ +AudioDir read_audio_dir(const std::string& path) { + // matches the format in file. + struct DirEntry { + char name[8]; + u32 value; + }; + auto data = file_util::read_binary_file(path); + lg::info("Got {} bytes of audio dir.\n", data.size()); + auto reader = BinaryReader(data); + + u32 count = reader.read(); + u32 data_end = sizeof(u32) + sizeof(DirEntry) * count; + assert(data_end <= data.size()); + std::vector entries; + for (u32 i = 0; i < count; i++) { + entries.push_back(reader.read()); + } + + while (reader.bytes_left()) { + assert(reader.read() == 0); + } + + AudioDir result; + + assert(!entries.empty()); + for (size_t i = 0; i < entries.size(); i++) { + AudioDir::Entry e; + for (auto c : entries[i].name) { + // padded with spaces, no null terminator. + e.name.push_back(c); + e.start_byte = AUDIO_PAGE_SIZE * entries[i].value; + if (i + 1 < (entries.size())) { + e.end_byte = AUDIO_PAGE_SIZE * entries[i + 1].value; + } else { + e.end_byte = -1; + } + } + result.entries.push_back(e); + } + + return result; +} + +std::string remove_trailing_spaces(const std::string& in) { + auto short_name = in; + while (!short_name.empty() && short_name.back() == ' ') { + short_name.pop_back(); + } + return short_name; +} + +struct AudioFileInfo { + std::string filename; + double length_seconds; +}; + +AudioFileInfo process_audio_file(const std::vector& data, + const std::string& name, + const std::string& suffix) { + BinaryReader reader(data); + + auto header = reader.read(); + if (header.magic[0] == 'V') { + header = header.swapped_endian(); + } else { + assert(false); + } + header.debug_print(); + + for (int i = 0; i < 16; i++) { + assert(reader.read() == 0); + } + + std::vector decoded_samples = decode_adpcm(reader); + + while (reader.bytes_left()) { + assert(reader.read() == 0); + } + + auto file_name = fmt::format("{}_{}.wav", remove_trailing_spaces(name), suffix); + write_wave_file_mono(decoded_samples, header.sample_rate, + file_util::get_file_path({"assets", "streaming_audio", file_name})); + + std::string vag_filename; + for (int i = 0; i < 16; i++) { + if (header.name[i]) { + vag_filename.push_back(header.name[i]); + } + } + return {vag_filename, (double)decoded_samples.size() / header.sample_rate}; +} + +void process_streamed_audio(const std::string& dir, const std::vector& audio_files) { + lg::info("Streaming audio: {}\n", dir); + file_util::create_dir_if_needed(file_util::get_file_path({"assets", "streaming_audio"})); + auto dir_data = read_audio_dir(file_util::get_file_path({"iso_data", dir})); + double audio_len = 0.f; + + std::vector langs; + std::vector> filename_data; + for (auto& e : dir_data.entries) { + std::vector placeholders = {remove_trailing_spaces(e.name)}; + for (size_t i = 0; i < audio_files.size(); i++) { + placeholders.push_back("????"); + } + filename_data.push_back(placeholders); + } + + for (size_t lang_id = 0; lang_id < audio_files.size(); lang_id++) { + auto& file = audio_files[lang_id]; + auto wad_data = file_util::read_binary_file(file_util::get_file_path({"iso_data", file})); + auto suffix = std::filesystem::path(file).extension().u8string().substr(1); + langs.push_back(suffix); + dir_data.set_file_size(wad_data.size()); + for (int i = 3; i < dir_data.entry_count(); i++) { + auto audio_data = read_entry(dir_data, wad_data, i); + lg::info("File {}, total {:.2f} minutes", dir_data.entries.at(i).name, audio_len / 60.0); + auto info = process_audio_file(audio_data, dir_data.entries.at(i).name, suffix); + audio_len += info.length_seconds; + filename_data[i][lang_id + 1] = info.filename; + } + } + + nlohmann::json file_list; + file_list["names"] = filename_data; + file_list["languages"] = langs; + + file_util::write_text_file( + file_util::get_file_path({"assets", "streaming_audio", "file_list.txt"}), file_list.dump(2)); +} + +} // namespace decompiler diff --git a/decompiler/data/streamed_audio.h b/decompiler/data/streamed_audio.h new file mode 100644 index 0000000000..b98d47c4e7 --- /dev/null +++ b/decompiler/data/streamed_audio.h @@ -0,0 +1,8 @@ +#pragma once + +#include +#include + +namespace decompiler { +void process_streamed_audio(const std::string& dir, const std::vector& audio_files); +} \ No newline at end of file diff --git a/decompiler/main.cpp b/decompiler/main.cpp index 45a4990c13..206251cffd 100644 --- a/decompiler/main.cpp +++ b/decompiler/main.cpp @@ -6,6 +6,7 @@ #include "config.h" #include "common/util/FileUtil.h" #include "common/versions.h" +#include "decompiler/data/streamed_audio.h" int main(int argc, char** argv) { using namespace decompiler; @@ -119,6 +120,10 @@ int main(int argc, char** argv) { } } + if (!config.audio_dir_file_name.empty()) { + process_streamed_audio(config.audio_dir_file_name, config.streamed_audio_file_names); + } + lg::info("Disassembly has completed successfully."); return 0; } From c76b51d8052826d9b182916b9404391899260b9a Mon Sep 17 00:00:00 2001 From: water111 <48171810+water111@users.noreply.github.com> Date: Mon, 19 Jul 2021 20:49:33 -0400 Subject: [PATCH 25/63] clean up to gsound! (#709) --- decompiler/IR2/FormExpressionAnalysis.cpp | 43 +- decompiler/ObjectFile/ObjectFileDB_IR2.cpp | 11 +- decompiler/analysis/atomic_op_builder.cpp | 89 +- decompiler/analysis/atomic_op_builder.h | 13 +- decompiler/config/all-types.gc | 24 +- .../config/jak1_ntsc_black_label/hacks.jsonc | 17 +- .../stack_structures.jsonc | 2 + .../jak1_ntsc_black_label/type_casts.jsonc | 3 - .../jak1_ntsc_black_label/var_names.jsonc | 22 + goal_src/engine/camera/camera-h.gc | 69 +- goal_src/engine/debug/stats-h.gc | 40 +- goal_src/engine/entity/actor-link-h.gc | 31 +- goal_src/engine/gfx/vis/bsp-h.gc | 7 + goal_src/engine/sound/gsound-h.gc | 8 +- goal_src/engine/sound/gsound.gc | 138 +- goal_src/engine/target/target-h.gc | 3 +- goal_src/engine/ui/progress-h.gc | 4 + test/decompiler/FormRegressionTest.cpp | 2 +- .../decompiler/reference/decompiler-macros.gc | 21 + .../reference/engine/camera/camera-h_REF.gc | 44 +- .../reference/engine/debug/stats-h_REF.gc | 65 +- .../engine/draw/process-drawable-h_REF.gc | 2 +- .../engine/entity/actor-link-h_REF.gc | 62 +- .../reference/engine/sound/gsound-h_REF.gc | 8 +- .../reference/engine/sound/gsound_REF.gc | 1741 +++++++++++++++++ test/decompiler/test_FormExpressionBuild2.cpp | 3 +- test/offline/offline_test_main.cpp | 9 +- 27 files changed, 2263 insertions(+), 218 deletions(-) create mode 100644 test/decompiler/reference/engine/sound/gsound_REF.gc diff --git a/decompiler/IR2/FormExpressionAnalysis.cpp b/decompiler/IR2/FormExpressionAnalysis.cpp index 84e1735093..fe22cf9302 100644 --- a/decompiler/IR2/FormExpressionAnalysis.cpp +++ b/decompiler/IR2/FormExpressionAnalysis.cpp @@ -967,7 +967,8 @@ void SimpleExpressionElement::update_from_stack_add_i(const Env& env, } else { auto casted0 = args.at(0); - if (!arg0_i && !arg0_u && arg0_type.typespec() != TypeSpec("binteger")) { + if (!arg0_i && !arg0_u && arg0_type.typespec() != TypeSpec("binteger") && + !env.dts->ts.tc(TypeSpec("integer"), arg0_type.typespec())) { casted0 = pool.alloc_single_element_form( nullptr, TypeSpec(arg0_i ? "int" : "uint"), args.at(0)); } @@ -975,8 +976,9 @@ void SimpleExpressionElement::update_from_stack_add_i(const Env& env, auto casted1 = pool.alloc_single_element_form( nullptr, TypeSpec(arg0_i ? "int" : "uint"), args.at(1)); - auto new_form = pool.alloc_element( + FormElement* new_form = pool.alloc_element( GenericOperator::make_fixed(FixedOperatorKind::ADDITION), casted0, casted1); + result->push_back(new_form); } } @@ -3289,6 +3291,23 @@ Form* try_make_constant_from_int_for_compare(s64 value, } return nullptr; } + +std::vector cast_to_64_bit(const std::vector& forms, + const std::vector& types, + FormPool& pool, + const Env& env) { + std::vector result; + for (size_t i = 0; i < forms.size(); i++) { + if (env.dts->ts.tc(TypeSpec("uint128"), types.at(i))) { + result.push_back(cast_form(forms[i], TypeSpec("uint"), pool, env)); + } else if (env.dts->ts.tc(TypeSpec("int128"), types.at(i))) { + result.push_back(cast_form(forms[i], TypeSpec("int"), pool, env)); + } else { + result.push_back(forms[i]); + } + } + return result; +} } // namespace FormElement* ConditionElement::make_zero_check_generic(const Env& env, @@ -3388,16 +3407,18 @@ FormElement* ConditionElement::make_equal_check_generic(const Env& env, return pool.alloc_element(GenericOperator::make_fixed(FixedOperatorKind::EQ), forms_with_cast); } else { - return pool.alloc_element(GenericOperator::make_fixed(FixedOperatorKind::EQ), - source_forms); + return pool.alloc_element( + GenericOperator::make_fixed(FixedOperatorKind::EQ), + cast_to_64_bit(source_forms, source_types, pool, env)); } } } -FormElement* ConditionElement::make_not_equal_check_generic(const Env&, - FormPool& pool, - const std::vector& source_forms, - const std::vector&) { +FormElement* ConditionElement::make_not_equal_check_generic( + const Env& env, + FormPool& pool, + const std::vector& source_forms, + const std::vector& source_types) { assert(source_forms.size() == 2); // (!= thing '()) auto ref = source_forms.at(1); @@ -3409,8 +3430,9 @@ FormElement* ConditionElement::make_not_equal_check_generic(const Env&, pool.alloc_single_element_form( nullptr, GenericOperator::make_fixed(FixedOperatorKind::NULLP), source_forms.at(0))); } else { - return pool.alloc_element(GenericOperator::make_fixed(FixedOperatorKind::NEQ), - source_forms); + return pool.alloc_element( + GenericOperator::make_fixed(FixedOperatorKind::NEQ), + cast_to_64_bit(source_forms, source_types, pool, env)); } } @@ -4088,6 +4110,7 @@ void BranchElement::push_to_stack(const Env& env, FormPool& pool, FormStack& sta m_op->to_string(env)); } + assert(!m_op->likely()); auto op = pool.alloc_element(branch_condition, branch_delay, m_op->label_id(), m_op->likely()); // fmt::print("rewrote (non-asm) as {}\n", op->to_string(env)); diff --git a/decompiler/ObjectFile/ObjectFileDB_IR2.cpp b/decompiler/ObjectFile/ObjectFileDB_IR2.cpp index 7943ba1611..d94d824b92 100644 --- a/decompiler/ObjectFile/ObjectFileDB_IR2.cpp +++ b/decompiler/ObjectFile/ObjectFileDB_IR2.cpp @@ -306,8 +306,17 @@ void ObjectFileDB::ir2_atomic_op_pass(const Config& config) { bool inline_asm = config.hacks.hint_inline_assembly_functions.find(func.guessed_name.to_string()) != config.hacks.hint_inline_assembly_functions.end(); + + std::unordered_set blocks_ending_in_asm_branch; + auto asm_branch_it = config.hacks.blocks_ending_in_asm_branch_by_func_name.find( + func.guessed_name.to_string()); + + if (asm_branch_it != config.hacks.blocks_ending_in_asm_branch_by_func_name.end()) { + blocks_ending_in_asm_branch = asm_branch_it->second; + } + auto ops = convert_function_to_atomic_ops(func, data.linked_data.labels, func.warnings, - inline_asm); + inline_asm, blocks_ending_in_asm_branch); func.ir2.atomic_ops = std::make_shared(std::move(ops)); func.ir2.atomic_ops_succeeded = true; func.ir2.env.set_end_var(func.ir2.atomic_ops->end_op().return_var()); diff --git a/decompiler/analysis/atomic_op_builder.cpp b/decompiler/analysis/atomic_op_builder.cpp index 7fcbf3fdcf..11e1018f65 100644 --- a/decompiler/analysis/atomic_op_builder.cpp +++ b/decompiler/analysis/atomic_op_builder.cpp @@ -11,7 +11,10 @@ namespace decompiler { namespace { -std::unique_ptr convert_1(const Instruction& i0, int idx, bool hint_inline_asm); +std::unique_ptr convert_1(const Instruction& i0, + int idx, + bool hint_inline_asm, + bool force_asm_branch); ////////////////////// // Register Helpers @@ -364,7 +367,9 @@ std::unique_ptr make_asm_op(const Instruction& i0, int idx) { } std::unique_ptr convert_1_allow_asm(const Instruction& i0, int idx) { - auto as_normal = convert_1(i0, idx, false); + // only used for delay slots, so fine to assume that this can never be an asm branch itself + // as there are no branches in delay slots anywhere. + auto as_normal = convert_1(i0, idx, false, false); if (as_normal) { return as_normal; } @@ -426,15 +431,6 @@ std::unique_ptr make_branch(const IR2_Condition& condition, } } -std::unique_ptr make_branch_no_delay(const IR2_Condition& condition, - bool likely, - int dest_label, - int my_idx) { - assert(likely); - IR2_BranchDelay delay(IR2_BranchDelay::Kind::NO_DELAY); - return std::make_unique(likely, condition, dest_label, delay, my_idx); -} - std::unique_ptr make_asm_branch_no_delay(const IR2_Condition& condition, bool likely, int dest_label, @@ -443,6 +439,19 @@ std::unique_ptr make_asm_branch_no_delay(const IR2_Condition& conditio return std::make_unique(likely, condition, dest_label, nullptr, my_idx); } +std::unique_ptr make_branch_no_delay(const IR2_Condition& condition, + bool likely, + int dest_label, + int my_idx, + bool force_asm_branch) { + if (force_asm_branch) { + return make_asm_branch_no_delay(condition, likely, dest_label, my_idx); + } + assert(likely); + IR2_BranchDelay delay(IR2_BranchDelay::Kind::NO_DELAY); + return std::make_unique(likely, condition, dest_label, delay, my_idx); +} + std::unique_ptr make_asm_branch(const IR2_Condition& condition, const Instruction& delay, bool likely, @@ -705,12 +714,16 @@ std::unique_ptr convert_dsrl32_1(const Instruction& i0, int idx) { std::unique_ptr convert_likely_branch_1(const Instruction& i0, IR2_Condition::Kind kind, bool likely, - int idx) { + int idx, + bool force_asm) { return make_branch_no_delay(IR2_Condition(kind, make_src_atom(i0.get_src(0).get_reg(), idx)), - likely, i0.get_src(1).get_label(), idx); + likely, i0.get_src(1).get_label(), idx, force_asm); } -std::unique_ptr convert_beql_1(const Instruction& i0, int idx, bool likely) { +std::unique_ptr convert_beql_1(const Instruction& i0, + int idx, + bool likely, + bool force_asm) { auto s0 = i0.get_src(0).get_reg(); auto s1 = i0.get_src(1).get_reg(); auto dest = i0.get_src(2).get_label(); @@ -735,10 +748,13 @@ std::unique_ptr convert_beql_1(const Instruction& i0, int idx, bool li IR2_Condition(IR2_Condition::Kind::EQUAL, make_src_atom(s0, idx), make_src_atom(s1, idx)); condition.make_flipped(); } - return make_branch_no_delay(condition, likely, dest, idx); + return make_branch_no_delay(condition, likely, dest, idx, force_asm); } -std::unique_ptr convert_bnel_1(const Instruction& i0, int idx, bool likely) { +std::unique_ptr convert_bnel_1(const Instruction& i0, + int idx, + bool likely, + bool force_asm) { auto s0 = i0.get_src(0).get_reg(); auto s1 = i0.get_src(1).get_reg(); auto dest = i0.get_src(2).get_label(); @@ -756,7 +772,7 @@ std::unique_ptr convert_bnel_1(const Instruction& i0, int idx, bool li make_src_atom(s1, idx)); condition.make_flipped(); } - return make_branch_no_delay(condition, likely, dest, idx); + return make_branch_no_delay(condition, likely, dest, idx, force_asm); } std::unique_ptr convert_subu_1(const Instruction& i0, int idx) { @@ -771,7 +787,10 @@ std::unique_ptr convert_subu_1(const Instruction& i0, int idx) { } } -std::unique_ptr convert_1(const Instruction& i0, int idx, bool hint_inline_asm) { +std::unique_ptr convert_1(const Instruction& i0, + int idx, + bool hint_inline_asm, + bool force_asm_branch) { switch (i0.kind) { case InstructionKind::OR: return convert_or_1(i0, idx); @@ -895,15 +914,18 @@ std::unique_ptr convert_1(const Instruction& i0, int idx, bool hint_in case InstructionKind::MOVZ: return convert_cmov_1(i0, idx); case InstructionKind::BGTZL: - return convert_likely_branch_1(i0, IR2_Condition::Kind::GREATER_THAN_ZERO_SIGNED, true, idx); + return convert_likely_branch_1(i0, IR2_Condition::Kind::GREATER_THAN_ZERO_SIGNED, true, idx, + force_asm_branch); case InstructionKind::BGEZL: - return convert_likely_branch_1(i0, IR2_Condition::Kind::GEQ_ZERO_SIGNED, true, idx); + return convert_likely_branch_1(i0, IR2_Condition::Kind::GEQ_ZERO_SIGNED, true, idx, + force_asm_branch); case InstructionKind::BLTZL: - return convert_likely_branch_1(i0, IR2_Condition::Kind::LESS_THAN_ZERO_SIGNED, true, idx); + return convert_likely_branch_1(i0, IR2_Condition::Kind::LESS_THAN_ZERO_SIGNED, true, idx, + force_asm_branch); case InstructionKind::BEQL: - return convert_beql_1(i0, idx, true); + return convert_beql_1(i0, idx, true, force_asm_branch); case InstructionKind::BNEL: - return convert_bnel_1(i0, idx, true); + return convert_bnel_1(i0, idx, true, force_asm_branch); case InstructionKind::SUBU: return convert_subu_1(i0, idx); // may fail default: @@ -1787,7 +1809,8 @@ int convert_block_to_atomic_ops(int begin_idx, const std::vector& labels, FunctionAtomicOps* container, DecompWarnings& warnings, - bool hint_inline_asm) { + bool hint_inline_asm, + bool block_ends_in_asm_branch) { container->block_id_to_first_atomic_op.push_back(container->ops.size()); for (auto& instr = begin; instr < end;) { // how many instructions can we look at, at most? @@ -1859,7 +1882,8 @@ int convert_block_to_atomic_ops(int begin_idx, if (!converted) { // try 1 instruction - op = convert_1(*instr, op_idx, hint_inline_asm); + bool force_asm_branch = n_instr == 1 && block_ends_in_asm_branch; + op = convert_1(*instr, op_idx, hint_inline_asm, force_asm_branch); if (op) { converted = true; length = 1; @@ -1899,10 +1923,12 @@ int convert_block_to_atomic_ops(int begin_idx, return int(container->ops.size()); } -FunctionAtomicOps convert_function_to_atomic_ops(const Function& func, - const std::vector& labels, - DecompWarnings& warnings, - bool hint_inline_asm) { +FunctionAtomicOps convert_function_to_atomic_ops( + const Function& func, + const std::vector& labels, + DecompWarnings& warnings, + bool hint_inline_asm, + const std::unordered_set& blocks_ending_in_asm_branches) { FunctionAtomicOps result; int last_op = 0; @@ -1912,8 +1938,9 @@ FunctionAtomicOps convert_function_to_atomic_ops(const Function& func, if (block.end_word > block.start_word) { auto begin = func.instructions.begin() + block.start_word; auto end = func.instructions.begin() + block.end_word; - last_op = convert_block_to_atomic_ops(block.start_word, begin, end, labels, &result, warnings, - hint_inline_asm); + last_op = convert_block_to_atomic_ops( + block.start_word, begin, end, labels, &result, warnings, hint_inline_asm, + blocks_ending_in_asm_branches.find(i) != blocks_ending_in_asm_branches.end()); if (i == int(func.basic_blocks.size()) - 1) { // we're the last block. insert the function end op. result.ops.push_back(std::make_unique(int(result.ops.size()))); diff --git a/decompiler/analysis/atomic_op_builder.h b/decompiler/analysis/atomic_op_builder.h index 4858deafc3..9b2281efcd 100644 --- a/decompiler/analysis/atomic_op_builder.h +++ b/decompiler/analysis/atomic_op_builder.h @@ -48,13 +48,16 @@ int convert_block_to_atomic_ops(int begin_idx, const std::vector& labels, FunctionAtomicOps* container, DecompWarnings& warnings, - bool inline_asm_hint = false); + bool inline_asm_hint = false, + bool block_ends_in_asm_branch = false); /*! * Convert an entire function to AtomicOps */ -FunctionAtomicOps convert_function_to_atomic_ops(const Function& func, - const std::vector& labels, - DecompWarnings& warnings, - bool hint_inline_asm); +FunctionAtomicOps convert_function_to_atomic_ops( + const Function& func, + const std::vector& labels, + DecompWarnings& warnings, + bool hint_inline_asm, + const std::unordered_set& blocks_ending_in_asm_branches); } // namespace decompiler \ No newline at end of file diff --git a/decompiler/config/all-types.gc b/decompiler/config/all-types.gc index 3c304cee86..ada72f4021 100644 --- a/decompiler/config/all-types.gc +++ b/decompiler/config/all-types.gc @@ -2841,10 +2841,10 @@ :flag-assert #xe0000006c (:methods (new (symbol type basic vector) _type_ 0) - (dummy-9 (_type_) int 9) - (dummy-10 (_type_ sound-name) int 10) - (dummy-11 (_type_ vector) int 11) - (dummy-12 (_type_ int) int 12) + (update! (_type_) int 9) + (change-sound! (_type_ sound-name) int 10) + (update-trans! (_type_ vector) int 11) + (update-vol! (_type_ int) int 12) (stop! (_type_) int 13) ) ) @@ -11534,9 +11534,9 @@ (:methods (dummy-9 (_type_) none 9) (dummy-10 (_type_) none 10) - (PERF-COUNTER-REG-ACCESS-11 (_type_) none 11) - (PERF-COUNTER-REG-ACCESS-12 (_type_) none 12) - (update-wait-stats-13 (_type_ uint uint uint) none 13) + (reset! (_type_) none 11) + (read! (_type_) none 12) + (update-wait-stats (_type_ uint uint uint) none 13) ) ) @@ -13498,8 +13498,8 @@ (:methods (init-cam-float-seeker (_type_ float float float float) none 9) (copy-cam-float-seeker (_type_ _type_) none 10) - (TODO-RENAME-11 (_type_ float) none 11) - (TODO-RENAME-12 (_type_ float) float 12) + (update! (_type_ float) none 11) + (jump-to-target! (_type_ float) float 12) ) ) @@ -13515,8 +13515,8 @@ :size-assert #x3c :flag-assert #xb0000003c (:methods - (TODO-RENAME-9 (_type_ vector float float float) none 9) - (TODO-RENAME-10 (_type_ vector) none 10) + (init! (_type_ vector float float float) none 9) + (update! (_type_ vector) none 10) ) ) @@ -14637,7 +14637,7 @@ (define-extern sound-buffer-dump (function int)) (define-extern swap-sound-buffers (function vector vector float int)) (define-extern free-last-sound-buffer-entry (function int)) -(define-extern sound-basic-cb function) +(define-extern sound-basic-cb (function int (pointer int32) none)) (define-extern sound-set-volume (function uint float int)) (define-extern sound-set-reverb (function int float float uint int)) (define-extern sound-pause (function sound-id int)) diff --git a/decompiler/config/jak1_ntsc_black_label/hacks.jsonc b/decompiler/config/jak1_ntsc_black_label/hacks.jsonc index e1e7bc6bee..f6af6c7fe7 100644 --- a/decompiler/config/jak1_ntsc_black_label/hacks.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/hacks.jsonc @@ -104,10 +104,6 @@ // collide-mesh-h "(method 11 collide-mesh-cache)", - // actor-link-h (BUG) - "(method 21 actor-link-info)", // BUG: sc cfg / cfg-ir bug - "(method 20 actor-link-info)", - // collide-func "moving-sphere-triangle-intersect", // P: weird branching "collide-do-primitives", // P: asm branching @@ -434,12 +430,8 @@ // (these are NOT actually asm functions) "(method 15 sync-info)", // NEED *res-static-buf* "(method 15 sync-info-eased)", // NEED *res-static-buf* - "(method 15 sync-info-paused)", // NEED *res-static-buf* + "(method 15 sync-info-paused)" // NEED *res-static-buf* - // stats-h - // May or may not be inline-asm but they are related to perf counter registers that only live on the PS2 - "(method 11 perf-stat)", - "(method 12 perf-stat)" ], // these functions use pairs and the decompiler @@ -539,6 +531,11 @@ "load-game-text-info": [12, 13, 14, 18], - "real-main-draw-hook": [75, 77] + "real-main-draw-hook": [75, 77], + + "(method 12 perf-stat)": [0], + "(method 11 perf-stat)": [0], + "(method 20 actor-link-info)": [2], + "(method 21 actor-link-info)": [2] } } diff --git a/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc b/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc index 4790bcee21..603f0d8293 100644 --- a/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc @@ -334,6 +334,8 @@ [64, "vector"] ], + "(method 20 actor-link-info)": [[16, "event-message-block"]], + "(method 21 actor-link-info)": [[16, "event-message-block"]], "(method 23 actor-link-info)": [[16, "event-message-block"]], "(method 24 actor-link-info)": [[16, "event-message-block"]], diff --git a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc index a7123bde12..072577c196 100644 --- a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc @@ -637,8 +637,6 @@ "num-func-chan": [[8, "v1", "joint-control-channel"]], - "cspace-by-name-no-fail": [[[0, 100], "v0", "cspace"]], - "shrubbery-login-post-texture": [ //[[13, 41], "a3", "qword"], // [[13, 41], "a2", "qword"] @@ -656,7 +654,6 @@ "(method 3 sparticle-cpuinfo)": [[106, "f0", "float"]], - "cspace-by-name-no-fail": [[[0, 100], "v0", "cspace"]], "camera-teleport-to-entity": [[9, "a0", "transform"]], diff --git a/decompiler/config/jak1_ntsc_black_label/var_names.jsonc b/decompiler/config/jak1_ntsc_black_label/var_names.jsonc index a1a9576b93..2eb7e03098 100644 --- a/decompiler/config/jak1_ntsc_black_label/var_names.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/var_names.jsonc @@ -1711,6 +1711,16 @@ } }, + "(method 20 actor-link-info)": { + "args": ["obj", "message"], + "vars": { + "s4-0":"iter", + "s5-0":"result", + "a0-1":"proc", + "a1-1":"msg-block" + } + }, + // LEVEL "lookup-level-info": { "args": ["name"], @@ -2389,5 +2399,17 @@ "s2-0":"grav-rt-body", "a1-5":"vel-rt-body" } + }, + + "(method 11 cam-float-seeker)" : { + "args": ["obj", "offset"], + "vars": { + "f1-2":"pos-error", + "f0-5":"partial-velocity-limit", + "f1-3":"daccel", + "f1-6":"abs-vel", + "f0-6":"abs-vel-limit", + "f0-10":"dpos" + } } } diff --git a/goal_src/engine/camera/camera-h.gc b/goal_src/engine/camera/camera-h.gc index 19fc1d4e1f..9f7c63518a 100644 --- a/goal_src/engine/camera/camera-h.gc +++ b/goal_src/engine/camera/camera-h.gc @@ -113,7 +113,9 @@ ) ) -;; definition of type cam-float-seeker +;; cam-float-seeker moves value toward target in a smooth way, with second order dynamics. +;; The acceleration is proportional to the error. +;; This isn't stable by itself, so there is a velocity limit (proportional to distance) applied. (deftype cam-float-seeker (structure) ((target float :offset-assert 0) (value float :offset-assert 4) @@ -129,8 +131,8 @@ (:methods (init-cam-float-seeker (_type_ float float float float) none 9) (copy-cam-float-seeker (_type_ _type_) none 10) - (TODO-RENAME-11 (_type_ float) none 11) - (TODO-RENAME-12 (_type_ float) float 12) + (update! (_type_ float) none 11) + (jump-to-target! (_type_ float) float 12) ) ) @@ -158,35 +160,37 @@ (none) ) -;; definition for method 11 of type cam-float-seeker -;; INFO: Return type mismatch int vs none. -(defmethod TODO-RENAME-11 cam-float-seeker ((obj cam-float-seeker) (arg0 float)) - (let ((f0-0 0.0)) - ) - (let ((f0-1 0.0)) - ) - (let* ((f1-2 (- (+ (-> obj target) arg0) (-> obj value))) - (f0-5 (* (-> obj max-partial) (fabs f1-2))) +(defmethod update! cam-float-seeker ((obj cam-float-seeker) (offset float)) + "Seek toward target + offset" + (let* ((pos-error (- (+ (-> obj target) offset) (-> obj value))) + ;; the velocity limit based on distance to target + (partial-velocity-limit (* (-> obj max-partial) (fabs pos-error))) ) - (let ((f1-3 (* f1-2 (* (-> obj accel) (-> *display* time-adjust-ratio))))) - (set! (-> obj vel) (+ (-> obj vel) f1-3)) + + ;; apply acceleration to velocity + (let ((daccel (* pos-error (* (-> obj accel) (-> *display* time-adjust-ratio))))) + (+! (-> obj vel) daccel) ) - (let ((f1-6 (fabs (-> obj vel))) - (f0-6 (fmin f0-5 (-> obj max-vel))) + + ;; limit velocity using max-vel and the partial limit + (let ((abs-vel (fabs (-> obj vel))) + (abs-vel-limit (fmin partial-velocity-limit (-> obj max-vel))) ) - (if (< f0-6 f1-6) - (set! (-> obj vel) (* (-> obj vel) (/ f0-6 f1-6))) + (if (< abs-vel-limit abs-vel) + (set! (-> obj vel) (* (-> obj vel) (/ abs-vel-limit abs-vel))) ) ) ) - (let ((f0-10 (* (-> obj vel) (-> *display* time-adjust-ratio)))) - (set! (-> obj value) (+ (-> obj value) f0-10)) + + ;; update position + (let ((dpos (* (-> obj vel) (-> *display* time-adjust-ratio)))) + (+! (-> obj value) dpos) ) (none) ) -;; definition for method 12 of type cam-float-seeker -(defmethod TODO-RENAME-12 cam-float-seeker ((obj cam-float-seeker) (arg0 float)) +(defmethod jump-to-target! cam-float-seeker ((obj cam-float-seeker) (arg0 float)) + "Jump to target + arg0 and set velocity to 0" (set! (-> obj value) (+ (-> obj target) arg0)) (let ((f0-2 0.0)) (set! (-> obj vel) f0-2) @@ -194,7 +198,8 @@ ) ) -;; definition of type cam-vector-seeker +;; very similar to cam-float-seeker but works on an +;; entire vector. (deftype cam-vector-seeker (structure) ((target vector :inline :offset-assert 0) (value vector :inline :offset-assert 16) @@ -207,15 +212,12 @@ :size-assert #x3c :flag-assert #xb0000003c (:methods - (TODO-RENAME-9 (_type_ vector float float float) none 9) - (TODO-RENAME-10 (_type_ vector) none 10) + (init! (_type_ vector float float float) none 9) + (update! (_type_ vector) none 10) ) ) -;; definition for method 9 of type cam-vector-seeker -;; INFO: Return type mismatch int vs none. -;; Used lq/sq -(defmethod TODO-RENAME-9 cam-vector-seeker ((obj cam-vector-seeker) (arg0 vector) (arg1 float) (arg2 float) (arg3 float)) +(defmethod init! cam-vector-seeker ((obj cam-vector-seeker) (arg0 vector) (arg1 float) (arg2 float) (arg3 float)) (cond (arg0 (set! (-> obj target quad) (-> arg0 quad)) @@ -230,16 +232,12 @@ (set! (-> obj accel) arg1) (set! (-> obj max-vel) arg2) (set! (-> obj max-partial) arg3) + 0 (none) ) - -;; definition for method 10 of type cam-vector-seeker -;; INFO: Return type mismatch int vs none. -;; TODO - vector-float*! replacement -(defmethod TODO-RENAME-10 cam-vector-seeker ((obj cam-vector-seeker) (arg0 vector)) +(defmethod update! cam-vector-seeker ((obj cam-vector-seeker) (arg0 vector)) (let ((gp-0 (new 'stack-no-clear 'vector))) - 0.0 (cond (arg0 (vector+! gp-0 (-> obj target) arg0) @@ -271,7 +269,6 @@ (none) ) -;; definition of type cam-rotation-tracker (deftype cam-rotation-tracker (structure) ((inv-mat matrix :inline :offset-assert 0) (no-follow basic :offset-assert 64) diff --git a/goal_src/engine/debug/stats-h.gc b/goal_src/engine/debug/stats-h.gc index 7df7622dc8..067f0e30fa 100644 --- a/goal_src/engine/debug/stats-h.gc +++ b/goal_src/engine/debug/stats-h.gc @@ -51,9 +51,9 @@ (:methods (dummy-9 (_type_) none 9) (dummy-10 (_type_) none 10) - (PERF-COUNTER-REG-ACCESS-11 (_type_) none 11) - (PERF-COUNTER-REG-ACCESS-12 (_type_) none 12) - (update-wait-stats-13 (_type_ uint uint uint) none 13) + (reset! (_type_) none 11) + (read! (_type_) none 12) + (update-wait-stats (_type_ uint uint uint) none 13) ) ) @@ -68,17 +68,45 @@ ;; failed to figure out what this is: (set! (-> perf-stat-array heap-base) (the-as uint 52)) -(defmethod PERF-COUNTER-REG-ACCESS-11 perf-stat ((obj perf-stat)) +(defmethod reset! perf-stat ((obj perf-stat)) "Perfomance counters are not implemented, so this does nothing." + #| + (let ((v1-0 (-> obj ctrl))) + (+! (-> obj count) 1) + (b! (zero? v1-0) cfg-2) + (.mtc0 Perf r0-0) + (.sync.l) + (.sync.p) + (.mtpc pcr0 r0-0) + (.mtpc pcr1 r0-0) + (.sync.l) + (.sync.p) + (.mtc0 Perf v1-0) + ) + (.sync.l) + (.sync.p) + (label cfg-2) + |# (none) ) -(defmethod PERF-COUNTER-REG-ACCESS-12 perf-stat ((obj perf-stat)) +(defmethod read! perf-stat ((obj perf-stat)) "Perfomance counters are not implemented, so this does nothing." + #| + (b! (zero? (-> obj ctrl)) cfg-2) + (.mtc0 Perf r0-0) + (.sync.l) + (.sync.p) + (.mfpc v1-1 pcr0) + (+! (-> obj accum0) (the-as uint v1-1)) + (.mfpc v1-3 pcr1) + (+! (-> obj accum1) (the-as uint v1-3)) + (label cfg-2) + |# (none) ) -(defmethod update-wait-stats-13 perf-stat ((obj perf-stat) (arg0 uint) (arg1 uint) (arg2 uint)) +(defmethod update-wait-stats perf-stat ((obj perf-stat) (arg0 uint) (arg1 uint) (arg2 uint)) (when (nonzero? (-> obj ctrl)) (set! (-> obj to-vu0-waits) (+ (-> obj to-vu0-waits) arg0)) (set! (-> obj to-spr-waits) (+ (-> obj to-spr-waits) arg1)) diff --git a/goal_src/engine/entity/actor-link-h.gc b/goal_src/engine/entity/actor-link-h.gc index b39d37666c..3f236442d2 100644 --- a/goal_src/engine/entity/actor-link-h.gc +++ b/goal_src/engine/entity/actor-link-h.gc @@ -5,10 +5,21 @@ ;; name in dgo: actor-link-h ;; dgos: GAME, ENGINE -;; The exact details of actor-link-h are not yet understood, but this system links entities to processes. +;; The exact details of actor-link-h are not yet understood, but this system caches lookups for entities/process. +;; Each entity has a res-lump. Some entities may reference other entities. This is done with an element in a res-lump +;; than contains named lists (possibly of size 1) of other entities. These lists may store entities by a name, or by an +;; actor id (AID). -;; One entity may have a reference to another entity, either by name or by ID. -;; Some common ones are next-actor and prev-actor. +;; This process is slow: it involves going from a process, to its entity, to doing a res-lump, deciding if you have an AID/string, +;; then looking up the other actor by name, or AID. Lookup by name is extremely slow, as it involves checking each actor's name +;; a res lookup per every actor in every level. Lookup by aid isn't bad, but is still a binary search through all actors. + +;; The next-actor and prev-actor res build a linked list of actors. + +;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Initial Lookup Functions +;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; these functions find actors before we've built the links. (defun entity-actor-lookup ((lump res-lump) (name symbol) (idx int)) "Given an entity (the res-lump), look up a reference to another entity and return that entity." @@ -29,6 +40,7 @@ ) ) ) + (the-as entity-actor ;; check in range, and lookup succesful (when (and v1-1 (< idx (the-as int (-> sv-16 elt-count)))) @@ -62,7 +74,11 @@ ) ;; entity-actors are part of a linked list of entities. -;; It is not yet known where these are allocated. +;; these prevent you from looking up next-actor, prev-actor again and again to iterate. +;; The actor-link-info for an entity is stored in that res-lump's "extra" +;; of course, this only works for cases where each entity has at most 1 process. + +;; These are allocated on the process heap of the entity's process. (deftype actor-link-info (basic) ((process process :offset-assert 4) ;; process for this entity @@ -94,6 +110,10 @@ ) ) +;;;;;;;;;;;;;;;; +;; Link Setup +;;;;;;;;;;;;;;;; + (defmethod next-actor entity-actor ((obj entity-actor)) "Utility function to look up the next actor in the list, assuming we don't have actor-link-info yet." ;; look up reference to next-actor - this is slow. @@ -124,6 +144,9 @@ ) ) +;;;;;;;;;;;;;;;;;;;; +;; Access +;;;;;;;;;;;;;;;;;;;; ;; These methods can now be used to get next/prev more efficiently, without having to do a res lookup. (defmethod get-next actor-link-info ((obj actor-link-info)) diff --git a/goal_src/engine/gfx/vis/bsp-h.gc b/goal_src/engine/gfx/vis/bsp-h.gc index a285577db2..c42e709626 100644 --- a/goal_src/engine/gfx/vis/bsp-h.gc +++ b/goal_src/engine/gfx/vis/bsp-h.gc @@ -5,6 +5,12 @@ ;; name in dgo: bsp-h ;; dgos: GAME, ENGINE +;; The level's layout is stored in a BSP. +;; There is a bsp-header that contains the actual nodes +;; as well as lists of entities and other stuff found in the level. +;; As a result, it is more than just a BSP. +;; The final file in the level DGO is the BSP, and is the largest file. + (declare-type entity-camera basic) (deftype bsp-node (structure) @@ -59,6 +65,7 @@ ) ) +;; seems to be unused? (deftype game-level (basic) ((master-bsp basic :offset-assert 4) ) diff --git a/goal_src/engine/sound/gsound-h.gc b/goal_src/engine/sound/gsound-h.gc index d80207afdf..662275512c 100644 --- a/goal_src/engine/sound/gsound-h.gc +++ b/goal_src/engine/sound/gsound-h.gc @@ -399,10 +399,10 @@ :flag-assert #xe0000006c (:methods (new (symbol type basic vector) _type_ 0) - (dummy-9 (_type_) int 9) - (dummy-10 (_type_ sound-name) int 10) - (dummy-11 (_type_ vector) int 11) - (dummy-12 (_type_ int) int 12) + (update! (_type_) int 9) + (change-sound! (_type_ sound-name) int 10) + (update-trans! (_type_ vector) int 11) + (update-vol! (_type_ int) int 12) (stop! (_type_) int 13) ) ) diff --git a/goal_src/engine/sound/gsound.gc b/goal_src/engine/sound/gsound.gc index beb60fabdf..8be34f29be 100644 --- a/goal_src/engine/sound/gsound.gc +++ b/goal_src/engine/sound/gsound.gc @@ -5,7 +5,8 @@ ;; name in dgo: gsound ;; dgos: GAME, ENGINE - +;; The sound playback stuff is all on the IOP so we use IOP RPCs to control it. +;; Ther is a "player" that plays sound effects, and a "loader" that takes care of loading banks. (define *sound-player-rpc* (new 'global 'rpc-buffer-pair (the uint (size-of sound-rpc-union)) (the-as uint 128) RPC-SOUND-PLAYER)) (define *sound-loader-rpc* (new 'global 'rpc-buffer-pair (the uint (size-of sound-rpc-union)) (the-as uint 1) RPC-SOUND-LOADER)) @@ -101,6 +102,8 @@ 0 ) +;; Note: we check the IRX version on load to make sure that the OVERLORD driver is the right version +;; and has loaded successfully. (check-irx-version) @@ -276,7 +279,11 @@ 0 ) -;; sound-basic-cb +(defun sound-basic-cb ((arg0 int) (arg1 (pointer int32))) + "This function is unused." + (set! (-> arg1 0) arg0) + (none) + ) (defun sound-trans-convert ((dest vector3w) (src vector)) (let ((vec (if src src (ear-trans)))) @@ -327,6 +334,17 @@ 0 ) +(defun sound-set-reverb ((arg0 int) (arg1 float) (arg2 float) (arg3 uint)) + (let ((cmd (the-as sound-rpc-set-reverb (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command set-reverb)) + (set! (-> cmd core) arg3) + (set! (-> cmd reverb) arg0) + (set! (-> cmd left) (the-as uint (the int (* 32767.0 arg1)))) + (set! (-> cmd right) (the-as uint (the int (* 32767.0 arg2)))) + ) + 0 + ) + (defun sound-set-ear-trans ((ear-trans vector) (cam-trans vector) (cam-angle float)) (let ((cmd (the sound-rpc-set-ear-trans (get-sound-buffer-entry)))) @@ -591,17 +609,18 @@ (defun-extern effect-param->sound-spec sound-spec sound-play-parms int sound-spec) (define-extern *debug-effect-control* symbol) -(defmethod dummy-9 ambient-sound ((obj ambient-sound)) +(defmethod update! ambient-sound ((obj ambient-sound)) + "Called once per frame to update the sound playback" (if (not *ambient-sound-class*) - (return (the int #f)) - ) + (return (the int #f)) + ) (cond ((-> obj spec) (when (or (< (the-as int (-> obj time-base)) 0) (>= (the-as int (-> *display* base-frame-counter)) (the-as int (-> obj play-time))) - ) + ) (when (>= (the-as int (-> obj time-base)) 0) (set! (-> obj play-time) (+ (-> *display* base-frame-counter) (-> obj time-base) @@ -610,64 +629,64 @@ (set! (-> obj playing-id) (new-sound-id)) ) (let ((spec (-> obj spec))) - (when (= spec *ambient-spec*) - (set! (-> spec volume) (-> obj volume)) - (set! (-> spec pitch-mod) (-> obj pitch)) - (set! (-> spec bend) 0) - (set! (-> spec sound-name) (-> obj name)) - (set! (-> spec fo-max) (-> obj falloff-far)) - (set! (-> spec mask) (the-as uint 0)) - (if (-> obj params) + (when (= spec *ambient-spec*) + (set! (-> spec volume) (-> obj volume)) + (set! (-> spec pitch-mod) (-> obj pitch)) + (set! (-> spec bend) 0) + (set! (-> spec sound-name) (-> obj name)) + (set! (-> spec fo-max) (-> obj falloff-far)) + (set! (-> spec mask) (the-as uint 0)) + (if (-> obj params) (effect-param->sound-spec spec (-> obj params) (-> obj param-count)) ) - ) - (if (and (nonzero? (-> spec fo-max)) - (< (* 4096.0 (the float (-> spec fo-max))) - (vector-vector-distance (ear-trans) (-> obj trans)))) + ) + (if (and (nonzero? (-> spec fo-max)) + (< (* 4096.0 (the float (-> spec fo-max))) + (vector-vector-distance (ear-trans) (-> obj trans)))) (return 0) ) - (when (and *debug-effect-control* (>= (the-as int (-> obj time-base)) 0)) - (with-pp - (format #t "(~5D) effect sound ~A ~G " - (-> *display* base-frame-counter) - (-> pp name) - (-> spec sound-name-char)) - (format #t "volume: ~f pitch-mod: ~f~%" - (* (1/ 10.24) (the float (-> spec volume))) - (* 0.000656168 (the float (-> spec pitch-mod)))) - ) + (when (and *debug-effect-control* (>= (the-as int (-> obj time-base)) 0)) + (with-pp + (format #t "(~5D) effect sound ~A ~G " + (-> *display* base-frame-counter) + (-> pp name) + (-> spec sound-name-char)) + (format #t "volume: ~f pitch-mod: ~f~%" + (* (1/ 10.24) (the float (-> spec volume))) + (* 0.000656168 (the float (-> spec pitch-mod)))) ) - (let ((spec-volume (-> spec volume))) - (set! (-> spec volume) (-> obj volume)) - (set! (-> obj playing-id) (sound-play-by-spec spec (-> obj playing-id) (-> obj trans))) - (set! (-> spec volume) spec-volume) - ) ) + (let ((spec-volume (-> spec volume))) + (set! (-> spec volume) (-> obj volume)) + (set! (-> obj playing-id) (sound-play-by-spec spec (-> obj playing-id) (-> obj trans))) + (set! (-> spec volume) spec-volume) + ) + ) ) ) (else (cond ((< (the-as int (-> obj time-base)) 0) (set! (-> obj playing-id) (sound-play-by-name - (-> obj name) - (-> obj playing-id) - (-> obj volume) - (-> obj pitch) - 0 - (the-as uint 1) - (-> obj trans))) + (-> obj name) + (-> obj playing-id) + (-> obj volume) + (-> obj pitch) + 0 + (the-as uint 1) + (-> obj trans))) ) (else (when (>= (the-as int (-> *display* base-frame-counter)) (the-as int (-> obj play-time))) (set! (-> obj playing-id) (sound-play-by-name - (-> obj name) - (new-sound-id) - (-> obj volume) - (-> obj pitch) - 0 - (the-as uint 1) - (-> obj trans))) + (-> obj name) + (new-sound-id) + (-> obj volume) + (-> obj pitch) + 0 + (the-as uint 1) + (-> obj trans))) (set! (-> obj play-time) (+ (-> *display* base-frame-counter) (-> obj time-base) (the-as uint (rand-vu-int-count (the-as int (-> obj time-random)))) @@ -687,8 +706,8 @@ 0 ) -(defmethod dummy-11 ambient-sound ((obj ambient-sound) (sound-trans vector)) - +(defmethod update-trans! ambient-sound ((obj ambient-sound) (sound-trans vector)) + "Update the position of the thing playing the sound" (set! (-> obj trans quad) (-> sound-trans quad)) (when (nonzero? (-> obj playing-id)) (let ((cmd (the sound-rpc-set-param (get-sound-buffer-entry)))) @@ -704,7 +723,23 @@ 0 ) -(defmethod dummy-10 ambient-sound ((obj ambient-sound) (name sound-name)) +(defmethod update-vol! ambient-sound ((obj ambient-sound) (arg0 int)) + "Update the volume of the sound" + (when (nonzero? (-> obj playing-id)) + (let ((cmd (the-as sound-rpc-set-param (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command set-param)) + (set! (-> cmd id) (-> obj playing-id)) + (set! (-> cmd parms volume) (the int (* 10.24 (the float arg0)))) + (set! (-> cmd parms mask) (the-as uint 1)) + (-> cmd id) + ) + ) + (set! (-> obj volume) (the int (* 10.24 (the float arg0)))) + 0 + ) + +(defmethod change-sound! ambient-sound ((obj ambient-sound) (name sound-name)) + "Change the sound being played" (when (not (sound-name= (-> obj name) name)) (stop! obj) (set! (-> obj playing-id) (new-sound-id)) @@ -1007,6 +1042,3 @@ (flava-table-add 'credits (49 2) ) - - - diff --git a/goal_src/engine/target/target-h.gc b/goal_src/engine/target/target-h.gc index d5be2b8aad..2ad577faac 100644 --- a/goal_src/engine/target/target-h.gc +++ b/goal_src/engine/target/target-h.gc @@ -42,6 +42,8 @@ ) ) +(define-perm *target* target #f) + (deftype sidekick (process-drawable) ((control control-info :offset 112) (anim-seed uint64 :offset 192) @@ -54,7 +56,6 @@ ;; inherited inspect of process-drawable ) -(define-perm *target* target #f) (define-perm *sidekick* sidekick #f) diff --git a/goal_src/engine/ui/progress-h.gc b/goal_src/engine/ui/progress-h.gc index 92cbe15957..2d070bbb26 100644 --- a/goal_src/engine/ui/progress-h.gc +++ b/goal_src/engine/ui/progress-h.gc @@ -5,6 +5,10 @@ ;; name in dgo: progress-h ;; dgos: GAME, ENGINE +;; progress screen display-state enum: +;; 32 - nocd +;; 33 - dirtycd + (deftype count-info (structure) ((money-count int32 :offset-assert 0) (buzzer-count int32 :offset-assert 4) diff --git a/test/decompiler/FormRegressionTest.cpp b/test/decompiler/FormRegressionTest.cpp index ffaba73a7a..4f960e4b94 100644 --- a/test/decompiler/FormRegressionTest.cpp +++ b/test/decompiler/FormRegressionTest.cpp @@ -164,7 +164,7 @@ std::unique_ptr FormRegressionTest::make_function( // convert instruction to atomic ops DecompWarnings warnings; - auto ops = convert_function_to_atomic_ops(test->func, program.labels, warnings, false); + auto ops = convert_function_to_atomic_ops(test->func, program.labels, warnings, false, {}); test->func.ir2.atomic_ops = std::make_shared(std::move(ops)); test->func.ir2.atomic_ops_succeeded = true; test->func.ir2.env.set_end_var(test->func.ir2.atomic_ops->end_op().return_var()); diff --git a/test/decompiler/reference/decompiler-macros.gc b/test/decompiler/reference/decompiler-macros.gc index 6778c18b22..fb49fdd674 100644 --- a/test/decompiler/reference/decompiler-macros.gc +++ b/test/decompiler/reference/decompiler-macros.gc @@ -212,4 +212,25 @@ (set! (-> pp next-state) ,next-state) ((the (function _varargs_ object) enter-state) ,@args) ) + ) + +(defmacro static-sound-name (str) + "Convert a string constant to a static sound-name." + + ;; all this is done at compile-time so we can come up with 2 + ;; 64-bit constants to use + (when (> (string-length str) 16) + (error "static-sound-name got a string that is too long") + ) + (let ((lo-val 0) + (hi-val 0) + ) + (dotimes (i (string-length str)) + (if (>= i 8) + (+! hi-val (ash (string-ref str i) (* 8 (- i 8)))) + (+! lo-val (ash (string-ref str i) (* 8 i))) + ) + ) + `(new 'static 'sound-name :lo ,lo-val :hi ,hi-val) + ) ) \ No newline at end of file diff --git a/test/decompiler/reference/engine/camera/camera-h_REF.gc b/test/decompiler/reference/engine/camera/camera-h_REF.gc index d5967ae39d..13fb326a95 100644 --- a/test/decompiler/reference/engine/camera/camera-h_REF.gc +++ b/test/decompiler/reference/engine/camera/camera-h_REF.gc @@ -218,8 +218,8 @@ (:methods (init-cam-float-seeker (_type_ float float float float) none 9) (copy-cam-float-seeker (_type_ _type_) none 10) - (TODO-RENAME-11 (_type_ float) none 11) - (TODO-RENAME-12 (_type_ float) float 12) + (update! (_type_ float) none 11) + (jump-to-target! (_type_ float) float 12) ) ) @@ -269,32 +269,33 @@ ;; definition for method 11 of type cam-float-seeker ;; INFO: Return type mismatch int vs none. -(defmethod TODO-RENAME-11 cam-float-seeker ((obj cam-float-seeker) (arg0 float)) +(defmethod update! cam-float-seeker ((obj cam-float-seeker) (offset float)) 0.0 0.0 - (let* ((f1-2 (- (+ (-> obj target) arg0) (-> obj value))) - (f0-5 (* (-> obj max-partial) (fabs f1-2))) + (let* ((pos-error (- (+ (-> obj target) offset) (-> obj value))) + (partial-velocity-limit (* (-> obj max-partial) (fabs pos-error))) ) - (let ((f1-3 (* f1-2 (* (-> obj accel) (-> *display* time-adjust-ratio))))) - (+! (-> obj vel) f1-3) + (let + ((daccel (* pos-error (* (-> obj accel) (-> *display* time-adjust-ratio))))) + (+! (-> obj vel) daccel) ) - (let ((f1-6 (fabs (-> obj vel))) - (f0-6 (fmin f0-5 (-> obj max-vel))) + (let ((abs-vel (fabs (-> obj vel))) + (abs-vel-limit (fmin partial-velocity-limit (-> obj max-vel))) ) - (if (< f0-6 f1-6) - (set! (-> obj vel) (* (-> obj vel) (/ f0-6 f1-6))) + (if (< abs-vel-limit abs-vel) + (set! (-> obj vel) (* (-> obj vel) (/ abs-vel-limit abs-vel))) ) ) ) - (let ((f0-10 (* (-> obj vel) (-> *display* time-adjust-ratio)))) - (+! (-> obj value) f0-10) + (let ((dpos (* (-> obj vel) (-> *display* time-adjust-ratio)))) + (+! (-> obj value) dpos) ) 0 (none) ) ;; definition for method 12 of type cam-float-seeker -(defmethod TODO-RENAME-12 cam-float-seeker ((obj cam-float-seeker) (arg0 float)) +(defmethod jump-to-target! cam-float-seeker ((obj cam-float-seeker) (arg0 float)) (set! (-> obj value) (+ (-> obj target) arg0)) (let ((f0-2 0.0)) (set! (-> obj vel) f0-2) @@ -315,8 +316,8 @@ :size-assert #x3c :flag-assert #xb0000003c (:methods - (TODO-RENAME-9 (_type_ vector float float float) none 9) - (TODO-RENAME-10 (_type_ vector) none 10) + (init! (_type_ vector float float float) none 9) + (update! (_type_ vector) none 10) ) ) @@ -336,7 +337,7 @@ ;; INFO: Return type mismatch int vs none. ;; Used lq/sq (defmethod - TODO-RENAME-9 + init! cam-vector-seeker ((obj cam-vector-seeker) (arg0 vector) (arg1 float) (arg2 float) (arg3 float)) (cond @@ -359,10 +360,7 @@ ;; definition for method 10 of type cam-vector-seeker ;; INFO: Return type mismatch int vs none. -(defmethod - TODO-RENAME-10 - cam-vector-seeker - ((obj cam-vector-seeker) (arg0 vector)) +(defmethod update! cam-vector-seeker ((obj cam-vector-seeker) (arg0 vector)) (let ((gp-0 (new 'stack-no-clear 'vector))) 0.0 (cond @@ -745,3 +743,7 @@ ;; failed to figure out what this is: 0 + + + + diff --git a/test/decompiler/reference/engine/debug/stats-h_REF.gc b/test/decompiler/reference/engine/debug/stats-h_REF.gc index 2914affca2..5b8633a63c 100644 --- a/test/decompiler/reference/engine/debug/stats-h_REF.gc +++ b/test/decompiler/reference/engine/debug/stats-h_REF.gc @@ -67,9 +67,9 @@ (:methods (dummy-9 (_type_) none 9) (dummy-10 (_type_) none 10) - (PERF-COUNTER-REG-ACCESS-11 (_type_) none 11) - (PERF-COUNTER-REG-ACCESS-12 (_type_) none 12) - (update-wait-stats-13 (_type_ uint uint uint) none 13) + (reset! (_type_) none 11) + (read! (_type_) none 12) + (update-wait-stats (_type_ uint uint uint) none 13) ) ) @@ -114,15 +114,64 @@ (set! (-> perf-stat-array heap-base) (the-as uint 52)) ;; definition for method 11 of type perf-stat -;; ERROR: function was not converted to expressions. Cannot decompile. +;; INFO: Return type mismatch int vs none. +;; WARN: Unsupported inline assembly instruction kind - [mtc0 Perf, r0] +;; WARN: Unsupported inline assembly instruction kind - [sync.l] +;; WARN: Unsupported inline assembly instruction kind - [sync.p] +;; WARN: Unsupported inline assembly instruction kind - [mtpc pcr0, r0] +;; WARN: Unsupported inline assembly instruction kind - [mtpc pcr1, r0] +;; WARN: Unsupported inline assembly instruction kind - [sync.l] +;; WARN: Unsupported inline assembly instruction kind - [sync.p] +;; WARN: Unsupported inline assembly instruction kind - [mtc0 Perf, v1] +;; WARN: Unsupported inline assembly instruction kind - [sync.l] +;; WARN: Unsupported inline assembly instruction kind - [sync.p] +(defmethod reset! perf-stat ((obj perf-stat)) + (local-vars (r0-0 none)) + (let ((v1-0 (-> obj ctrl))) + (+! (-> obj count) 1) + (b! (zero? v1-0) cfg-2) + (.mtc0 Perf r0-0) + (.sync.l) + (.sync.p) + (.mtpc pcr0 r0-0) + (.mtpc pcr1 r0-0) + (.sync.l) + (.sync.p) + (.mtc0 Perf v1-0) + ) + (.sync.l) + (.sync.p) + (label cfg-2) + 0 + (none) + ) ;; definition for method 12 of type perf-stat -;; ERROR: function was not converted to expressions. Cannot decompile. +;; INFO: Return type mismatch int vs none. +;; WARN: Unsupported inline assembly instruction kind - [mtc0 Perf, r0] +;; WARN: Unsupported inline assembly instruction kind - [sync.l] +;; WARN: Unsupported inline assembly instruction kind - [sync.p] +;; WARN: Unsupported inline assembly instruction kind - [mfpc v1, pcr0] +;; WARN: Unsupported inline assembly instruction kind - [mfpc v1, pcr1] +(defmethod read! perf-stat ((obj perf-stat)) + (local-vars (r0-0 none) (v1-1 int) (v1-3 int)) + (b! (zero? (-> obj ctrl)) cfg-2) + (.mtc0 Perf r0-0) + (.sync.l) + (.sync.p) + (.mfpc v1-1 pcr0) + (+! (-> obj accum0) (the-as uint v1-1)) + (.mfpc v1-3 pcr1) + (+! (-> obj accum1) (the-as uint v1-3)) + (label cfg-2) + 0 + (none) + ) ;; definition for method 13 of type perf-stat ;; INFO: Return type mismatch int vs none. (defmethod - update-wait-stats-13 + update-wait-stats perf-stat ((obj perf-stat) (arg0 uint) (arg1 uint) (arg2 uint)) (when (nonzero? (-> obj ctrl)) @@ -140,3 +189,7 @@ (set! (-> perf-stat method-table 12) nothing) (set! (-> perf-stat method-table 13) nothing) ) + + + + diff --git a/test/decompiler/reference/engine/draw/process-drawable-h_REF.gc b/test/decompiler/reference/engine/draw/process-drawable-h_REF.gc index 733511c24a..0fb4456247 100644 --- a/test/decompiler/reference/engine/draw/process-drawable-h_REF.gc +++ b/test/decompiler/reference/engine/draw/process-drawable-h_REF.gc @@ -8,7 +8,7 @@ (the-as cspace (cond (result (empty) - (the-as cspace result) + result ) (else (format 0 "no cspace (~A)~%" arg1) diff --git a/test/decompiler/reference/engine/entity/actor-link-h_REF.gc b/test/decompiler/reference/engine/entity/actor-link-h_REF.gc index 70c11e851e..72eed8ea89 100644 --- a/test/decompiler/reference/engine/entity/actor-link-h_REF.gc +++ b/test/decompiler/reference/engine/entity/actor-link-h_REF.gc @@ -233,10 +233,64 @@ ) ;; definition for method 20 of type actor-link-info -;; ERROR: function was not converted to expressions. Cannot decompile. +(defmethod + send-to-all-after + actor-link-info + ((obj actor-link-info) (message object)) + (with-pp + (let ((iter (-> obj next)) + (result (the-as object #f)) + ) + (while iter + (let ((proc (-> iter extra process))) + (when proc + (let ((msg-block (new 'stack-no-clear 'event-message-block))) + (set! (-> msg-block from) pp) + (set! (-> msg-block num-params) 0) + (set! (-> msg-block message) (the-as basic message)) + (let ((v1-3 (send-event-function proc msg-block))) + (b! v1-3 cfg-4 :likely-delay (set! result v1-3)) + ) + ) + (label cfg-4) + ) + ) + (set! iter (entity-actor-lookup iter 'next-actor 0)) + ) + result + ) + ) + ) ;; definition for method 21 of type actor-link-info -;; ERROR: function was not converted to expressions. Cannot decompile. +(defmethod + send-to-all-before + actor-link-info + ((obj actor-link-info) (arg0 object)) + (with-pp + (let ((s4-0 (-> obj prev)) + (s5-0 (the-as object #f)) + ) + (while s4-0 + (let ((a0-1 (-> s4-0 extra process))) + (when a0-1 + (let ((a1-1 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-1 from) pp) + (set! (-> a1-1 num-params) 0) + (set! (-> a1-1 message) (the-as basic arg0)) + (let ((v1-3 (send-event-function a0-1 a1-1))) + (b! v1-3 cfg-4 :likely-delay (set! s5-0 v1-3)) + ) + ) + (label cfg-4) + ) + ) + (set! s4-0 (entity-actor-lookup s4-0 'prev-actor 0)) + ) + s5-0 + ) + ) + ) ;; definition for method 23 of type actor-link-info ;; INFO: Return type mismatch int vs none. @@ -436,3 +490,7 @@ incomplete-count ) ) + + + + diff --git a/test/decompiler/reference/engine/sound/gsound-h_REF.gc b/test/decompiler/reference/engine/sound/gsound-h_REF.gc index b64471e9a5..486da1f435 100644 --- a/test/decompiler/reference/engine/sound/gsound-h_REF.gc +++ b/test/decompiler/reference/engine/sound/gsound-h_REF.gc @@ -782,10 +782,10 @@ :flag-assert #xe0000006c (:methods (new (symbol type basic vector) _type_ 0) - (dummy-9 (_type_) int 9) - (dummy-10 (_type_ sound-name) int 10) - (dummy-11 (_type_ vector) int 11) - (dummy-12 (_type_ int) int 12) + (update! (_type_) int 9) + (change-sound! (_type_ sound-name) int 10) + (update-trans! (_type_ vector) int 11) + (update-vol! (_type_ int) int 12) (stop! (_type_) int 13) ) ) diff --git a/test/decompiler/reference/engine/sound/gsound_REF.gc b/test/decompiler/reference/engine/sound/gsound_REF.gc new file mode 100644 index 0000000000..b740b9e99a --- /dev/null +++ b/test/decompiler/reference/engine/sound/gsound_REF.gc @@ -0,0 +1,1741 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for symbol *sound-player-rpc*, type rpc-buffer-pair +(define + *sound-player-rpc* + (new 'global 'rpc-buffer-pair (the-as uint 80) (the-as uint 128) 0) + ) + +;; definition for symbol *sound-loader-rpc*, type rpc-buffer-pair +(define + *sound-loader-rpc* + (new 'global 'rpc-buffer-pair (the-as uint 80) (the-as uint 1) 1) + ) + +;; definition for function sound-name= +(defun sound-name= ((arg0 sound-name) (arg1 sound-name)) + (and (= (the-as uint arg0) (the-as uint arg1)) (= (-> arg0 hi) (-> arg1 hi))) + ) + +;; definition of type sound-iop-info +(deftype sound-iop-info (basic) + ((frame uint32 :offset 16) + (strpos int32 :offset-assert 20) + (str-id uint32 :offset-assert 24) + (str-id-sign int32 :offset 24) + (freemem uint32 :offset-assert 28) + (chinfo uint8 48 :offset-assert 32) + (freemem2 uint32 :offset-assert 80) + (nocd uint32 :offset-assert 84) + (dirtycd uint32 :offset-assert 88) + (diskspeed uint32 2 :offset-assert 92) + (lastspeed uint32 :offset-assert 100) + (dupseg int32 :offset-assert 104) + (times uint32 41 :offset-assert 108) + (times-seq uint32 :offset-assert 272) + ) + :method-count-assert 9 + :size-assert #x114 + :flag-assert #x900000114 + ) + +;; definition for method 3 of type sound-iop-info +(defmethod inspect sound-iop-info ((obj sound-iop-info)) + (format #t "[~8x] ~A~%" obj (-> obj type)) + (format #t "~Tframe: ~D~%" (-> obj frame)) + (format #t "~Tstrpos: ~D~%" (-> obj strpos)) + (format #t "~Tstr-id: ~D~%" (-> obj str-id)) + (format #t "~Tstr-id-sign: ~D~%" (-> obj str-id-sign)) + (format #t "~Tfreemem: ~D~%" (-> obj freemem)) + (format #t "~Tchinfo[48] @ #x~X~%" (-> obj chinfo)) + (format #t "~Tfreemem2: ~D~%" (-> obj freemem2)) + (format #t "~Tnocd: ~D~%" (-> obj nocd)) + (format #t "~Tdirtycd: ~D~%" (-> obj dirtycd)) + (format #t "~Tdiskspeed[2] @ #x~X~%" (-> obj diskspeed)) + (format #t "~Tlastspeed: ~D~%" (-> obj lastspeed)) + (format #t "~Tdupseg: ~D~%" (-> obj dupseg)) + (format #t "~Ttimes[41] @ #x~X~%" (-> obj times)) + (format #t "~Ttimes-seq: ~D~%" (-> obj times-seq)) + obj + ) + +;; definition for symbol *sound-iop-info*, type sound-iop-info +(define *sound-iop-info* (new 'global 'sound-iop-info)) + +;; definition for function str-is-playing? +(defun str-is-playing? () + (!= (-> *sound-iop-info* strpos) -1) + ) + +;; definition for function current-str-id +(defun current-str-id () + (-> *sound-iop-info* str-id-sign) + ) + +;; definition for function current-str-pos +(defun current-str-pos ((arg0 int)) + (let ((v0-0 -1)) + (if (= arg0 (-> *sound-iop-info* str-id)) + (set! v0-0 (-> *sound-iop-info* strpos)) + ) + v0-0 + ) + ) + +;; definition for function is-cd-in? +(defun is-cd-in? () + (zero? (-> *sound-iop-info* nocd)) + ) + +;; definition for function new-sound-id +(defun new-sound-id () + (set! *current-sound-id* (+ *current-sound-id* (the-as uint 1))) + (if (< (the-as int *current-sound-id*) #x10000) + (set! *current-sound-id* (the-as sound-id #x10000)) + ) + *current-sound-id* + ) + +;; definition for function check-irx-version +(defun check-irx-version () + (let + ((cmd (the-as sound-rpc-get-irx-version (add-element *sound-loader-rpc*)))) + (set! (-> cmd command) (sound-command get-irx-version)) + (set! (-> cmd ee-addr) (&-> *sound-iop-info* frame)) + (call + *sound-loader-rpc* + (the-as uint 0) + (the-as pointer cmd) + (the-as uint 80) + ) + (sync *sound-loader-rpc* #f) + (format 0 "IRX version ~D.~D~%" (-> cmd major) (-> cmd minor)) + (when (or (!= (-> cmd major) 2) (nonzero? (-> cmd minor))) + (format 0 "ERROR: IRX is the wrong version - need ~D.~D~%" 2 0) + (format 0 "~%~%Please do (:mch) then mkee on linux-dog~%~%~%") + (crash!) + 0 + ) + ) + 0 + ) + +;; failed to figure out what this is: +(check-irx-version) + +;; definition for function sound-bank-load +;; Used lq/sq +(defun sound-bank-load ((arg0 sound-name)) + (let ((gp-0 (new-sound-id))) + (let ((cmd (the-as sound-rpc-load-bank (add-element *sound-loader-rpc*)))) + (set! (-> cmd command) (sound-command load-bank)) + (set! (-> cmd bank-name) arg0) + ) + (call *sound-loader-rpc* (the-as uint 0) (the-as pointer 0) (the-as uint 0)) + gp-0 + ) + ) + +;; definition for function sound-bank-unload +;; Used lq/sq +(defun sound-bank-unload ((arg0 sound-name)) + (let ((cmd (the-as sound-rpc-unload-bank (add-element *sound-loader-rpc*)))) + (set! (-> cmd command) (sound-command unload-bank)) + (set! (-> cmd bank-name) arg0) + ) + (call *sound-loader-rpc* (the-as uint 0) (the-as pointer 0) (the-as uint 0)) + 0 + ) + +;; definition for function sound-music-load +;; Used lq/sq +(defun sound-music-load ((arg0 sound-name)) + (let ((cmd (the-as sound-rpc-load-music (add-element *sound-loader-rpc*)))) + (set! (-> cmd command) (sound-command load-music)) + (set! (-> cmd bank-name) arg0) + ) + (call *sound-loader-rpc* (the-as uint 0) (the-as pointer 0) (the-as uint 0)) + 0 + ) + +;; definition for function sound-music-unload +(defun sound-music-unload () + (let ((cmd (the-as sound-rpc-unload-music (add-element *sound-loader-rpc*)))) + (set! (-> cmd command) (sound-command unload-music)) + ) + (call *sound-loader-rpc* (the-as uint 0) (the-as pointer 0) (the-as uint 0)) + 0 + ) + +;; failed to figure out what this is: +(sound-bank-load (static-sound-name "common")) + +;; failed to figure out what this is: +(sound-bank-load (static-sound-name "empty1")) + +;; failed to figure out what this is: +(sound-bank-load (static-sound-name "empty2")) + +;; definition for symbol *sound-bank-1*, type symbol +(define *sound-bank-1* 'empty1) + +;; definition for symbol *sound-bank-2*, type symbol +(define *sound-bank-2* 'empty2) + +;; definition for function sound-reload-info +(defun sound-reload-info () + (let ((cmd (the-as sound-rpc-reload-info (add-element *sound-loader-rpc*)))) + (set! (-> cmd command) (sound-command reload-info)) + ) + (call *sound-loader-rpc* (the-as uint 0) (the-as pointer 0) (the-as uint 0)) + 0 + ) + +;; definition for function set-language +(defun set-language ((arg0 int)) + (kset-language arg0) + (let ((cmd (the-as sound-rpc-set-language (add-element *sound-loader-rpc*)))) + (set! (-> cmd command) (sound-command set-language)) + (set! (-> cmd lang) (the-as uint arg0)) + ) + (call *sound-loader-rpc* (the-as uint 0) (the-as pointer 0) (the-as uint 0)) + 0 + ) + +;; definition for function list-sounds +(defun list-sounds () + (let ((cmd (the-as sound-rpc-list-sounds (add-element *sound-loader-rpc*)))) + (set! (-> cmd command) (sound-command list-sounds)) + ) + (call *sound-loader-rpc* (the-as uint 0) (the-as pointer 0) (the-as uint 0)) + 0 + ) + +;; definition for function sound-command->string +(defun sound-command->string ((arg0 sound-command)) + (case arg0 + (((sound-command unload-music)) + "unload-music" + ) + (((sound-command list-sounds)) + "list-sounds" + ) + (((sound-command shutdown)) + "shutdown" + ) + (((sound-command set-ear-trans)) + "set-ear-trans" + ) + (((sound-command set-reverb)) + "set-reverb" + ) + (((sound-command set-flava)) + "set-flava" + ) + (((sound-command set-language)) + "set-language" + ) + (((sound-command reload-info)) + "reload-info" + ) + (((sound-command set-sound-falloff)) + "set-sound-falloff" + ) + (((sound-command set-falloff-curve)) + "set-falloff-curve" + ) + (((sound-command get-irx-version)) + "get-irx-version" + ) + (((sound-command continue-group)) + "continue-group" + ) + (((sound-command stop-group)) + "stop-group" + ) + (((sound-command pause-group)) + "pause-group" + ) + (((sound-command set-master-volume)) + "set-master-volume" + ) + (((sound-command set-param)) + "set-param" + ) + (((sound-command continue-sound)) + "continue-sound" + ) + (((sound-command stop-sound)) + "stop-sound" + ) + (((sound-command pause-sound)) + "pause-sound" + ) + (((sound-command play)) + "play" + ) + (((sound-command unload-bank)) + "unload-bank" + ) + (((sound-command load-music)) + "load-music" + ) + (((sound-command load-bank)) + "load-bank" + ) + (else + "*unknown*" + ) + ) + ) + +;; definition for function sound-buffer-dump +;; Used lq/sq +(defun sound-buffer-dump () + (let ((gp-0 (-> *sound-player-rpc* current elt-used)) + (s5-0 (-> *sound-player-rpc* current elt-size)) + ) + (dotimes (s4-0 (the-as int gp-0)) + (let* + ((cmd + (the-as + sound-rpc-play + (&+ (-> *sound-player-rpc* current base) (* s5-0 (the-as uint s4-0))) + ) + ) + (a3-0 (sound-command->string (-> cmd command))) + ) + (case (-> cmd command) + (((sound-command play)) + (format #t "~D ~A ~G~%" s4-0 a3-0 (-> cmd name)) + ) + (else + (format #t "~D ~A~%" s4-0 a3-0) + ) + ) + ) + ) + ) + 0 + ) + +;; definition for symbol *sound-player-enable*, type symbol +(define *sound-player-enable* #t) + +;; definition for function swap-sound-buffers +(defun swap-sound-buffers ((arg0 vector) (arg1 vector) (arg2 float)) + (cond + ((check-busy *sound-player-rpc*) + (set! *sound-player-enable* #f) + ) + (else + (let ((a0-2 (-> *sound-player-rpc* current))) + (if (< (-> a0-2 elt-used) (-> a0-2 elt-count)) + (sound-set-ear-trans arg0 arg1 arg2) + ) + ) + (call *sound-player-rpc* (the-as uint 0) (the-as pointer 0) (the-as uint 0)) + (set! *sound-player-enable* #t) + ) + ) + (cond + ((nonzero? (-> *sound-iop-info* nocd)) + (if + (or + (not *progress-process*) + (!= (-> *progress-process* 0 display-state) 32) + ) + (activate-progress *dproc* 32) + ) + ) + ((nonzero? (-> *sound-iop-info* dirtycd)) + (if + (or + (not *progress-process*) + (!= (-> *progress-process* 0 display-state) 33) + ) + (activate-progress *dproc* 33) + ) + ) + ) + 0 + ) + +;; definition for function get-sound-buffer-entry +(defun get-sound-buffer-entry () + (add-element *sound-player-rpc*) + ) + +;; definition for function free-last-sound-buffer-entry +(defun free-last-sound-buffer-entry () + (decrement-elt-used *sound-player-rpc*) + 0 + ) + +;; definition for function sound-basic-cb +;; INFO: Return type mismatch int vs none. +(defun sound-basic-cb ((arg0 int) (arg1 (pointer int32))) + (set! (-> arg1 0) arg0) + 0 + (none) + ) + +;; definition for function sound-trans-convert +(defun sound-trans-convert ((arg0 vector3w) (arg1 vector)) + (let ((v1-0 (if arg1 + arg1 + (ear-trans) + ) + ) + ) + (set! (-> arg0 x) (the int (* 0.0625 (-> v1-0 x)))) + (set! (-> arg0 y) (the int (* 0.0625 (-> v1-0 y)))) + (set! (-> arg0 z) (the int (* 0.0625 (-> v1-0 z)))) + ) + 0 + ) + +;; definition for function sound-angle-convert +(defun sound-angle-convert ((arg0 float)) + (let* ((f0-3 (the float (sar (shl (the int arg0) 48) 48))) + (v0-0 (the int (* 0.005493164 f0-3))) + ) + (if (< v0-0 0) + (+! v0-0 360) + ) + (if (< 359 v0-0) + (+! v0-0 -360) + ) + v0-0 + ) + ) + +;; definition for function string->sound-name +;; INFO: Return type mismatch uint128 vs sound-name. +;; Used lq/sq +(defun string->sound-name ((str string)) + (let ((snd-name (new 'stack-no-clear 'qword))) + (set! (-> snd-name quad) (the-as uint128 0)) + (let ((out-ptr (the-as (pointer uint8) snd-name)) + (in-ptr (-> str data)) + ) + (while + (and + (nonzero? (-> in-ptr 0)) + (< (&- in-ptr (the-as uint (-> str data))) 15) + ) + (set! (-> out-ptr 0) (-> in-ptr 0)) + (set! out-ptr (&-> out-ptr 1)) + (set! in-ptr (&-> in-ptr 1)) + ) + ) + (the-as sound-name (-> snd-name quad)) + ) + ) + +;; definition for function sound-set-volume +(defun sound-set-volume ((arg0 uint) (arg1 float)) + (let ((cmd (the-as sound-rpc-set-master-volume (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command set-master-volume)) + (set! (-> cmd group) arg0) + (set! (-> cmd volume) (the int (* 10.24 arg1))) + ) + 0 + ) + +;; definition for function sound-set-reverb +(defun sound-set-reverb ((arg0 int) (arg1 float) (arg2 float) (arg3 uint)) + (let ((cmd (the-as sound-rpc-set-reverb (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command set-reverb)) + (set! (-> cmd core) arg3) + (set! (-> cmd reverb) arg0) + (set! (-> cmd left) (the-as uint (the int (* 32767.0 arg1)))) + (set! (-> cmd right) (the-as uint (the int (* 32767.0 arg2)))) + ) + 0 + ) + +;; definition for function sound-set-ear-trans +(defun sound-set-ear-trans ((arg0 vector) (arg1 vector) (arg2 float)) + (let ((cmd (the-as sound-rpc-set-ear-trans (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command set-ear-trans)) + (sound-trans-convert (-> cmd ear-trans) arg0) + (sound-trans-convert (-> cmd cam-trans) arg1) + (set! (-> cmd cam-angle) (sound-angle-convert arg2)) + ) + 0 + ) + +;; definition for function sound-play-by-name +;; Used lq/sq +(defun + sound-play-by-name + ((name sound-name) + (id sound-id) + (vol int) + (pitch int) + (bend int) + (group uint) + (trans vector) + ) + (local-vars (sv-16 uint)) + (with-pp + (set! sv-16 group) + (let ((sound-trans trans)) + (when *sound-player-enable* + (let ((cmd (the-as sound-rpc-play (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command play)) + (set! (-> cmd id) id) + (set! (-> cmd name) name) + (set! (-> cmd parms mask) (the-as uint 0)) + (set! (-> cmd parms group) sv-16) + (set! (-> cmd parms volume) vol) + (set! (-> cmd parms pitch-mod) pitch) + (set! (-> cmd parms bend) bend) + (let ((proc (the-as process-drawable pp))) + (when (= sound-trans #t) + (if + (and + proc + (type-type? (-> proc type) process-drawable) + (nonzero? (-> proc root)) + ) + (set! sound-trans (-> proc root trans)) + (set! sound-trans (the-as vector #f)) + ) + ) + ) + (sound-trans-convert (-> cmd parms trans) sound-trans) + ) + ) + ) + id + ) + ) + +;; definition for function sound-play-by-spec +;; Used lq/sq +(defun sound-play-by-spec ((spec sound-spec) (id sound-id) (trans vector)) + (with-pp + (when *sound-player-enable* + (let ((cmd (the-as sound-rpc-play (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command play)) + (set! (-> cmd id) id) + (set! (-> cmd name) (-> spec sound-name)) + (set! (-> cmd parms mask) (-> spec mask)) + (set! (-> cmd parms group) (-> spec group)) + (set! (-> cmd parms volume) (-> spec volume)) + (set! (-> cmd parms pitch-mod) (-> spec pitch-mod)) + (set! (-> cmd parms bend) (-> spec bend)) + (set! (-> cmd parms fo-min) (-> spec fo-min)) + (set! (-> cmd parms fo-max) (-> spec fo-max)) + (set! (-> cmd parms fo-curve) (-> spec fo-curve)) + (set! (-> cmd parms priority) (-> spec priority)) + (let ((proc (the-as process-drawable pp))) + (when (= trans #t) + (if + (and + proc + (type-type? (-> proc type) process-drawable) + (nonzero? (-> proc root)) + ) + (set! trans (-> proc root trans)) + (set! trans (the-as vector #f)) + ) + ) + ) + (sound-trans-convert (-> cmd parms trans) trans) + ) + ) + id + ) + ) + +;; definition for function sound-pause +(defun sound-pause ((arg0 sound-id)) + (let ((cmd (the-as sound-rpc-pause-sound (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command pause-sound)) + (set! (-> cmd id) arg0) + ) + 0 + ) + +;; definition for function sound-stop +(defun sound-stop ((arg0 sound-id)) + (let ((cmd (the-as sound-rpc-stop-sound (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command stop-sound)) + (set! (-> cmd id) arg0) + ) + 0 + ) + +;; definition for function sound-continue +(defun sound-continue ((arg0 sound-id)) + (let ((cmd (the-as sound-rpc-continue-sound (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command continue-sound)) + (set! (-> cmd id) arg0) + ) + 0 + ) + +;; definition for function sound-group-pause +(defun sound-group-pause ((arg0 uint)) + (let ((cmd (the-as sound-rpc-pause-group (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command pause-group)) + (set! (-> cmd group) arg0) + ) + 0 + ) + +;; definition for function sound-group-stop +(defun sound-group-stop ((arg0 uint)) + (let ((cmd (the-as sound-rpc-stop-group (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command stop-group)) + (set! (-> cmd group) arg0) + ) + 0 + ) + +;; definition for function sound-group-continue +(defun sound-group-continue ((arg0 uint)) + (let ((cmd (the-as sound-rpc-continue-group (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command continue-group)) + (set! (-> cmd group) arg0) + ) + 0 + ) + +;; definition for function sound-set-falloff-curve +(defun sound-set-falloff-curve ((arg0 int) (arg1 float) (arg2 float)) + (let ((cmd (the-as sound-rpc-set-falloff-curve (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command set-falloff-curve)) + (set! (-> cmd curve) arg0) + (set! (-> cmd falloff) (the int (* 4096.0 arg1))) + (set! (-> cmd ease) (the int (* 4096.0 arg2))) + ) + 0 + ) + +;; definition for function sound-set-sound-falloff +;; Used lq/sq +(defun + sound-set-sound-falloff + ((arg0 sound-name) (arg1 int) (arg2 int) (arg3 int)) + (let ((cmd (the-as sound-rpc-set-sound-falloff (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command set-sound-falloff)) + (set! (-> cmd name) arg0) + (set! (-> cmd min) arg1) + (set! (-> cmd max) arg2) + (set! (-> cmd curve) arg3) + ) + 0 + ) + +;; definition for function sound-set-flava +(defun sound-set-flava ((arg0 uint)) + (let ((cmd (the-as sound-rpc-set-flava (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command set-flava)) + (set! (-> cmd flava) arg0) + ) + 0 + ) + +;; definition for function sound-volume-off +(defun sound-volume-off () + (with-pp + (set-setting! *setting-control* pp 'music-volume 'abs 0.0 0) + (set-setting! *setting-control* pp 'sfx-volume 'abs 0.0 0) + (set-setting! *setting-control* pp 'ambient-volume 'abs 0.0 0) + 0 + ) + ) + +;; definition for symbol *ambient-spec*, type sound-spec +(define *ambient-spec* (new 'static 'sound-spec)) + +;; definition for method 0 of type ambient-sound +;; INFO: Return type mismatch object vs ambient-sound. +;; Used lq/sq +(defmethod + new + ambient-sound + ((allocation symbol) (type-to-make type) (arg0 basic) (arg1 vector)) + (local-vars + (sv-16 sound-spec) + (sv-32 sound-name) + (sv-48 (pointer float)) + (sv-52 sound-play-parms) + (sv-56 int) + (sv-64 res-tag) + ) + (set! sv-16 (the-as sound-spec #f)) + (set! sv-32 (the-as sound-name 0)) + (set! sv-48 (the-as (pointer float) #f)) + (set! sv-52 (the-as sound-play-parms #f)) + (set! sv-56 0) + (case (-> arg0 type) + ((entity-actor entity-ambient) + (let + ((bc + ((method-of-type res-lump get-property-struct) + (the-as res-lump arg0) + 'effect-name + 'exact + 0.0 + #f + (the-as (pointer res-tag) #f) + *res-static-buf* + ) + ) + ) + (when bc + (set! + sv-32 + (string->sound-name + (the-as + string + (-> (the-as (pointer uint32) (+ #xff38 (the-as int bc)))) + ) + ) + ) + (set! + sv-48 + (the-as + (pointer float) + ((method-of-type res-lump get-property-data) + (the-as res-lump arg0) + 'cycle-speed + 'interp + -1000000000.0 + (the-as pointer #f) + (the-as (pointer res-tag) #f) + *res-static-buf* + ) + ) + ) + (set! sv-16 *ambient-spec*) + (set! sv-64 (new 'static 'res-tag)) + (let + ((v1-7 + ((method-of-type res-lump get-property-data) + (the-as res-lump arg0) + 'effect-param + 'exact + 0.0 + (the-as pointer #f) + (& sv-64) + *res-static-buf* + ) + ) + ) + (when v1-7 + (set! sv-52 (the-as sound-play-parms v1-7)) + (set! sv-56 (the-as int (-> sv-64 elt-count))) + ) + ) + ) + ) + ) + ((sound-spec) + (set! sv-16 (the-as sound-spec arg0)) + ) + ((symbol) + (set! + sv-32 + (string->sound-name + (the-as + string + (-> (the-as (pointer uint32) (+ #xff38 (the-as int arg0)))) + ) + ) + ) + ) + ((string) + (set! sv-32 (string->sound-name (the-as string arg0))) + ) + (else + (format 0 "ERROR: ambient sound was told to play an unknown ~A.~%" arg0) + ) + ) + (the-as ambient-sound (cond + ((or sv-16 (nonzero? sv-32)) + (let + ((obj + (object-new + allocation + type-to-make + (the-as int (-> type-to-make size)) + ) + ) + ) + (set! (-> obj spec) sv-16) + (set! (-> obj name) sv-32) + (set! (-> obj playing-id) (new-sound-id)) + (set! (-> obj params) sv-52) + (set! (-> obj param-count) sv-56) + (set! (-> obj entity) #f) + (set! (-> obj sound-count) 1) + (set! (-> obj volume) 1024) + (set! (-> obj pitch) 0) + (when (and sv-16 (!= sv-16 *ambient-spec*)) + (if + (nonzero? + (logand (-> (the-as sound-spec sv-16) mask) 1) + ) + (set! + (-> obj volume) + (-> (the-as sound-spec sv-16) volume) + ) + ) + (if + (nonzero? + (logand (-> (the-as sound-spec sv-16) mask) 2) + ) + (set! + (-> obj pitch) + (-> (the-as sound-spec sv-16) pitch-mod) + ) + ) + ) + (cond + (sv-48 + (set! + (-> obj time-base) + (the-as uint (the int (* 300.0 (-> sv-48 0)))) + ) + (set! + (-> obj time-random) + (the-as uint (the int (* 300.0 (-> sv-48 1)))) + ) + ) + (else + (set! (-> obj time-base) (the-as uint -1)) + ) + ) + (set! (-> obj trans quad) (-> arg1 quad)) + obj + ) + ) + (else + (the-as ambient-sound 0) + ) + ) + ) + ) + +;; definition for method 9 of type ambient-sound +;; Used lq/sq +(defmethod update! ambient-sound ((obj ambient-sound)) + (with-pp + (if (not *ambient-sound-class*) + (return (the-as int #f)) + ) + (cond + ((-> obj spec) + (when + (or + (< (the-as int (-> obj time-base)) 0) + (>= + (the-as int (-> *display* base-frame-counter)) + (the-as int (-> obj play-time)) + ) + ) + (when (>= (the-as int (-> obj time-base)) 0) + (set! + (-> obj play-time) + (+ + (+ (-> *display* base-frame-counter) (-> obj time-base)) + (the-as uint (rand-vu-int-count (the-as int (-> obj time-random)))) + ) + ) + (set! (-> obj playing-id) (new-sound-id)) + ) + (let ((spec (-> obj spec))) + (when (= spec *ambient-spec*) + (set! (-> spec volume) (-> obj volume)) + (set! (-> spec pitch-mod) (-> obj pitch)) + (set! (-> spec bend) 0) + (set! (-> spec sound-name) (-> obj name)) + (set! (-> spec fo-max) (-> obj falloff-far)) + (set! (-> spec mask) (the-as uint 0)) + (if (-> obj params) + (effect-param->sound-spec spec (-> obj params) (-> obj param-count)) + ) + ) + (if + (and + (nonzero? (-> spec fo-max)) + (< + (* 4096.0 (the float (-> spec fo-max))) + (vector-vector-distance (ear-trans) (-> obj trans)) + ) + ) + (return 0) + ) + (when (and *debug-effect-control* (>= (the-as int (-> obj time-base)) 0)) + (format + #t + "(~5D) effect sound ~A ~G " + (-> *display* base-frame-counter) + (-> pp name) + (-> spec sound-name-char) + ) + (format + #t + "volume: ~f pitch-mod: ~f~%" + (* 0.09765625 (the float (-> spec volume))) + (* 0.000656168 (the float (-> spec pitch-mod))) + ) + ) + (let ((spec-volume (-> spec volume))) + (set! (-> spec volume) (-> obj volume)) + (set! + (-> obj playing-id) + (sound-play-by-spec spec (-> obj playing-id) (-> obj trans)) + ) + (set! (-> spec volume) spec-volume) + ) + ) + ) + ) + ((< (the-as int (-> obj time-base)) 0) + (set! + (-> obj playing-id) + (sound-play-by-name + (-> obj name) + (-> obj playing-id) + (-> obj volume) + (-> obj pitch) + 0 + (the-as uint 1) + (-> obj trans) + ) + ) + ) + (else + (when + (>= + (the-as int (-> *display* base-frame-counter)) + (the-as int (-> obj play-time)) + ) + (set! + (-> obj playing-id) + (sound-play-by-name + (-> obj name) + (new-sound-id) + (-> obj volume) + (-> obj pitch) + 0 + (the-as uint 1) + (-> obj trans) + ) + ) + (set! + (-> obj play-time) + (+ + (+ (-> *display* base-frame-counter) (-> obj time-base)) + (the-as uint (rand-vu-int-count (the-as int (-> obj time-random)))) + ) + ) + ) + ) + ) + 0 + ) + ) + +;; definition for method 13 of type ambient-sound +(defmethod stop! ambient-sound ((obj ambient-sound)) + (sound-stop (-> obj playing-id)) + 0 + ) + +;; definition for method 11 of type ambient-sound +;; Used lq/sq +(defmethod update-trans! ambient-sound ((obj ambient-sound) (arg0 vector)) + (with-pp + (set! (-> obj trans quad) (-> arg0 quad)) + (when (nonzero? (-> obj playing-id)) + (let ((cmd (the-as sound-rpc-set-param (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command set-param)) + (set! (-> cmd id) (-> obj playing-id)) + (let ((s4-1 pp)) + (when (= arg0 #t) + (if + (and + (the-as process-drawable s4-1) + (type-type? (-> (the-as process-drawable s4-1) type) process-drawable) + (nonzero? (-> (the-as process-drawable s4-1) root)) + ) + (set! arg0 (-> (the-as process-drawable s4-1) root trans)) + (set! arg0 (the-as vector #f)) + ) + ) + ) + (sound-trans-convert (-> cmd parms trans) arg0) + (set! (-> cmd parms mask) (the-as uint 32)) + (-> cmd id) + ) + ) + 0 + ) + ) + +;; definition for method 12 of type ambient-sound +(defmethod update-vol! ambient-sound ((obj ambient-sound) (arg0 int)) + (when (nonzero? (-> obj playing-id)) + (let ((cmd (the-as sound-rpc-set-param (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command set-param)) + (set! (-> cmd id) (-> obj playing-id)) + (set! (-> cmd parms volume) (the int (* 10.24 (the float arg0)))) + (set! (-> cmd parms mask) (the-as uint 1)) + (-> cmd id) + ) + ) + (set! (-> obj volume) (the int (* 10.24 (the float arg0)))) + 0 + ) + +;; definition for method 10 of type ambient-sound +;; Used lq/sq +(defmethod change-sound! ambient-sound ((obj ambient-sound) (arg0 sound-name)) + (when + (not + (and + (= (the-as uint (-> obj name)) (the-as uint arg0)) + (= (-> arg0 hi) (-> obj name hi)) + ) + ) + (stop! obj) + (set! (-> obj playing-id) (new-sound-id)) + (set! (-> obj name) arg0) + ) + 0 + ) + +;; definition for function show-iop-info +(defun show-iop-info ((arg0 dma-buffer)) + (dotimes (s5-0 24) + (draw-string-xy (if (zero? (-> *sound-iop-info* chinfo s5-0)) + "." + "X" + ) + arg0 + (+ (* s5-0 16) 16) + 48 + 0 + 1 + ) + ) + (dotimes (s5-1 24) + (draw-string-xy (if (zero? (-> *sound-iop-info* chinfo (+ s5-1 24))) + "." + "X" + ) + arg0 + (+ (* s5-1 16) 16) + 64 + 0 + 1 + ) + ) + 0 + ) + +;; definition for function show-iop-memory +(defun show-iop-memory ((arg0 dma-buffer)) + (let ((s5-0 draw-string-xy)) + (format + (clear *temp-string*) + "~8D [~4D]" + (-> *sound-iop-info* freemem) + (shr (-> *sound-iop-info* freemem) 10) + ) + (s5-0 *temp-string* arg0 32 96 0 1) + ) + (let ((s5-1 draw-string-xy)) + (format + (clear *temp-string*) + "~8D [~4D]" + (-> *sound-iop-info* freemem2) + (shr (-> *sound-iop-info* freemem2) 10) + ) + (s5-1 *temp-string* arg0 32 64 0 1) + ) + 0 + ) + +;; definition for function ear-trans +(defun ear-trans () + (cond + ((or (movie?) *external-cam-mode*) + (math-camera-pos) + ) + (*target* + (target-pos 0) + ) + (else + (camera-pos) + ) + ) + ) + +;; definition (debug) for function make-sqrt-table +(defun-debug make-sqrt-table () + (format #t "static int sqrt_table[256] =~%{~%") + (dotimes (gp-0 256) + (let* ((f0-2 (sqrtf (* 16777216.0 (the float gp-0)))) + (a2-0 (the int (+ 0.5 f0-2))) + ) + (format #t "~D,~%" a2-0) + ) + ) + (format #t "};~%") + 0 + ) + +;; definition of type flava-table-row +(deftype flava-table-row (structure) + ((music symbol :offset-assert 0) + (flava uint8 50 :offset-assert 4) + ) + :allow-misaligned :method-count-assert 9 + :size-assert #x36 + :flag-assert #x900000036 + ) + +;; definition for method 3 of type flava-table-row +(defmethod inspect flava-table-row ((obj flava-table-row)) + (format #t "[~8x] ~A~%" obj 'flava-table-row) + (format #t "~Tmusic: ~A~%" (-> obj music)) + (format #t "~Tflava[50] @ #x~X~%" (-> obj flava)) + obj + ) + +;; definition of type flava-table +(deftype flava-table (basic) + ((row flava-table-row 20 :inline :offset-assert 4) + (count int32 :offset-assert 1284) + ) + :method-count-assert 9 + :size-assert #x508 + :flag-assert #x900000508 + ) + +;; definition for method 3 of type flava-table +(defmethod inspect flava-table ((obj flava-table)) + (format #t "[~8x] ~A~%" obj (-> obj type)) + (format #t "~Trow[20] @ #x~X~%" (-> obj row)) + (format #t "~Tcount: ~D~%" (-> obj count)) + obj + ) + +;; definition for symbol *flava-table*, type flava-table +(define *flava-table* (new 'global 'flava-table)) + +;; failed to figure out what this is: +(set! (-> *flava-table* count) 0) + +;; definition for function flava-lookup +;; INFO: Return type mismatch int vs integer. +(defun flava-lookup ((arg0 symbol) (arg1 int)) + (dotimes (v1-0 (-> *flava-table* count)) + (if (= (-> *flava-table* row v1-0 music) arg0) + (return (the-as int (-> *flava-table* row 0 flava (+ arg1 (* v1-0 64))))) + ) + ) + 0 + ) + +;; failed to figure out what this is: +(set! (-> *flava-table* row (-> *flava-table* count) music) 'village1) + +;; failed to figure out what this is: +(dotimes (v1-61 50) + (set! + (-> *flava-table* row 0 flava (+ v1-61 (* (-> *flava-table* count) 64))) + (the-as uint 0) + ) + ) + +;; failed to figure out what this is: +(+! (-> *flava-table* count) 1) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 5) + (the-as uint 2) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 6) + (the-as uint 6) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 7) + (the-as uint 4) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 20) + (the-as uint 5) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 8) + (the-as uint 7) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 9) + (the-as uint 8) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 10) + (the-as uint 9) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 19) + (the-as uint 10) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 18) + (the-as uint 3) + ) + +;; failed to figure out what this is: +(set! (-> *flava-table* row (-> *flava-table* count) music) 'jungle) + +;; failed to figure out what this is: +(dotimes (v1-77 50) + (set! + (-> *flava-table* row 0 flava (+ v1-77 (* (-> *flava-table* count) 64))) + (the-as uint 0) + ) + ) + +;; failed to figure out what this is: +(+! (-> *flava-table* count) 1) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 39) + (the-as uint 1) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 40) + (the-as uint 2) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 41) + (the-as uint 3) + ) + +;; failed to figure out what this is: +(set! (-> *flava-table* row (-> *flava-table* count) music) 'firecanyon) + +;; failed to figure out what this is: +(dotimes (v1-87 50) + (set! + (-> *flava-table* row 0 flava (+ v1-87 (* (-> *flava-table* count) 64))) + (the-as uint 0) + ) + ) + +;; failed to figure out what this is: +(+! (-> *flava-table* count) 1) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 1) + (the-as uint 1) + ) + +;; failed to figure out what this is: +(set! (-> *flava-table* row (-> *flava-table* count) music) 'jungleb) + +;; failed to figure out what this is: +(dotimes (v1-95 50) + (set! + (-> *flava-table* row 0 flava (+ v1-95 (* (-> *flava-table* count) 64))) + (the-as uint 0) + ) + ) + +;; failed to figure out what this is: +(+! (-> *flava-table* count) 1) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 21) + (the-as uint 1) + ) + +;; failed to figure out what this is: +(set! (-> *flava-table* row (-> *flava-table* count) music) 'beach) + +;; failed to figure out what this is: +(dotimes (v1-103 50) + (set! + (-> *flava-table* row 0 flava (+ v1-103 (* (-> *flava-table* count) 64))) + (the-as uint 0) + ) + ) + +;; failed to figure out what this is: +(+! (-> *flava-table* count) 1) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 7) + (the-as uint 4) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 24) + (the-as uint 1) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 25) + (the-as uint 2) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 26) + (the-as uint 3) + ) + +;; failed to figure out what this is: +(set! (-> *flava-table* row (-> *flava-table* count) music) 'misty) + +;; failed to figure out what this is: +(dotimes (v1-114 50) + (set! + (-> *flava-table* row 0 flava (+ v1-114 (* (-> *flava-table* count) 64))) + (the-as uint 0) + ) + ) + +;; failed to figure out what this is: +(+! (-> *flava-table* count) 1) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 1) + (the-as uint 3) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 22) + (the-as uint 2) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 23) + (the-as uint 1) + ) + +;; failed to figure out what this is: +(set! (-> *flava-table* row (-> *flava-table* count) music) 'village2) + +;; failed to figure out what this is: +(dotimes (v1-124 50) + (set! + (-> *flava-table* row 0 flava (+ v1-124 (* (-> *flava-table* count) 64))) + (the-as uint 0) + ) + ) + +;; failed to figure out what this is: +(+! (-> *flava-table* count) 1) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 5) + (the-as uint 1) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 6) + (the-as uint 2) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 15) + (the-as uint 3) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 16) + (the-as uint 4) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 17) + (the-as uint 5) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 36) + (the-as uint 6) + ) + +;; failed to figure out what this is: +(set! (-> *flava-table* row (-> *flava-table* count) music) 'swamp) + +;; failed to figure out what this is: +(dotimes (v1-137 50) + (set! + (-> *flava-table* row 0 flava (+ v1-137 (* (-> *flava-table* count) 64))) + (the-as uint 0) + ) + ) + +;; failed to figure out what this is: +(+! (-> *flava-table* count) 1) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 2) + (the-as uint 4) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 37) + (the-as uint 2) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 38) + (the-as uint 3) + ) + +;; failed to figure out what this is: +(set! (-> *flava-table* row (-> *flava-table* count) music) 'rolling) + +;; failed to figure out what this is: +(dotimes (v1-147 50) + (set! + (-> *flava-table* row 0 flava (+ v1-147 (* (-> *flava-table* count) 64))) + (the-as uint 0) + ) + ) + +;; failed to figure out what this is: +(+! (-> *flava-table* count) 1) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 42) + (the-as uint 1) + ) + +;; failed to figure out what this is: +(set! (-> *flava-table* row (-> *flava-table* count) music) 'ogre) + +;; failed to figure out what this is: +(dotimes (v1-155 50) + (set! + (-> *flava-table* row 0 flava (+ v1-155 (* (-> *flava-table* count) 64))) + (the-as uint 0) + ) + ) + +;; failed to figure out what this is: +(+! (-> *flava-table* count) 1) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 43) + (the-as uint 1) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 44) + (the-as uint 2) + ) + +;; failed to figure out what this is: +(set! (-> *flava-table* row (-> *flava-table* count) music) 'village3) + +;; failed to figure out what this is: +(dotimes (v1-164 50) + (set! + (-> *flava-table* row 0 flava (+ v1-164 (* (-> *flava-table* count) 64))) + (the-as uint 0) + ) + ) + +;; failed to figure out what this is: +(+! (-> *flava-table* count) 1) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 3) + (the-as uint 4) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 4) + (the-as uint 5) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 5) + (the-as uint 2) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 6) + (the-as uint 3) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 14) + (the-as uint 1) + ) + +;; failed to figure out what this is: +(set! (-> *flava-table* row (-> *flava-table* count) music) 'maincave) + +;; failed to figure out what this is: +(dotimes (v1-176 50) + (set! + (-> *flava-table* row 0 flava (+ v1-176 (* (-> *flava-table* count) 64))) + (the-as uint 0) + ) + ) + +;; failed to figure out what this is: +(+! (-> *flava-table* count) 1) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 28) + (the-as uint 1) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 29) + (the-as uint 2) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 30) + (the-as uint 3) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 31) + (the-as uint 4) + ) + +;; failed to figure out what this is: +(set! (-> *flava-table* row (-> *flava-table* count) music) 'snow) + +;; failed to figure out what this is: +(dotimes (v1-187 50) + (set! + (-> *flava-table* row 0 flava (+ v1-187 (* (-> *flava-table* count) 64))) + (the-as uint 0) + ) + ) + +;; failed to figure out what this is: +(+! (-> *flava-table* count) 1) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 2) + (the-as uint 2) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 32) + (the-as uint 1) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 33) + (the-as uint 3) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 34) + (the-as uint 4) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 35) + (the-as uint 5) + ) + +;; failed to figure out what this is: +(set! (-> *flava-table* row (-> *flava-table* count) music) 'lavatube) + +;; failed to figure out what this is: +(dotimes (v1-199 50) + (set! + (-> *flava-table* row 0 flava (+ v1-199 (* (-> *flava-table* count) 64))) + (the-as uint 0) + ) + ) + +;; failed to figure out what this is: +(+! (-> *flava-table* count) 1) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 45) + (the-as uint 2) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 46) + (the-as uint 3) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 49) + (the-as uint 1) + ) + +;; failed to figure out what this is: +(set! (-> *flava-table* row (-> *flava-table* count) music) 'citadel) + +;; failed to figure out what this is: +(dotimes (v1-209 50) + (set! + (-> *flava-table* row 0 flava (+ v1-209 (* (-> *flava-table* count) 64))) + (the-as uint 0) + ) + ) + +;; failed to figure out what this is: +(+! (-> *flava-table* count) 1) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 5) + (the-as uint 1) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 6) + (the-as uint 2) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 11) + (the-as uint 3) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 12) + (the-as uint 4) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 13) + (the-as uint 5) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 27) + (the-as uint 6) + ) + +;; failed to figure out what this is: +(set! (-> *flava-table* row (-> *flava-table* count) music) 'finalboss) + +;; failed to figure out what this is: +(dotimes (v1-222 50) + (set! + (-> *flava-table* row 0 flava (+ v1-222 (* (-> *flava-table* count) 64))) + (the-as uint 0) + ) + ) + +;; failed to figure out what this is: +(+! (-> *flava-table* count) 1) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 47) + (the-as uint 1) + ) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 48) + (the-as uint 2) + ) + +;; failed to figure out what this is: +(set! (-> *flava-table* row (-> *flava-table* count) music) 'credits) + +;; failed to figure out what this is: +(dotimes (v1-231 50) + (set! + (-> *flava-table* row 0 flava (+ v1-231 (* (-> *flava-table* count) 64))) + (the-as uint 0) + ) + ) + +;; failed to figure out what this is: +(+! (-> *flava-table* count) 1) + +;; failed to figure out what this is: +(set! + (-> *flava-table* row (+ (-> *flava-table* count) -1) flava 49) + (the-as uint 2) + ) diff --git a/test/decompiler/test_FormExpressionBuild2.cpp b/test/decompiler/test_FormExpressionBuild2.cpp index 2d1713e641..5eb6edcf12 100644 --- a/test/decompiler/test_FormExpressionBuild2.cpp +++ b/test/decompiler/test_FormExpressionBuild2.cpp @@ -1310,7 +1310,8 @@ TEST_F(FormRegressionTest, SoundNameEqual) { " jr ra\n" " daddu sp, sp, r0"; std::string type = "(function sound-name sound-name symbol)"; - std::string expected = "(and (= arg0 arg1) (= (-> arg0 hi) (-> arg1 hi)))"; + std::string expected = + "(and (= (the-as uint arg0) (the-as uint arg1)) (= (-> arg0 hi) (-> arg1 hi)))"; test_with_expr(func, type, expected); } diff --git a/test/offline/offline_test_main.cpp b/test/offline/offline_test_main.cpp index 8ba393cff1..882d3d931d 100644 --- a/test/offline/offline_test_main.cpp +++ b/test/offline/offline_test_main.cpp @@ -62,8 +62,6 @@ const std::unordered_set g_functions_expected_to_reject = { // display "vblank-handler", // asm "vif1-handler", "vif1-handler-debug", - // stats-h - "(method 11 perf-stat)", "(method 12 perf-stat)", // ripple - asm "ripple-execute-init", "ripple-create-wave-table", "ripple-apply-wave-table", "ripple-matrix-scale", @@ -78,10 +76,6 @@ const std::unordered_set g_functions_expected_to_reject = { // collide-mesh-h "(method 11 collide-mesh-cache)", // asm - // actor-link-h - "(method 21 actor-link-info)", // BUG: sc cfg / cfg-ir bug - "(method 20 actor-link-info)", - "debug-menu-item-var-render" // asm }; @@ -143,6 +137,9 @@ const std::unordered_set g_functions_to_skip_compiling = { // asm "invalidate-cache-line", + // stats-h + "(method 11 perf-stat)", "(method 12 perf-stat)", + // sync-info "(method 15 sync-info)", // needs display stuff first "(method 15 sync-info-eased)", // needs display stuff first From 36ccf341a9c846426706befc5791bc30416606d1 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 20 Jul 2021 00:50:51 +0000 Subject: [PATCH 26/63] Updated github pages site --- docs/gh-pages-proj/src/config/progress.json | 2 +- docs/index.html | 2 +- docs/js/{about.750138b1.js => about.3506395f.js} | 4 ++-- docs/js/{about.750138b1.js.map => about.3506395f.js.map} | 2 +- docs/js/{app.81bb40f9.js => app.a68fab1a.js} | 4 ++-- docs/js/{app.81bb40f9.js.map => app.a68fab1a.js.map} | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) rename docs/js/{about.750138b1.js => about.3506395f.js} (99%) rename docs/js/{about.750138b1.js.map => about.3506395f.js.map} (99%) rename docs/js/{app.81bb40f9.js => app.a68fab1a.js} (97%) rename docs/js/{app.81bb40f9.js.map => app.a68fab1a.js.map} (98%) diff --git a/docs/gh-pages-proj/src/config/progress.json b/docs/gh-pages-proj/src/config/progress.json index 2c35918cdf..dc88a446cd 100644 --- a/docs/gh-pages-proj/src/config/progress.json +++ b/docs/gh-pages-proj/src/config/progress.json @@ -1,7 +1,7 @@ { "jak1": { "locPercentage": { - "value": 107180, + "value": 107272, "label": "Lines of Code" } } diff --git a/docs/index.html b/docs/index.html index 14666610ec..c3cc716780 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1 +1 @@ -OpenGOAL Tooling
\ No newline at end of file +OpenGOAL Tooling
\ No newline at end of file diff --git a/docs/js/about.750138b1.js b/docs/js/about.3506395f.js similarity index 99% rename from docs/js/about.750138b1.js rename to docs/js/about.3506395f.js index 44876fcc88..216cdd5445 100644 --- a/docs/js/about.750138b1.js +++ b/docs/js/about.3506395f.js @@ -1,2 +1,2 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":107180,"label":"Lines of Code"}}}')}}]); -//# sourceMappingURL=about.750138b1.js.map \ No newline at end of file +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":107272,"label":"Lines of Code"}}}')}}]); +//# sourceMappingURL=about.3506395f.js.map \ No newline at end of file diff --git a/docs/js/about.750138b1.js.map b/docs/js/about.3506395f.js.map similarity index 99% rename from docs/js/about.750138b1.js.map rename to docs/js/about.3506395f.js.map index 792dace111..f427544fff 100644 --- a/docs/js/about.750138b1.js.map +++ b/docs/js/about.3506395f.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?1e25","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.750138b1.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?963a","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.3506395f.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/js/app.81bb40f9.js b/docs/js/app.a68fab1a.js similarity index 97% rename from docs/js/app.81bb40f9.js rename to docs/js/app.a68fab1a.js index 84e7a5f546..779982dd10 100644 --- a/docs/js/app.81bb40f9.js +++ b/docs/js/app.a68fab1a.js @@ -1,2 +1,2 @@ -(function(e){function t(t){for(var n,o,i=t[0],c=t[1],l=t[2],s=0,p=[];s\n \n \n \n \n \n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?08e0","webpack:///src/App.vue","webpack:///./src/App.vue?1160","webpack:///./src/App.vue","webpack:///./src/plugins/vuetify.js","webpack:///./src/router/index.js","webpack:///./src/main.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_h","$createElement","_c","_self","staticRenderFns","components","component","VApp","VMain","Vue","use","Vuetify","theme","dark","VueRouter","routes","path","router","base","process","config","productionTip","vuetify","render","h","App","$mount"],"mappings":"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","file":"js/app.a68fab1a.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"3506395f\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"about\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"8d0e9591\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/jak-project/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[_c('v-main',[_c('router-view')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file From 09c09ce35f71435259d8794ff6f5bf6205ec31fa Mon Sep 17 00:00:00 2001 From: water111 <48171810+water111@users.noreply.github.com> Date: Thu, 22 Jul 2021 20:14:08 -0400 Subject: [PATCH 27/63] allow aliasing of registers in variables if we explictly ask for it (#711) --- docs/markdown/progress-notes/changelog.md | 3 +- goalc/compiler/Env.cpp | 5 +++ goalc/compiler/Env.h | 2 + goalc/compiler/compilation/Asm.cpp | 51 +++++++++++++++++------ 4 files changed, 48 insertions(+), 13 deletions(-) diff --git a/docs/markdown/progress-notes/changelog.md b/docs/markdown/progress-notes/changelog.md index 1b617dcf12..c76e93a3d9 100644 --- a/docs/markdown/progress-notes/changelog.md +++ b/docs/markdown/progress-notes/changelog.md @@ -180,4 +180,5 @@ - Fields with type `(inline-array thing)` can now be set in statics. - `meters`, `degrees`, and `seconds` types have been added. - Bitfields with `symbol` fields used in an immediate `(new 'static ...)` can now define the symbol in the `new` form. -- Bitfields with `float` fields used in an immediate `(new 'static ...)` in code can use a non-constant floating point value. \ No newline at end of file +- Bitfields with `float` fields used in an immediate `(new 'static ...)` in code can use a non-constant floating point value. +- Multiple variables assigned to the same register using `:reg` in `rlet` (or overlapping with `self` in a behavior) will now be merged to a single variable instead of causing a compiler error. Variables will have their own type, but they will all be an alias of the same exact register. \ No newline at end of file diff --git a/goalc/compiler/Env.cpp b/goalc/compiler/Env.cpp index 718e838b8a..17f5016de8 100644 --- a/goalc/compiler/Env.cpp +++ b/goalc/compiler/Env.cpp @@ -302,6 +302,11 @@ StackVarAddrVal* FunctionEnv::allocate_aligned_stack_variable(const TypeSpec& ts return result; } +RegVal* FunctionEnv::push_reg_val(std::unique_ptr in) { + m_iregs.push_back(std::move(in)); + return m_iregs.back().get(); +} + /////////////////// // LexicalEnv /////////////////// diff --git a/goalc/compiler/Env.h b/goalc/compiler/Env.h index afc34a490a..90ad79ab77 100644 --- a/goalc/compiler/Env.h +++ b/goalc/compiler/Env.h @@ -208,6 +208,8 @@ class FunctionEnv : public DeclareEnv { const std::vector>& reg_vals() const { return m_iregs; } + RegVal* push_reg_val(std::unique_ptr in); + int segment = -1; std::string method_of_type_name = "#f"; bool is_asm_func = false; diff --git a/goalc/compiler/compilation/Asm.cpp b/goalc/compiler/compilation/Asm.cpp index a34a3fc0c3..8d3da868f2 100644 --- a/goalc/compiler/compilation/Asm.cpp +++ b/goalc/compiler/compilation/Asm.cpp @@ -75,21 +75,48 @@ Val* Compiler::compile_rlet(const goos::Object& form, const goos::Object& rest, } // alloc a register: - auto new_place_reg = env->make_ireg(ts, register_class); - new_place_reg->mark_as_settable(); - + RegVal* new_place_reg = nullptr; if (def_args.has_named("reg")) { - IRegConstraint constraint; - constraint.ireg = new_place_reg->ireg(); - constraint.contrain_everywhere = true; - constraint.desired_register = parse_register(def_args.named.at("reg")); - if (def_args.has_named("reset-here") && - get_true_or_false(form, def_args.get_named("reset-here"))) { - reset_regs.push_back(new_place_reg); + auto desired_register = parse_register(def_args.named.at("reg")); + // we want to see if we already created a variable for this register, and reuse it. + for (auto& constr : fenv->constraints()) { + if (constr.desired_register == desired_register && constr.contrain_everywhere) { + auto reg_val_ptr = std::make_unique(constr.ireg, ts); + new_place_reg = fenv->push_reg_val(std::move(reg_val_ptr)); + new_place_reg->mark_as_settable(); + break; + } } - new_place_reg->set_rlet_constraint(constraint.desired_register); - constraints.push_back(constraint); + if (!new_place_reg) { + for (auto& constr : constraints) { + if (constr.desired_register == desired_register && constr.contrain_everywhere) { + auto reg_val_ptr = std::make_unique(constr.ireg, ts); + new_place_reg = fenv->push_reg_val(std::move(reg_val_ptr)); + new_place_reg->mark_as_settable(); + break; + } + } + } + } + + if (!new_place_reg) { + new_place_reg = env->make_ireg(ts, register_class); + new_place_reg->mark_as_settable(); + + if (def_args.has_named("reg")) { + IRegConstraint constraint; + constraint.ireg = new_place_reg->ireg(); + constraint.contrain_everywhere = true; + constraint.desired_register = parse_register(def_args.named.at("reg")); + if (def_args.has_named("reset-here") && + get_true_or_false(form, def_args.get_named("reset-here"))) { + reset_regs.push_back(new_place_reg); + } + + new_place_reg->set_rlet_constraint(constraint.desired_register); + constraints.push_back(constraint); + } } lenv->vars[new_place_name.as_symbol()->name] = new_place_reg; From 1e11a588f54a88f551c9d08310d203fc7b5e0841 Mon Sep 17 00:00:00 2001 From: ManDude <7569514+ManDude@users.noreply.github.com> Date: Fri, 23 Jul 2021 23:30:49 +0100 Subject: [PATCH 28/63] [decomp] `loader` prelim work + some cleanup (#697) * [decomp] `loader` prelim work + some cleanup * more things * more * even more * yet even more * minor fixes * decompiler fix + use behaviors for two funcs * last functions * Create loader_REF.gc * more work * change vag tool config format + unrelated farmer and yakow stuff * update some things * fix some decomp * cleanup things i came across + make dgo compileable * fix consistency test * update refs * offline test: skip buggy `external-art-buffer` method * fix test --- .vs/launch.vs.json | 7 + common/util/DgoReader.cpp | 2 +- decompiler/analysis/stack_spill.cpp | 3 +- decompiler/analysis/type_analysis.cpp | 3 +- decompiler/config/all-types.gc | 805 +++++---- .../config/jak1_ntsc_black_label/hacks.jsonc | 10 +- .../config/jak1_ntsc_black_label/inputs.jsonc | 11 +- .../jak1_ntsc_black_label/label_types.jsonc | 35 +- .../stack_structures.jsonc | 18 + .../jak1_ntsc_black_label/type_casts.jsonc | 87 + .../jak1_ntsc_black_label/var_names.jsonc | 30 +- decompiler/data/streamed_audio.cpp | 7 +- goal_src/engine/collide/collide-shape-h.gc | 2 +- goal_src/engine/data/art-h.gc | 4 +- goal_src/engine/debug/memory-usage-h.gc | 2 + goal_src/engine/debug/memory-usage.gc | 62 + goal_src/engine/draw/process-drawable-h.gc | 14 +- goal_src/engine/entity/actor-link-h.gc | 174 +- goal_src/engine/entity/entity-h.gc | 148 +- goal_src/engine/game/game-h.gc | 20 +- goal_src/engine/game/game-info-h.gc | 40 +- goal_src/engine/game/game-info.gc | 482 ++---- goal_src/engine/game/generic-obs-h.gc | 4 +- goal_src/engine/game/settings.gc | 182 +- goal_src/engine/game/task/task-control-h.gc | 74 +- goal_src/engine/game/task/task-control.gc | 332 ++-- goal_src/engine/gfx/depth-cue-h.gc | 3 +- goal_src/engine/gfx/sky/sky-h.gc | 28 +- goal_src/engine/gfx/sky/sky-utils.gc | 38 +- goal_src/engine/level/level.gc | 136 +- goal_src/engine/load/load-dgo.gc | 7 +- goal_src/engine/load/loader-h.gc | 95 +- goal_src/engine/load/loader.gc | 1052 ++++++++++++ goal_src/engine/math/math.gc | 9 + goal_src/engine/math/vector.gc | 12 +- goal_src/engine/nav/navigate-h.gc | 7 + goal_src/engine/sound/gsound-h.gc | 2 +- goal_src/engine/sound/gsound.gc | 34 +- goal_src/engine/target/logic-target.gc | 2 + goal_src/engine/target/target-h.gc | 2 +- .../engine/ui/progress/progress-static.gc | 11 +- goal_src/engine/util/types-h.gc | 26 +- goal_src/goal-lib.gc | 27 +- goal_src/kernel-defs.gc | 2 +- goal_src/kernel/gkernel-h.gc | 38 +- goal_src/kernel/gstate.gc | 10 +- .../engine/collide/collide-shape-h_REF.gc | 22 +- .../reference/engine/data/art-h_REF.gc | 4 +- .../engine/draw/process-drawable-h_REF.gc | 16 +- .../engine/entity/actor-link-h_REF.gc | 36 +- .../reference/engine/entity/entity-h_REF.gc | 8 +- .../reference/engine/game/game-h_REF.gc | 10 +- .../reference/engine/game/game-info-h_REF.gc | 26 +- .../engine/game/generic-obs-h_REF.gc | 30 +- .../engine/game/task/task-control-h_REF.gc | 72 +- .../reference/engine/gfx/sky/sky-h_REF.gc | 12 +- .../reference/engine/gfx/sky/sky-utils_REF.gc | 12 +- .../reference/engine/load/load-dgo_REF.gc | 4 +- .../reference/engine/load/loader-h_REF.gc | 74 +- .../reference/engine/load/loader_REF.gc | 1457 +++++++++++++++++ .../reference/engine/sound/gsound_REF.gc | 33 +- .../reference/engine/target/target-h_REF.gc | 2 +- .../reference/kernel/gkernel-h_REF.gc | 18 +- .../decompiler/reference/kernel/gstate_REF.gc | 2 +- .../with_game/test-fancy-static-fields.gc | 4 +- test/offline/offline_test_main.cpp | 5 +- 66 files changed, 4060 insertions(+), 1886 deletions(-) create mode 100644 test/decompiler/reference/engine/load/loader_REF.gc diff --git a/.vs/launch.vs.json b/.vs/launch.vs.json index 0650cbff3b..f7af0801bd 100644 --- a/.vs/launch.vs.json +++ b/.vs/launch.vs.json @@ -82,6 +82,13 @@ "projectTarget" : "memory_dump_tool.exe (bin\\memory_dump_tool.exe)", "name" : "Run - EE Memory Analyze", "args" : [ "${workspaceRoot}/eeMemory.bin", "${workspaceRoot}"] + }, + { + "type" : "default", + "project" : "CMakeLists.txt", + "projectTarget" : "dgo_unpacker.exe (bin\\dgo_unpacker.exe)", + "name" : "Run - DGO Unpacker (test)", + "args" : [ "C:\\GameData\\Jak1\\Backup\\DGO-PAL\\GAME", "C:\\GameData\\Jak1\\Backup\\DISC-PAL\\CGO\\GAME.CGO"] } ] } diff --git a/common/util/DgoReader.cpp b/common/util/DgoReader.cpp index fe81cd88b6..2e1def774f 100644 --- a/common/util/DgoReader.cpp +++ b/common/util/DgoReader.cpp @@ -58,4 +58,4 @@ std::string DgoReader::description_as_json() const { } return j.dump(4); -} \ No newline at end of file +} diff --git a/decompiler/analysis/stack_spill.cpp b/decompiler/analysis/stack_spill.cpp index 4db7b20257..f366e09171 100644 --- a/decompiler/analysis/stack_spill.cpp +++ b/decompiler/analysis/stack_spill.cpp @@ -78,6 +78,7 @@ struct StackInstrInfo { constexpr StackInstrInfo stack_instrs[] = {{InstructionKind::SQ, false, 16, false}, {InstructionKind::LQ, true, 16, false}, {InstructionKind::SW, false, 4, false}, + {InstructionKind::SH, false, 2, false}, {InstructionKind::SB, false, 1, false}, {InstructionKind::LBU, true, 1, false}, //{InstructionKind::LWU, true, 4, false} @@ -111,4 +112,4 @@ StackSpillMap build_spill_map(const std::vector& instructions, Rang map.finalize(); return map; } -} // namespace decompiler \ No newline at end of file +} // namespace decompiler diff --git a/decompiler/analysis/type_analysis.cpp b/decompiler/analysis/type_analysis.cpp index 990bf3f38c..a3491aae35 100644 --- a/decompiler/analysis/type_analysis.cpp +++ b/decompiler/analysis/type_analysis.cpp @@ -15,7 +15,8 @@ TypeState construct_initial_typestate(const TypeSpec& f_ts, const Env& env) { } // todo, more specific process types for behaviors. - result.get(Register(Reg::GPR, Reg::S6)) = TP_Type::make_from_ts(TypeSpec("process")); + result.get(Register(Reg::GPR, Reg::S6)) = + TP_Type::make_from_ts(TypeSpec(f_ts.try_get_tag("behavior").value_or("process"))); // initialize stack slots as uninitialized for (auto slot_info : env.stack_spills().map()) { diff --git a/decompiler/config/all-types.gc b/decompiler/config/all-types.gc index ada72f4021..fcdbb606cb 100644 --- a/decompiler/config/all-types.gc +++ b/decompiler/config/all-types.gc @@ -622,6 +622,13 @@ :bitfield #t :type uint32 (display-marks 0) + (bit1 1) + (bit2 2) + (bit3 3) + (bit4 4) + (bit5 5) + (bit6 6) + (bit7 7) (bit8 8) (bit13 13) ) @@ -977,7 +984,7 @@ (new (symbol type basic) _type_ 0) (activate (_type_ process-tree basic pointer) process-tree 9) (deactivate (_type_) none 10) - (dummy-method-11 () none 11) + (dummy-method-11 (_type_ object) none 11) (run-logic? (_type_) symbol 12) (dummy-method () none 13) ) @@ -1001,12 +1008,12 @@ (allow-to-run process-mask :offset-assert 12) (next-pid int32 :offset-assert 16) (fast-stack-top pointer :offset-assert 20) - (current-process basic :offset-assert 24) + (current-process process :offset-assert 24) (relocating-process basic :offset-assert 28) (relocating-min int32 :offset-assert 32) (relocating-max int32 :offset-assert 36) (relocating-offset int32 :offset-assert 40) - (low-memory-message basic :offset-assert 44) + (low-memory-message symbol :offset-assert 44) ) :method-count-assert 9 :size-assert #x30 @@ -1155,14 +1162,14 @@ (trans (function object) :offset-assert 20) (post function :offset-assert 24) (enter (function object object object object object object object) :offset-assert 28) - (event (function basic int basic event-message-block object) :offset-assert 32) + (event (function process int symbol event-message-block object) :offset-assert 32) ) (:methods (new (symbol type basic function (function object) (function object object object object object object object) (function object) - (function basic int basic event-message-block object)) _type_ 0) + (function process int symbol event-message-block object)) _type_ 0) ) :method-count-assert 9 :size-assert #x24 @@ -1170,10 +1177,10 @@ ) (deftype event-message-block (structure) - ((to basic :offset-assert 0) - (from basic :offset-assert 4) + ((to process :offset-assert 0) + (from process :offset-assert 4) (num-params int32 :offset-assert 8) - (message basic :offset-assert 12) + (message symbol :offset-assert 12) (param uint64 7 :offset-assert 16) ) :method-count-assert 9 @@ -1208,7 +1215,7 @@ (state state :offset-assert #x38) (trans-hook function :offset-assert #x3c) (post-hook function :offset-assert #x40) - (event-hook (function basic int basic event-message-block object) :offset-assert #x44) + (event-hook (function process int symbol event-message-block object) :offset-assert #x44) (allocated-length int32 :offset-assert #x48) (next-state state :offset-assert #x4c) (heap-base pointer :offset-assert #x50) @@ -1222,7 +1229,7 @@ (new (symbol type basic int) _type_ 0) (activate (_type_ process-tree basic pointer) process-tree 9) (deactivate (process) none 10) - (dummy-method-11 () none 11) + (dummy-method-11 (_type_ object) none 11) (run-logic? (process) symbol 12) (dummy-method () none 13) ) @@ -4394,28 +4401,31 @@ ;; - Types +(declare-type art-group basic) ;; custom fields (deftype load-dir (basic) ((unknown basic :offset-assert 4) - (string-array (array string) :offset-assert 8) - (data-array (array basic) :score -50 :offset-assert 12) + (string-array (array string) :offset-assert 8) ;; these are the names + (data-array (array basic) :score -50 :offset-assert 12) ;; this is the file data. ) :flag-assert #xb00000010 (:methods (new (symbol type int basic) _type_ 0) - (dummy-9 () none 9) - (dummy-10 () none 10) + ;; these methods dont exist + (dummy-9 (_type_ string symbol kheap int) art-group 9) + (dummy-10 (_type_ art-group) art-group 10) ) ) ;; custom fields -(declare-type art-group basic) (deftype load-dir-art-group (load-dir) ((art-group-array (array art-group) :offset 12) ) :flag-assert #xb00000010 (:methods (new (symbol type int basic) _type_ 0) + (dummy-9 (_type_ string symbol kheap int) art-group 9) + (dummy-10 (_type_ art-group) art-group 10) ) ) @@ -4428,13 +4438,13 @@ (heap kheap :inline :offset-assert 32) (pending-load-file string :offset-assert 48) (pending-load-file-part int32 :offset-assert 52) - (pending-load-file-owner uint64 :offset-assert 56) + (pending-load-file-owner handle :offset-assert 56) (pending-load-file-priority float :offset-assert 64) (load-file string :offset-assert 68) (load-file-part int32 :offset-assert 72) - (load-file-owner uint64 :offset-assert 80) + (load-file-owner handle :offset-assert 80) (load-file-priority float :offset-assert 88) - (buf uint32 :offset-assert 92) + (buf pointer :offset-assert 92) (len int32 :offset-assert 96) (art-group art-group :offset-assert 100) ) @@ -4443,23 +4453,25 @@ :flag-assert #x1000000068 (:methods (new (symbol type int) _type_ 0) - (dummy-9 (_type_ symbol int symbol float) none 9) - (dummy-10 () none 10) - (dummy-11 () none 11) - (dummy-12 () none 12) - (dummy-13 () none 13) - (dummy-14 () none 14) - (dummy-15 () none 15) + (want-file (_type_ string int handle float) int 9) + (update (_type_) int 10) + (inactive? (_type_) symbol 11) + (file-status (_type_ string int) symbol 12) + (link-file (_type_ art-group) art-group 13) + (unlink-file (_type_ art-group) int 14) + (unlock! (_type_) symbol 15) ) ) (deftype spool-anim (basic) ((name string :offset 16) ;; why? - (index int32 :offset-assert 20) + (buf1 external-art-buffer :offset 16) ;; custom + (buf2 external-art-buffer :offset-assert 20) ;; custom (also what?) + (index int32 :offset 20) (parts int32 :offset-assert 24) (priority float :offset-assert 28) - (owner uint64 :offset-assert 32) - (command-list basic :offset-assert 40) + (owner handle :offset-assert 32) + (command-list pair :offset-assert 40) ) :pack-me :method-count-assert 9 @@ -4467,14 +4479,13 @@ :flag-assert #x90000002c ) -; todo inline basics (deftype external-art-control (basic) ((buffer external-art-buffer 2 :offset-assert 4) - (rec spool-anim 3 :inline) - (spool-lock uint64 :offset-assert 160) - (reserve-buffer basic :offset-assert 168) + (rec spool-anim 3 :inline :offset-assert 16) + (spool-lock handle :offset-assert 160) + (reserve-buffer external-art-buffer :offset-assert 168) (reserve-buffer-count int32 :offset-assert 172) - (active-stream basic :offset-assert 176) + (active-stream string :offset-assert 176) (preload-stream spool-anim :inline :offset-assert 184) (last-preload-stream spool-anim :inline :offset-assert 232) (end-pad uint32) @@ -4484,14 +4495,14 @@ :flag-assert #x1100000118 (:methods (new (symbol type) _type_ 0) - (dummy-9 (_type_ symbol) none 9) - (dummy-10 (_type_) none 10) - (dummy-11 () none 11) - (dummy-12 () none 12) - (dummy-13 () none 13) - (dummy-14 () none 14) - (dummy-15 () none 15) - (dummy-16 () none 16) + (update (_type_ symbol) int 9) + (clear-rec (_type_) int 10) + (spool-push (_type_ string int process float) int 11) + (file-status (_type_ string int) symbol 12) + (reserve-alloc (_type_) kheap 13) + (reserve-free (_type_ kheap) int 14) + (none-reserved? (_type_) symbol 15) + (try-preload-stream (_type_ string int process float) int 16) ) ) @@ -6857,13 +6868,13 @@ ;; - Symbols -(define-extern *ocean-work* ocean-work) ;; unknown type -(define-extern *ocean-facing* int) ;; unknown type -(define-extern *ocean-off* symbol) ;; unknown type -(define-extern *ocean-mid-off* symbol) ;; unknown type -(define-extern *ocean-near-off* symbol) ;; unknown type -(define-extern *ocean-heights* symbol) ;; unknown type -(define-extern *ocean-verts* symbol) ;; unknown type +(define-extern *ocean-work* ocean-work) +(define-extern *ocean-facing* int) +(define-extern *ocean-off* symbol) +(define-extern *ocean-mid-off* symbol) +(define-extern *ocean-near-off* symbol) +(define-extern *ocean-heights* symbol) +(define-extern *ocean-verts* symbol) ;; ---------------------- @@ -6874,25 +6885,25 @@ ;; - Symbols -(define-extern *ocean-left-table* (pointer float)) ;; unknown type -(define-extern *ocean-right-table* (pointer float)) ;; unknown type -(define-extern *ocean-up-table* (pointer float)) ;; unknown type -(define-extern *ocean-down-table* (pointer float)) ;; unknown type -(define-extern *ocean-down-left-table* (pointer float)) ;; unknown type -(define-extern *ocean-down-right-table* (pointer float)) ;; unknown type -(define-extern *ocean-up-right-table* (pointer float)) ;; unknown type -(define-extern *ocean-up-left-table* (pointer float)) ;; unknown type -(define-extern *ocean-trans-left-table* (pointer float)) ;; unknown type -(define-extern *ocean-trans-right-table* (pointer float)) ;; unknown type -(define-extern *ocean-trans-up-table* (pointer float)) ;; unknown type -(define-extern *ocean-trans-down-table* (pointer float)) ;; unknown type -(define-extern *ocean-trans-down-left-table* (pointer float)) ;; unknown type -(define-extern *ocean-trans-down-right-table* (pointer float)) ;; unknown type -(define-extern *ocean-trans-up-right-table* (pointer float)) ;; unknown type -(define-extern *ocean-trans-up-left-table* (pointer float)) ;; unknown type -(define-extern *ocean-trans-corner-table* (pointer float)) ;; unknown type -(define-extern *ocean-trans-strip-array* (pointer float)) ;; unknown type -(define-extern *ocean-trans-st-table* (pointer float)) ;; unknown type +(define-extern *ocean-left-table* (pointer float)) +(define-extern *ocean-right-table* (pointer float)) +(define-extern *ocean-up-table* (pointer float)) +(define-extern *ocean-down-table* (pointer float)) +(define-extern *ocean-down-left-table* (pointer float)) +(define-extern *ocean-down-right-table* (pointer float)) +(define-extern *ocean-up-right-table* (pointer float)) +(define-extern *ocean-up-left-table* (pointer float)) +(define-extern *ocean-trans-left-table* (pointer float)) +(define-extern *ocean-trans-right-table* (pointer float)) +(define-extern *ocean-trans-up-table* (pointer float)) +(define-extern *ocean-trans-down-table* (pointer float)) +(define-extern *ocean-trans-down-left-table* (pointer float)) +(define-extern *ocean-trans-down-right-table* (pointer float)) +(define-extern *ocean-trans-up-right-table* (pointer float)) +(define-extern *ocean-trans-up-left-table* (pointer float)) +(define-extern *ocean-trans-corner-table* (pointer float)) +(define-extern *ocean-trans-strip-array* (pointer float)) +(define-extern *ocean-trans-st-table* (pointer float)) ;; ---------------------- @@ -6903,25 +6914,25 @@ ;; - Symbols -(define-extern *ocean-spheres-village1* ocean-spheres) ;; unknown type -(define-extern *ocean-colors-village1* ocean-colors) ;; unknown type -(define-extern *ocean-near-indices-village1* ocean-near-indices) ;; unknown type -(define-extern *ocean-trans-indices-village1* ocean-trans-indices) ;; unknown type -(define-extern *ocean-mid-indices-village1* ocean-mid-indices) ;; unknown type -(define-extern *ocean-mid-masks-village1* ocean-mid-masks) ;; unknown type -(define-extern *ocean-spheres-village2* ocean-spheres) ;; unknown type -(define-extern *ocean-colors-village2* ocean-colors) ;; unknown type -(define-extern *ocean-near-indices-village2* ocean-near-indices) ;; unknown type -(define-extern *ocean-trans-indices-village2* ocean-trans-indices) ;; unknown type -(define-extern *ocean-mid-indices-village2* ocean-mid-indices) ;; unknown type -(define-extern *ocean-mid-masks-village2* ocean-mid-masks) ;; unknown type -(define-extern *ocean-near-indices-sunken* ocean-near-indices) ;; unknown type -(define-extern *ocean-trans-indices-sunken* ocean-trans-indices) ;; unknown type -(define-extern *ocean-mid-indices-sunken* ocean-mid-indices) ;; unknown type -(define-extern *ocean-mid-masks-sunken* ocean-mid-masks) ;; unknown type -(define-extern *ocean-map-village1* ocean-map) ;; unknown type -(define-extern *ocean-map-village2* ocean-map) ;; unknown type -(define-extern *ocean-map-sunken* ocean-map) ;; unknown type +(define-extern *ocean-spheres-village1* ocean-spheres) +(define-extern *ocean-colors-village1* ocean-colors) +(define-extern *ocean-near-indices-village1* ocean-near-indices) +(define-extern *ocean-trans-indices-village1* ocean-trans-indices) +(define-extern *ocean-mid-indices-village1* ocean-mid-indices) +(define-extern *ocean-mid-masks-village1* ocean-mid-masks) +(define-extern *ocean-spheres-village2* ocean-spheres) +(define-extern *ocean-colors-village2* ocean-colors) +(define-extern *ocean-near-indices-village2* ocean-near-indices) +(define-extern *ocean-trans-indices-village2* ocean-trans-indices) +(define-extern *ocean-mid-indices-village2* ocean-mid-indices) +(define-extern *ocean-mid-masks-village2* ocean-mid-masks) +(define-extern *ocean-near-indices-sunken* ocean-near-indices) +(define-extern *ocean-trans-indices-sunken* ocean-trans-indices) +(define-extern *ocean-mid-indices-sunken* ocean-mid-indices) +(define-extern *ocean-mid-masks-sunken* ocean-mid-masks) +(define-extern *ocean-map-village1* ocean-map) +(define-extern *ocean-map-village2* ocean-map) +(define-extern *ocean-map-sunken* ocean-map) ;; ---------------------- @@ -6943,8 +6954,6 @@ ;; - Types -;;;;;;;;;; -;;;;;;;;;; (deftype sky-color-hour (structure) ((snapshot1 int32 :offset-assert 0) (snapshot2 int32 :offset-assert 4) @@ -6978,12 +6987,12 @@ (r-sun float :offset 16) (r-halo float :offset 20) (r-aurora float :offset 24) - (c-sun-start uint32 :offset 32) - (c-sun-end uint32 :offset 48) - (c-halo-start uint32 :offset 36) - (c-halo-end uint32 :offset 52) - (c-aurora-start uint32 :offset 40) - (c-aurora-end uint32 :offset 56) + (c-sun-start rgba :offset 32) + (c-sun-end rgba :offset 48) + (c-halo-start rgba :offset 36) + (c-halo-end rgba :offset 52) + (c-aurora-start rgba :offset 40) + (c-aurora-end rgba :offset 56) ) :method-count-assert 9 :size-assert #x40 @@ -7015,10 +7024,8 @@ ) (deftype sky-upload-data (basic) - ( - ;(data UNKNOWN 27 :offset-assert 16) - (circle sky-circle-data :inline :offset-assert 16) - (sun sky-sun-data 2 :inline :offset-assert 288) + ((circle sky-circle-data :inline :offset-assert 16) + (sun sky-sun-data 2 :inline :offset-assert 288) (moon sky-moon-data :inline :offset-assert 416) (data uint128 27 :offset 16) ) @@ -7049,7 +7056,7 @@ (giftag-roof qword :inline :offset-assert 32) (giftag-ocean qword :inline :offset-assert 48) (fog vector :inline :offset-assert 64) - (sky uint32 8 :offset-assert 80) + (sky uint32 8 :offset-assert 80) (time float :offset-assert 112) (off-s-0 uint16 :offset-assert 116) (off-t-0 uint16 :offset-assert 118) @@ -7085,10 +7092,10 @@ ;; - Symbols -(define-extern *sky-parms* sky-parms) ;; unknown type -(define-extern *sky-upload-data* sky-upload-data) ;; unknown type -(define-extern *sky-drawn* symbol) ;; unknown type -(define-extern *cloud-drawn* symbol) ;; unknown type +(define-extern *sky-parms* sky-parms) +(define-extern *sky-upload-data* sky-upload-data) +(define-extern *sky-drawn* symbol) +(define-extern *cloud-drawn* symbol) ;; ---------------------- @@ -7295,9 +7302,9 @@ ;; - Symbols -(define-extern *palette-fade-controls* palette-fade-controls) ;; unknown type -(define-extern *time-of-day-mode* int) ;; unknown type -(define-extern *time-of-day-context* time-of-day-context) ;; unknown type +(define-extern *palette-fade-controls* palette-fade-controls) +(define-extern *time-of-day-mode* int) +(define-extern *time-of-day-context* time-of-day-context) ;; ---------------------- @@ -7472,8 +7479,8 @@ :size-assert #x20 :flag-assert #xf00000020 (:methods - (dummy-13 (_type_) int 13) - (dummy-14 (_type_) int 14) + (link-art! (_type_) art-group 13) + (unlink-art! (_type_) int 14) ) ) @@ -7596,7 +7603,7 @@ ;; - Functions -(define-extern new-dynamic-structure (function symbol type int structure)) ;; unknown type +(define-extern new-dynamic-structure (function symbol type int structure)) ;; ---------------------- @@ -8464,7 +8471,7 @@ ;; - Symbols -(define-extern *generic-debug* generic-debug) ;; unknown type +(define-extern *generic-debug* generic-debug) ;; ---------------------- @@ -8637,10 +8644,10 @@ ;; - Symbols -(define-extern *shadow-queue* shadow-queue) ;; unknown type -(define-extern *shadow* symbol) ;; unknown type -(define-extern *shadow-object* symbol) ;; unknown type -(define-extern *shadow-debug* symbol) ;; unknown type +(define-extern *shadow-queue* shadow-queue) +(define-extern *shadow* symbol) +(define-extern *shadow-object* symbol) +(define-extern *shadow-debug* symbol) ;; ---------------------- @@ -8743,7 +8750,7 @@ ) (deftype level-buffer-state (structure) - ((name basic :offset-assert 0) + ((name symbol :offset-assert 0) (display? symbol :offset-assert 4) (force-vis? symbol :offset-assert 8) (force-inside? symbol :offset-assert 12) @@ -8772,29 +8779,29 @@ (want-display-level (_type_ symbol symbol) int 12) (want-vis (_type_ symbol) int 13) (want-force-vis (_type_ symbol symbol) int 14) - (dummy-15 () none 15) - (dummy-16 () none 16) - (dummy-17 () none 17) - (dummy-18 () none 18) - (dummy-19 () none 19) + (dummy-15 (_type_ pair) none 15) + (dummy-16 (_type_ float) int 16) + (dummy-17 (_type_ pair) int 17) + (dummy-18 (_type_) int 18) + (dummy-19 (_type_) int 19) (dummy-20 () none 20) ) ) (deftype continue-point (basic) ((name string :offset-assert 4) - (level basic :offset-assert 8) + (level symbol :offset-assert 8) (flags uint32 :offset-assert 12) (trans vector :inline :offset-assert 16) (quat quaternion :inline :offset-assert 32) (camera-trans vector :inline :offset-assert 48) - (camera-rot float 9 :offset-assert 64) - (load-commands pair :offset-assert 100) - (vis-nick basic :offset-assert 104) - (lev0 basic :offset-assert 108) - (disp0 basic :offset-assert 112) - (lev1 basic :offset-assert 116) - (disp1 basic :offset-assert 120) + (camera-rot float 9 :offset-assert 64) + (load-commands pair :offset-assert 100) + (vis-nick symbol :offset-assert 104) + (lev0 symbol :offset-assert 108) + (disp0 symbol :offset-assert 112) + (lev1 symbol :offset-assert 116) + (disp1 symbol :offset-assert 120) ) :method-count-assert 10 :size-assert #x7c @@ -8861,7 +8868,7 @@ (initialize! (_type_ symbol game-save string) _type_ 9) (adjust (_type_ symbol float handle) float 10) (task-complete? (_type_ game-task) symbol 11) - (lookup-entity-perm-by-aid (_type_ uint) entity-perm 12) + (lookup-entity-perm-by-aid (_type_ actor-id) entity-perm 12) (get-entity-task-perm (_type_ game-task) entity-perm 13) (copy-perms-from-level! (_type_ level) none 14) (copy-perms-to-level! (_type_ level) none 15) @@ -8883,7 +8890,7 @@ ;; - Symbols -(define-extern *GAME-bank* game-bank) ;; unknown type +(define-extern *GAME-bank* game-bank) (define-extern *game-info* game-info) @@ -9269,7 +9276,7 @@ ;; - Symbols -(define-extern *merc-globals* symbol) ;; unknown type +(define-extern *merc-globals* symbol) ;; ---------------------- @@ -9282,7 +9289,7 @@ ;;;; engine (define-extern *background-draw-engine* engine) -(define-extern *matrix-engine* (array handle)) ;; unknown type +(define-extern *matrix-engine* (array handle)) (define-extern *camera-engine* engine) (define-extern *debug-engine* engine) @@ -9467,48 +9474,48 @@ ;; - Symbols -(define-extern *walk-mods* surface) ;; unknown type -(define-extern *walk-no-turn-mods* surface) ;; unknown type -(define-extern *turn-around-mods* surface) ;; unknown type -(define-extern *duck-mods* surface) ;; unknown type -(define-extern *duck-attack-mods* surface) ;; unknown type -(define-extern *jump-mods* surface) ;; unknown type -(define-extern *double-jump-mods* surface) ;; unknown type -(define-extern *smack-jump-mods* surface) ;; unknown type -(define-extern *high-jump-mods* surface) ;; unknown type -(define-extern *launch-jump-mods* surface) ;; unknown type -(define-extern *forward-high-jump-mods* surface) ;; unknown type -(define-extern *flip-jump-mods* surface) ;; unknown type -(define-extern *forward-jump-mods* surface) ;; unknown type -(define-extern *forward-pole-jump-mods* surface) ;; unknown type -(define-extern *attack-mods* surface) ;; unknown type -(define-extern *jump-attack-mods* surface) ;; unknown type -(define-extern *uppercut-jump-mods* surface) ;; unknown type -(define-extern *run-attack-mods* surface) ;; unknown type -(define-extern *wheel-mods* surface) ;; unknown type -(define-extern *wheel-flip-mods* surface) ;; unknown type -(define-extern *flop-mods* surface) ;; unknown type -(define-extern *flop-land-mods* surface) ;; unknown type -(define-extern *wade-mods* surface) ;; unknown type -(define-extern *swim-mods* surface) ;; unknown type -(define-extern *dive-mods* surface) ;; unknown type -(define-extern *dive-bottom-mods* surface) ;; unknown type -(define-extern *pole-mods* surface) ;; unknown type -(define-extern *grab-mods* surface) ;; unknown type -(define-extern *edge-grab-mods* surface) ;; unknown type -(define-extern *empty-mods* surface) ;; unknown type -(define-extern *neutral-mods* surface) ;; unknown type -(define-extern *stone-surface* surface) ;; unknown type -(define-extern *edge-surface* surface) ;; unknown type -(define-extern *wade-surface* surface) ;; unknown type -(define-extern *slope-surface* surface) ;; unknown type -(define-extern *quicksand-surface* surface) ;; unknown type -(define-extern *tar-surface* surface) ;; unknown type -(define-extern *grass-surface* surface) ;; unknown type -(define-extern *ice-surface* surface) ;; unknown type -(define-extern *tread-surface* surface) ;; unknown type -(define-extern *standard-ground-surface* surface) ;; unknown type -(define-extern *swim-surface* surface) ;; unknown type +(define-extern *walk-mods* surface) +(define-extern *walk-no-turn-mods* surface) +(define-extern *turn-around-mods* surface) +(define-extern *duck-mods* surface) +(define-extern *duck-attack-mods* surface) +(define-extern *jump-mods* surface) +(define-extern *double-jump-mods* surface) +(define-extern *smack-jump-mods* surface) +(define-extern *high-jump-mods* surface) +(define-extern *launch-jump-mods* surface) +(define-extern *forward-high-jump-mods* surface) +(define-extern *flip-jump-mods* surface) +(define-extern *forward-jump-mods* surface) +(define-extern *forward-pole-jump-mods* surface) +(define-extern *attack-mods* surface) +(define-extern *jump-attack-mods* surface) +(define-extern *uppercut-jump-mods* surface) +(define-extern *run-attack-mods* surface) +(define-extern *wheel-mods* surface) +(define-extern *wheel-flip-mods* surface) +(define-extern *flop-mods* surface) +(define-extern *flop-land-mods* surface) +(define-extern *wade-mods* surface) +(define-extern *swim-mods* surface) +(define-extern *dive-mods* surface) +(define-extern *dive-bottom-mods* surface) +(define-extern *pole-mods* surface) +(define-extern *grab-mods* surface) +(define-extern *edge-grab-mods* surface) +(define-extern *empty-mods* surface) +(define-extern *neutral-mods* surface) +(define-extern *stone-surface* surface) +(define-extern *edge-surface* surface) +(define-extern *wade-surface* surface) +(define-extern *slope-surface* surface) +(define-extern *quicksand-surface* surface) +(define-extern *tar-surface* surface) +(define-extern *grass-surface* surface) +(define-extern *ice-surface* surface) +(define-extern *tread-surface* surface) +(define-extern *standard-ground-surface* surface) +(define-extern *swim-surface* surface) ;; ---------------------- @@ -9554,7 +9561,7 @@ ;; - Symbols -(define-extern *pat-mode-info* (inline-array pat-mode-info)) ;; unknown type +(define-extern *pat-mode-info* (inline-array pat-mode-info)) ;; ---------------------- @@ -9658,7 +9665,7 @@ (declare-type process-drawable process) (define-extern process-drawable-art-error (state string process-drawable)) -(define-extern *FACT-bank* fact-bank) ;; unknown type +(define-extern *FACT-bank* fact-bank) ;; ---------------------- @@ -9669,7 +9676,6 @@ ;; - Types -(declare-type process-drawable process) (deftype align-control (basic) ((flags uint32 :offset-assert 4) (process process-drawable :offset-assert 8) @@ -9703,25 +9709,29 @@ ;; - Types -(declare-type collide-shape basic) -(declare-type water-control basic) +(declare-type nav-control basic) +(declare-type path-control basic) +(declare-type vol-control basic) +(declare-type actor-link-info basic) (declare-type sparticle-launch-control basic) +(declare-type water-control basic) +(declare-type collide-shape basic) (deftype process-drawable (process) ((root trsqv :offset-assert 112) (node-list cspace-array :offset-assert 116) (draw draw-control :offset-assert 120) (skel joint-control :offset-assert 124) - (nav basic :offset-assert 128) + (nav nav-control :offset-assert 128) (align align-control :offset-assert 132) - (path basic :offset-assert 136) - (vol basic :offset-assert 140) + (path path-control :offset-assert 136) + (vol vol-control :offset-assert 140) (fact fact-info :offset-assert 144) - (link basic :offset-assert 148) + (link actor-link-info :offset-assert 148) (part sparticle-launch-control :offset-assert 152) (water water-control :offset-assert 156) (sound ambient-sound :offset-assert 160) (state-flags uint32 :offset-assert 164) - (state-time uint64 :offset-assert 168) + (state-time seconds :offset-assert 168) ) :heap-base #x40 :method-count-assert 20 @@ -9846,9 +9856,9 @@ ((new-trans-hook function :offset-assert 176) (cur-trans-hook function :offset-assert 180) (cur-event-hook function :offset-assert 184) - (new-joint-anim basic :offset-assert 188) + (new-joint-anim art-joint-anim :offset-assert 188) (new-joint-anim-blend uint64 :offset-assert 192) - (anim-mode basic :offset-assert 200) + (anim-mode symbol :offset-assert 200) (cur-grab-handle uint64 :offset-assert 208) (cur-target-handle uint64 :offset-assert 216) (old-grab-pos vector :inline :offset-assert 224) @@ -10811,7 +10821,7 @@ (pat-ignore-mask pat-surface :offset-assert 148) (event-self basic :offset-assert 152) (event-other basic :offset-assert 156) - (root-prim basic :offset-assert 160) + (root-prim collide-shape-prim :offset-assert 160) (riders basic :offset-assert 164) (backup-collide-as uint64 :offset-assert 168) (backup-collide-with uint64 :offset-assert 176) @@ -11203,14 +11213,14 @@ (define-extern cspace-by-name (function process-drawable string cspace)) (define-extern cspace-by-name-no-fail (function process-drawable string cspace)) (define-extern cspace-index-by-name-no-fail (function process-drawable string int)) -(define-extern num-func-none (function joint-control-channel float)) -(define-extern num-func-+! (function joint-control-channel float float)) -(define-extern num-func--! (function joint-control-channel float float)) -(define-extern num-func-loop! (function joint-control-channel float float)) +(define-extern num-func-none (function joint-control-channel float float float)) +(define-extern num-func-+! (function joint-control-channel float float float)) +(define-extern num-func--! (function joint-control-channel float float float)) +(define-extern num-func-loop! (function joint-control-channel float float float)) (define-extern num-func-seek! (function joint-control-channel float float float)) -(define-extern num-func-blend-in! (function joint-control-channel float float)) -(define-extern num-func-chan (function joint-control-channel float float)) -(define-extern num-func-identity (function joint-control-channel float)) +(define-extern num-func-blend-in! (function joint-control-channel float float float)) +(define-extern num-func-chan (function joint-control-channel float float float)) +(define-extern num-func-identity (function joint-control-channel float float float)) ;; ---------------------- @@ -11432,7 +11442,7 @@ (deftype sidekick (process-drawable) ((control control-info :offset 112) (anim-seed uint64 :offset 192) - (shadow-in-movie? basic :offset-assert 200) + (shadow-in-movie? symbol :offset-assert 200) ) :heap-base #x60 :method-count-assert 20 @@ -12781,8 +12791,8 @@ (user-uint8 uint8 8 :offset 0) (status entity-perm-status :offset-assert 8) (dummy uint8 1 :offset-assert 10) - (task uint8 :offset-assert 11) - (aid uint32 :offset-assert 12) + (task game-task :offset-assert 11) + (aid actor-id :offset-assert 12) (quad uint128 :offset 0) ) :pack-me @@ -12804,8 +12814,8 @@ (trans vector :inline :offset-assert 32) (perm entity-perm :inline :offset-assert 48) (status uint16 :offset 56) ;; overlays - (aid uint32 :offset 60) - (task uint8 :offset 59) + (aid actor-id :offset 60) + (task game-task :offset 59) ) :method-count-assert 10 :size-assert #x40 @@ -13354,7 +13364,7 @@ :size-assert #x10 :flag-assert #x1a00000010 (:methods - (new (symbol type process) _type_) + (new (symbol type process) _type_ 0) (get-matching-actor-type-mask (_type_ type) int 9) (actor-count-before (_type_) int 10) (link (_type_) entity-actor 11) @@ -13365,12 +13375,12 @@ (apply-function-forward (_type_ (function entity-actor object object) object) int 16) (apply-function-reverse (_type_ (function entity-actor object object) object) int 17) (apply-all (_type_ (function entity-actor object object) object) int 18) - (send-to-all (_type_ object) none 19) - (send-to-all-after (_type_ object) object 20) - (send-to-all-before (_type_ object) object 21) - (send-to-next-and-prev (_type_ object) none 22) - (send-to-next (_type_ object) none 23) - (send-to-prev (_type_ object) none 24) + (send-to-all (_type_ symbol) none 19) + (send-to-all-after (_type_ symbol) object 20) + (send-to-all-before (_type_ symbol) object 21) + (send-to-next-and-prev (_type_ symbol) none 22) + (send-to-next (_type_ symbol) none 23) + (send-to-prev (_type_ symbol) none 24) (actor-count (_type_) int 25) ) ) @@ -14477,7 +14487,7 @@ (define-extern str-load (function string int pointer int symbol)) (define-extern str-load-status (function (pointer int32) symbol)) (define-extern str-load-cancel (function none)) -(define-extern str-play-async (function string pointer none)) +(define-extern str-play-async (function string sound-id none)) (define-extern str-play-stop (function string none)) (define-extern str-play-queue (function string none)) (define-extern str-ambient-play (function string none)) @@ -14564,19 +14574,19 @@ ;; - Types (deftype sound-iop-info (basic) - ((frame uint32 :offset 16) + ((frame uint32 :offset 16) (strpos int32 :offset-assert 20) - (str-id uint32 :offset-assert 24) - (str-id-sign int32 :offset 24) + (str-id sound-id :offset-assert 24) + (str-id-sign int32 :offset 24) (freemem uint32 :offset-assert 28) - (chinfo uint8 48 :offset-assert 32) + (chinfo uint8 48 :offset-assert 32) (freemem2 uint32 :offset-assert 80) (nocd uint32 :offset-assert 84) (dirtycd uint32 :offset-assert 88) - (diskspeed uint32 2 :offset-assert 92) + (diskspeed uint32 2 :offset-assert 92) (lastspeed uint32 :offset-assert 100) (dupseg int32 :offset-assert 104) - (times uint32 41 :offset-assert 108) + (times uint32 41 :offset-assert 108) (times-seq uint32 :offset-assert 272) ) :method-count-assert 9 @@ -14623,8 +14633,8 @@ (define-extern sound-command->string (function sound-command string)) (define-extern sound-name= (function sound-name sound-name symbol)) (define-extern str-is-playing? (function symbol)) -(define-extern current-str-id (function int)) -(define-extern current-str-pos (function int int)) +(define-extern current-str-id (function sound-id)) +(define-extern current-str-pos (function sound-id int)) (define-extern is-cd-in? (function symbol)) (define-extern check-irx-version (function int)) (define-extern sound-bank-load (function sound-name sound-id)) @@ -16067,7 +16077,7 @@ (define-extern sp-launch-particles-var function) (define-extern sp-get-particle function) (define-extern particle-adgif function) -(define-extern lookup-part-group-by-name function) +(define-extern lookup-part-group-by-name (function string basic)) (define-extern lookup-part-group-pointer-by-name function) (define-extern unlink-part-group-by-heap (function kheap int)) (define-extern particle-setup-adgif function) @@ -16169,13 +16179,14 @@ (define-extern ja-channel-push! (function int int int)) (define-extern ja-channel-set! (function int int)) (define-extern kill-current-level-hint (function pair pair symbol none)) -(define-extern level-hint-surpress! function) +(define-extern level-hint-surpress! (function none)) (define-extern ja-aframe-num (function int float)) -(define-extern ja-abort-spooled-anim function) -(define-extern art-group-load-check function) -(define-extern drawable-load function) -(define-extern art-load function) -(define-extern ja-play-spooled-anim function) +(define-extern ja-abort-spooled-anim (function spool-anim art-joint-anim int int :behavior process-drawable)) +(define-extern art-group-load-check (function string kheap int art-group)) +(define-extern drawable-load (function drawable kheap drawable)) +(define-extern art-load (function string kheap art)) +(define-extern ja-play-spooled-anim (function spool-anim art-joint-anim art-joint-anim (function process-drawable symbol) int :behavior process-drawable)) +(define-extern link (function pointer pointer int kheap int pointer)) ;; - Symbols @@ -16185,8 +16196,8 @@ ;; - Unknowns (define-extern *art-control* external-art-control) -;;(define-extern *preload-spool-anims* object) ;; unknown type -;;(define-extern *stack-top* object) ;; unknown type +(define-extern *preload-spool-anims* symbol) +(define-extern *stack-top* pointer) ;; ---------------------- @@ -16256,17 +16267,17 @@ :size-assert #x10 :flag-assert #xc00000010 (:methods - (dummy-9 () none 9) + (dummy-9 (_type_ vector int float process-drawable) none 9) (dummy-10 () none 10) (dummy-11 () none 11) ) ) (deftype process-taskable (process-drawable) - ((tasks basic :offset-assert 176) + ((tasks task-control :offset-assert 176) (query gui-query :inline :offset-assert 180) (old-target-pos transformq :inline :offset-assert 208) - (cell-for-task uint8 :offset-assert 256) + (cell-for-task game-task :offset-assert 256) (cell-x uint64 :offset-assert 264) (cam-joint-index int32 :offset-assert 272) (skippable basic :offset-assert 276) @@ -16293,41 +16304,40 @@ :method-count-assert 53 :size-assert #x17c :flag-assert #x350110017c - ;; inherited inspect of process-drawable (:methods - (dummy-20 () none 20) - (dummy-21 () none 21) - (dummy-22 () none 22) - (dummy-23 () none 23) - (dummy-24 () none 24) - (dummy-25 () none 25) - (dummy-26 () none 26) - (dummy-27 () none 27) - (dummy-28 () none 28) - (dummy-29 () none 29) - (dummy-30 () none 30) - (dummy-31 () none 31) - (dummy-32 () none 32) - (dummy-33 () none 33) - (dummy-34 () none 34) - (dummy-35 () none 35) - (dummy-36 () none 36) - (dummy-37 () none 37) - (dummy-38 () none 38) - (dummy-39 () none 39) - (dummy-40 () none 40) - (dummy-41 () none 41) - (dummy-42 () none 42) - (dummy-43 () none 43) - (dummy-44 () none 44) - (dummy-45 () none 45) - (dummy-46 () none 46) - (dummy-47 () none 47) - (dummy-48 () none 48) - (dummy-49 () none 49) - (dummy-50 () none 50) - (dummy-51 () none 51) - (dummy-52 () none 52) + (dummy-20 (_type_) none 20) + (dummy-21 (_type_) none 21) + (dummy-22 (_type_) none 22) + (dummy-23 (_type_) none 23) + (dummy-24 (_type_) none 24) + (dummy-25 (_type_) none 25) + (dummy-26 (_type_) none 26) + (dummy-27 (_type_) none 27) + (dummy-28 (_type_) none 28) + (dummy-29 (_type_) none 29) + (dummy-30 (_type_) none 30) + (dummy-31 (_type_) none 31) + (dummy-32 (_type_ symbol) spool-anim 32) + (dummy-33 (_type_) none 33) + (dummy-34 (_type_) none 34) + (dummy-35 (_type_) none 35) + (dummy-36 (_type_) none 36) + (dummy-37 (_type_) none 37) + (dummy-38 (_type_) none 38) + (dummy-39 (_type_) none 39) + (dummy-40 (_type_ object skeleton-group int int vector int) none 40) + (dummy-41 (_type_) none 41) + (dummy-42 (_type_) none 42) + (dummy-43 (_type_) none 43) + (dummy-44 (_type_) none 44) + (dummy-45 (_type_) none 45) + (dummy-46 (_type_) none 46) + (dummy-47 (_type_) none 47) + (dummy-48 (_type_) none 48) + (dummy-49 (_type_) none 49) + (dummy-50 (_type_) none 50) + (dummy-51 (_type_) none 51) + (dummy-52 (_type_) none 52) ) ) @@ -16992,10 +17002,10 @@ ;; - Functions (define-extern sky-set-sun-radii (function sky-parms int float float float symbol)) -(define-extern sky-set-sun-colors (function sky-parms int uint uint uint uint symbol)) -(define-extern sky-set-sun-colors-sun (function sky-parms int uint uint symbol)) -(define-extern sky-set-sun-colors-halo (function sky-parms int uint uint symbol)) -(define-extern sky-set-sun-colors-aurora (function sky-parms int uint uint symbol)) +(define-extern sky-set-sun-colors (function sky-parms int rgba rgba rgba rgba symbol)) +(define-extern sky-set-sun-colors-sun (function sky-parms int rgba rgba symbol)) +(define-extern sky-set-sun-colors-halo (function sky-parms int rgba rgba symbol)) +(define-extern sky-set-sun-colors-aurora (function sky-parms int rgba rgba symbol)) (define-extern sky-set-orbit (function sky-parms int float float float float float float symbol)) @@ -17170,14 +17180,14 @@ (define-extern load-state-want-levels (function symbol symbol int)) (define-extern load-state-want-display-level (function symbol symbol int)) (define-extern load-state-want-force-vis (function symbol symbol int)) -(define-extern command-get-param function) -(define-extern entity-birth-no-kill function) +(define-extern command-get-param (function object symbol symbol)) +(define-extern entity-birth-no-kill (function entity none)) (define-extern part-tracker-init function) -(define-extern command-list-get-process function) -(define-extern command-get-quoted-param function) -(define-extern command-get-int function) -(define-extern ambient-hint-spawn function) -(define-extern command-get-float function) +(define-extern command-list-get-process (function object process)) +(define-extern command-get-quoted-param (function object symbol symbol)) +(define-extern command-get-int (function object int int)) +(define-extern ambient-hint-spawn (function symbol symbol process-tree none)) +(define-extern command-get-float (function object float float)) (define-extern process-by-ename function) (define-extern point-in-polygon function) (define-extern try-corner function) @@ -18411,7 +18421,7 @@ ;; - Functions -(define-extern process-entity-status! (function process int symbol symbol)) +(define-extern process-entity-status! (function process entity-perm-status symbol int)) (define-extern process-grab? (function process symbol)) (define-extern process-release? (function process symbol)) (define-extern ja-post (function int)) @@ -18641,7 +18651,7 @@ (define-extern line-in-view-frustum? function) (define-extern process-drawable-random-point! function) -(define-extern process-drawable-from-entity! function) +(define-extern process-drawable-from-entity! (function process-drawable object none)) (define-extern cam-launcher-long-joystick function) (define-extern hide-hud-quick function) (define-extern command-get-process function) @@ -31658,63 +31668,24 @@ ;; - Types -; (deftype farmer (process-taskable) -; () -; :method-count-assert 53 -; :size-assert #x17c -; :flag-assert #x350110017c -; ;; not enough basic ops -; (:methods -; (dummy-9 () none 9) -; (dummy-10 () none 10) -; (dummy-11 () none 11) -; (dummy-12 () none 12) -; (dummy-13 () none 13) -; (dummy-14 () none 14) -; (dummy-15 () none 15) -; (dummy-16 () none 16) -; (dummy-17 () none 17) -; (dummy-18 () none 18) -; (dummy-19 () none 19) -; (dummy-20 () none 20) -; (dummy-21 () none 21) -; (dummy-22 () none 22) -; (dummy-23 () none 23) -; (dummy-24 () none 24) -; (dummy-25 () none 25) -; (dummy-26 () none 26) -; (dummy-27 () none 27) -; (dummy-28 () none 28) -; (dummy-29 () none 29) -; (dummy-30 () none 30) -; (dummy-31 () none 31) -; (dummy-32 () none 32) -; (dummy-33 () none 33) -; (dummy-34 () none 34) -; (dummy-35 () none 35) -; (dummy-36 () none 36) -; (dummy-37 () none 37) -; (dummy-38 () none 38) -; (dummy-39 () none 39) -; (dummy-40 () none 40) -; (dummy-41 () none 41) -; (dummy-42 () none 42) -; (dummy-43 () none 43) -; (dummy-44 () none 44) -; (dummy-45 () none 45) -; (dummy-46 () none 46) -; (dummy-47 () none 47) -; (dummy-48 () none 48) -; (dummy-49 () none 49) -; (dummy-50 () none 50) -; (dummy-51 () none 51) -; (dummy-52 () none 52) -; ) -; ) +(deftype farmer (process-taskable) + () + :heap-base #x110 + :method-count-assert 53 + :size-assert #x17c + :flag-assert #x350110017c + (:methods + (dummy-method-11 (_type_ object) none 11) + (dummy-31 (_type_) none 31) + (dummy-32 (_type_ symbol) spool-anim 32) + (dummy-41 (_type_) none 41) + (dummy-43 (_type_) none 43) + ) + ) ;; - Unknowns -;;(define-extern *farmer-sg* object) ;; unknown type +(define-extern *farmer-sg* skeleton-group) ;; unknown type ;; ---------------------- @@ -31933,104 +31904,92 @@ ;; - Types -; (deftype yakow-bank (basic) -; ((walk-cycle-frame-count float :offset-assert 4) -; (run-cycle-frame-count float :offset-assert 8) -; (walk-speed meters :offset-assert 12) -; (run-speed meters :offset-assert 16) -; (walk-anim-speed float :offset-assert 20) -; (run-anim-speed float :offset-assert 24) -; (walk-away-dist meters :offset-assert 28) -; (run-away-dist meters :offset-assert 32) -; (walk-rotate-speed float :offset-assert 36) -; (run-rotate-speed float :offset-assert 40) -; (walk-turn-time uint64 :offset-assert 48) -; (run-turn-time uint64 :offset-assert 56) -; (max-walk-speed float :offset-assert 64) -; (min-run-speed float :offset-assert 68) -; (walk-run-blend-rate float :offset-assert 72) -; (walk-turn-blend-rate float :offset-assert 76) -; (max-run-speed float :offset-assert 80) -; (acceleration meters :offset-assert 84) -; (default-patrol-time uint64 :offset-assert 88) -; (default-idle-distance meters :offset-assert 96) -; (safe-distance meters :offset-assert 100) -; (min-run-anim-speed float :offset-assert 104) -; (max-run-anim-speed float :offset-assert 108) -; (min-walk-anim-speed float :offset-assert 112) -; (speed-boost-impulse meters :offset-assert 116) -; ) -; :method-count-assert 9 -; :size-assert #x78 -; :flag-assert #x900000078 -; ) +(deftype yakow-bank (basic) + ((walk-cycle-frame-count float :offset-assert 4) + (run-cycle-frame-count float :offset-assert 8) + (walk-speed meters :offset-assert 12) + (run-speed meters :offset-assert 16) + (walk-anim-speed float :offset-assert 20) + (run-anim-speed float :offset-assert 24) + (walk-away-dist meters :offset-assert 28) + (run-away-dist meters :offset-assert 32) + (walk-rotate-speed float :offset-assert 36) + (run-rotate-speed float :offset-assert 40) + (walk-turn-time uint64 :offset-assert 48) + (run-turn-time uint64 :offset-assert 56) + (max-walk-speed float :offset-assert 64) + (min-run-speed float :offset-assert 68) + (walk-run-blend-rate float :offset-assert 72) + (walk-turn-blend-rate float :offset-assert 76) + (max-run-speed float :offset-assert 80) + (acceleration meters :offset-assert 84) + (default-patrol-time uint64 :offset-assert 88) + (default-idle-distance meters :offset-assert 96) + (safe-distance meters :offset-assert 100) + (min-run-anim-speed float :offset-assert 104) + (max-run-anim-speed float :offset-assert 108) + (min-walk-anim-speed float :offset-assert 112) + (speed-boost-impulse meters :offset-assert 116) + ) + :method-count-assert 9 + :size-assert #x78 + :flag-assert #x900000078 + ) -; (deftype yakow (process-drawable) -; ((player-attack-id int32 :offset-assert 176) -; (walk-run-blend float :offset-assert 180) -; (walk-turn-blend float :offset-assert 184) -; (run-mode basic :offset-assert 188) -; (travel-speed meters :offset-assert 192) -; (final-speed meters :offset-assert 196) -; (rotate-speed float :offset-assert 200) -; (turn-time uint64 :offset-assert 208) -; (vulnerable basic :offset-assert 216) -; (grazing basic :offset-assert 220) -; (push-velocity vector :inline :offset-assert 224) -; (home-base vector :inline :offset-assert 240) -; (dest-base vector :inline :offset-assert 256) -; (dest-rot degrees :offset-assert 272) -; (enable-turn-around basic :offset-assert 276) -; (rotating basic :offset-assert 280) -; (in-pen basic :offset-assert 284) -; ) -; :method-count-assert 20 -; :size-assert #x120 -; :flag-assert #x1400b00120 -; ;; inherited inspect of process-drawable -; (:methods -; (dummy-9 () none 9) -; (dummy-10 () none 10) -; (dummy-11 () none 11) -; (dummy-12 () none 12) -; (dummy-13 () none 13) -; (dummy-14 () none 14) -; (dummy-15 () none 15) -; (dummy-16 () none 16) -; (dummy-17 () none 17) -; (dummy-18 () none 18) -; (dummy-19 () none 19) -; ) -; ) +(deftype yakow (process-drawable) + ((player-attack-id int32 :offset-assert 176) + (walk-run-blend float :offset-assert 180) + (walk-turn-blend float :offset-assert 184) + (run-mode basic :offset-assert 188) + (travel-speed meters :offset-assert 192) + (final-speed meters :offset-assert 196) + (rotate-speed float :offset-assert 200) + (turn-time uint64 :offset-assert 208) + (vulnerable basic :offset-assert 216) + (grazing basic :offset-assert 220) + (push-velocity vector :inline :offset-assert 224) + (home-base vector :inline :offset-assert 240) + (dest-base vector :inline :offset-assert 256) + (dest-rot degrees :offset-assert 272) + (enable-turn-around basic :offset-assert 276) + (rotating basic :offset-assert 280) + (in-pen basic :offset-assert 284) + ) + :method-count-assert 20 + :size-assert #x120 + :heap-base #xb0 + :flag-assert #x1400b00120 + ;; inherited inspect of process-drawable + ) ;; - Functions -(define-extern yakow-task-complete? function) +(define-extern yakow-task-complete? (function symbol none :behavior yakow)) (define-extern yakow-facing-player? function) -(define-extern yakow-post function) +(define-extern yakow-post (function none :behavior yakow)) (define-extern yakow-facing-point? function) (define-extern yakow-facing-direction? function) (define-extern yakow-generate-travel-vector function) -(define-extern yakow-common-post function) -(define-extern yakow-cam function) -(define-extern yakow-default-event-handler function) +(define-extern yakow-common-post (function none :behavior yakow)) +(define-extern yakow-cam (function none)) +(define-extern yakow-default-event-handler (function process-drawable int symbol event-message-block object :behavior yakow)) (define-extern yakow-simple-post function) (define-extern yakow-run-post function) (define-extern yakow-blend-walk-run function) ;; - Unknowns -;;(define-extern *YAKOW-bank* object) ;; unknown type -;;(define-extern *yakow-sg* object) ;; unknown type -;;(define-extern yakow-graze object) ;; unknown type -;;(define-extern yakow-idle object) ;; unknown type -;;(define-extern yakow-run-away object) ;; unknown type -;;(define-extern yakow-graze-kicked object) ;; unknown type -;;(define-extern yakow-walk-to object) ;; unknown type -;;(define-extern yakow-notice object) ;; unknown type -;;(define-extern yakow-kicked object) ;; unknown type -;;(define-extern *village1cam-sg* object) ;; unknown type -;;(define-extern yakow-die object) ;; unknown type +(define-extern *YAKOW-bank* yakow-bank) ;; unknown type +(define-extern *yakow-sg* skeleton-group) ;; unknown type +(define-extern yakow-graze (state none)) ;; unknown type +(define-extern yakow-idle (state none)) ;; unknown type +(define-extern yakow-run-away state) ;; unknown type +(define-extern yakow-graze-kicked state) ;; unknown type +(define-extern yakow-walk-to state) ;; unknown type +(define-extern yakow-notice state) ;; unknown type +(define-extern yakow-kicked (state none)) ;; unknown type +(define-extern *village1cam-sg* skeleton-group) ;; unknown type +(define-extern yakow-die state) ;; unknown type ;; ---------------------- @@ -45436,16 +45395,16 @@ ;; - Types (deftype logo (process-drawable) - ((~Tcamera uint64 :offset-assert 176) - (~Tcamera-anim uint64 :offset-assert 184) - (~Tvolumes uint64 :offset-assert 192) - (~Tblack uint64 :offset-assert 200) - (~Ttarget uint64 :offset-assert 208) - (~Tsidekick uint64 :offset-assert 216) - (~Tmain-joint basic :offset-assert 224) - (~Tanim basic :offset-assert 228) - (~Tnext-anim basic :offset-assert 232) - (~Tdone? basic :offset-assert 236) + ((camera uint64 :offset-assert 176) + (camera-anim uint64 :offset-assert 184) + (volumes uint64 :offset-assert 192) + (black uint64 :offset-assert 200) + (target uint64 :offset-assert 208) + (sidekick uint64 :offset-assert 216) + (main-joint basic :offset-assert 224) + (anim basic :offset-assert 228) + (next-anim basic :offset-assert 232) + (done? basic :offset-assert 236) ) :heap-base #x80 :method-count-assert 24 @@ -45461,7 +45420,7 @@ ) (deftype logo-slave (process-drawable) - ((~Tmain-joint basic :offset-assert 176) + ((main-joint basic :offset-assert 176) ) :heap-base #x50 :method-count-assert 21 diff --git a/decompiler/config/jak1_ntsc_black_label/hacks.jsonc b/decompiler/config/jak1_ntsc_black_label/hacks.jsonc index f6af6c7fe7..bdc8bb7a2c 100644 --- a/decompiler/config/jak1_ntsc_black_label/hacks.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/hacks.jsonc @@ -241,9 +241,6 @@ "sp-process-block-2d", "sp-get-particle", - // loader BUG - "(method 10 external-art-buffer)", - // game-info BUG "(method 11 fact-info-target)", @@ -469,7 +466,9 @@ "debug-menu-send-msg", "debug-menu-find-from-template", "build-continue-menu", - "(method 8 process-tree)" + "(method 8 process-tree)", + "(method 16 load-state)", + "(method 15 load-state)" ], // If format is used with the wrong number of arguments, @@ -495,7 +494,8 @@ " pris-anim ~192H~5DK ~280Hpris-generic~456H~5DK~%": 2, " textures ~192H~5DK ~280Htextures~456H~5DK~%": 2, " entity ~192H~5DK~%": 2, - " misc ~192H~5DK ~280Hsprite~456H~5DK~%": 2 + " misc ~192H~5DK ~280Hsprite~456H~5DK~%": 2, + "ERROR: ~A in spool anim loop for ~A ~D, but not loaded.~": 3 }, "blocks_ending_in_asm_branch": { diff --git a/decompiler/config/jak1_ntsc_black_label/inputs.jsonc b/decompiler/config/jak1_ntsc_black_label/inputs.jsonc index 40138334a2..43d16a7230 100644 --- a/decompiler/config/jak1_ntsc_black_label/inputs.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/inputs.jsonc @@ -259,15 +259,10 @@ ], // uncomment the next line to extract audio to wave files. - //"audio_dir_file_name": "VAG/VAGDIR.AYB", - "audio_dir_file_name" : "", + //"audio_dir_file_name": "jak1/VAG", + "audio_dir_file_name": "", "streamed_audio_file_names": [ - "VAG/VAGWAD.ENG", - "VAG/VAGWAD.FRE", - "VAG/VAGWAD.GER", - "VAG/VAGWAD.ITA", - "VAG/VAGWAD.JAP", - "VAG/VAGWAD.SPA" + "VAGWAD.ENG" ] } diff --git a/decompiler/config/jak1_ntsc_black_label/label_types.jsonc b/decompiler/config/jak1_ntsc_black_label/label_types.jsonc index d8c69f6f60..86751a127d 100644 --- a/decompiler/config/jak1_ntsc_black_label/label_types.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/label_types.jsonc @@ -609,7 +609,11 @@ ["L255", "float", true] ], - "load-boundary": [["L327", "(inline-array lbvtx)", true, 3]], + "load-boundary": [ + ["L327", "(inline-array lbvtx)", true, 3], + ["L336", "float", true], + ["L337", "float", true] + ], "shrub-work": [["L3", "instance-shrub-work", true]], @@ -1197,6 +1201,35 @@ ["L78", "rgba", true], ["L79", "rgba", true] ], + + "loader": [ + ["L279", "float", true], + ["L283", "float", true], + ["L285", "float", true], + ["L286", "float", true], + ["L280", "float", true], + ["L281", "float", true], + ["L278", "float", true] + ], + + "yakow": [ + ["L150", "float", true], + ["L162", "float", true], + ["L160", "float", true], + ["L155", "float", true], + ["L163", "float", true], + ["L159", "float", true], + ["L154", "float", true], + ["L153", "float", true], + ["L169", "float", true], + ["L161", "float", true], + ["L152", "float", true], + ["L149", "float", true] + ], + + "farmer": [ + ["L50", "float", true] + ], // please do not add things after this entry! git is dumb. "object-file-that-doesnt-actually-exist-and-i-just-put-this-here-to-prevent-merge-conflicts-with-this-file": [] diff --git a/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc b/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc index 603f0d8293..5be358041a 100644 --- a/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc @@ -543,5 +543,23 @@ "(method 10 align-control)": [[16, "vector"]], + "(method 15 load-state)": [ + [16, "event-message-block"], + [96, "event-message-block"] + ], + + "(method 43 farmer)": [ + [16, "vector"] + ], + + "yakow-post": [ + [16, "vector"], + [32, "vector"], + [48, "vector"], + [64, "vector"], + [80, "vector"], + [96, "vector"] + ], + "placeholder-do-not-add-below!": [] } diff --git a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc index 072577c196..b89c08c8fa 100644 --- a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc @@ -1082,6 +1082,71 @@ [196, "s4", "pointer"], [[203, 210], "s4", "game-save-tag"] ], + + "drawable-load": [ + [17, "s5", "drawable"], + [18, "s5", "drawable"], + [20, "s5", "drawable"], + [25, "s5", "drawable"], + [27, "s5", "drawable"] + ], + "art-load": [ + [9, "s5", "art"], + [13, "s5", "art"], + [15, "s5", "art"] + ], + "art-group-load-check": [ + [22, "s3", "art-group"], + [31, "s3", "art-group"], + [43, "s3", "art-group"], + [50, "s3", "art-group"], + [52, "s3", "art-group"] + ], + "(method 13 art-group)": [[16, "s3", "art-joint-anim"]], + "(method 14 art-group)": [[16, "s3", "art-joint-anim"]], + + "(method 9 external-art-control)": [ + [171, "s4", "external-art-buffer"], + [172, "s4", "external-art-buffer"], + [173, "s4", "external-art-buffer"], + [177, "s4", "external-art-buffer"], + [183, "s4", "external-art-buffer"], + [190, "s4", "external-art-buffer"], + + [233, "s4", "spool-anim"], + [240, "s4", "spool-anim"], + [243, "s4", "spool-anim"], + [248, "s4", "spool-anim"], + [249, "s4", "spool-anim"], + [253, "s4", "spool-anim"], + [257, "s4", "spool-anim"] + ], + + "(method 10 external-art-control)": [ + [18, "v1", "spool-anim"] + ], + + "(method 16 external-art-control)": [ + [37, "a0", "process"], + [17, "s5", "process-drawable"] + ], + + "ja-play-spooled-anim": [ + [154, "a0", "process"], + [286, "s2", "art-joint-anim"], + [294, "s2", "art-joint-anim"], + [295, "s2", "art-joint-anim"], + [306, "s2", "art-joint-anim"], + [320, "s2", "art-joint-anim"], + [324, "s2", "art-joint-anim"] + ], + + "(method 11 external-art-control)": [ + [127, "a0", "process"], + [151, "a0", "process"], + [168, "a0", "process"], + [18, "s5", "process-drawable"] + ], "debug-menu-item-var-update-display-str": [ [[44, 49], "v1", "int"], @@ -1179,6 +1244,28 @@ "blackout": [[[20, 24], "v1", "dma-packet"]], "(method 10 external-art-control)": [[18, "v1", "pointer"]], + + "(method 15 load-state)": [ + [31, "t9", "(function int)"], + [291, "s5", "entity-actor"], + [370, "s3", "process-drawable"] + ], + + "yakow-default-event-handler": [ + [27, "a0", "collide-shape"], + [32, "a0", "collide-shape"] + ], + + "(method 11 yakow)": [ + [184, "v1", "vector"], + [186, "v1", "vector"], + [189, "v1", "vector"] + ], + + "yakow-post": [ + [114, "a0", "collide-shape-moving"], + [130, "a0", "collide-shape-moving"] + ], "placeholder-do-not-add-below": [] } diff --git a/decompiler/config/jak1_ntsc_black_label/var_names.jsonc b/decompiler/config/jak1_ntsc_black_label/var_names.jsonc index 2eb7e03098..d6dfbe6966 100644 --- a/decompiler/config/jak1_ntsc_black_label/var_names.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/var_names.jsonc @@ -2392,6 +2392,24 @@ } }, + "(method 13 art-group)": { + "vars":{ + "s3-0":"art-elt", + "s4-0":"janim", + "v1-9":"janim-group", + "s2-0":"success" + } + }, + + "(method 14 art-group)": { + "vars":{ + "s3-0":"art-elt", + "s4-0":"janim", + "v1-9":"janim-group", + "s3-1":"success" + } + }, + "(method 16 process-drawable)" : { "vars": { "s3-0":"body-T-world", @@ -2411,5 +2429,15 @@ "f0-6":"abs-vel-limit", "f0-10":"dpos" } - } + }, + + "ja-play-spooled-anim" : { + "vars": { + "sv-16":"spool-part", + "sv-28":"old-skel-status", + "sv-64":"spool-sound" + } + }, + + "aaaaaaaaaaaaaaaaaaaaaaa" : {} } diff --git a/decompiler/data/streamed_audio.cpp b/decompiler/data/streamed_audio.cpp index 8636b6e3de..21375891c1 100644 --- a/decompiler/data/streamed_audio.cpp +++ b/decompiler/data/streamed_audio.cpp @@ -181,9 +181,10 @@ AudioFileInfo process_audio_file(const std::vector& data, } void process_streamed_audio(const std::string& dir, const std::vector& audio_files) { - lg::info("Streaming audio: {}\n", dir); + auto dir_file_name = file_util::combine_path(dir, "VAGDIR.AYB"); + lg::info("Streaming audio: {}\n", dir_file_name); file_util::create_dir_if_needed(file_util::get_file_path({"assets", "streaming_audio"})); - auto dir_data = read_audio_dir(file_util::get_file_path({"iso_data", dir})); + auto dir_data = read_audio_dir(file_util::get_file_path({"iso_data", dir_file_name})); double audio_len = 0.f; std::vector langs; @@ -198,7 +199,7 @@ void process_streamed_audio(const std::string& dir, const std::vector obj length)) + (let ((v1-2 (-> obj data s3-0))) + (+! s5-0 (-> v1-2 used)) + (+! s4-0 (-> v1-2 total)) + (format #t "~3D: ~20S ~7D ~8D ~8D~%" s3-0 (-> v1-2 name) (-> v1-2 count) (-> v1-2 used) (-> v1-2 total)) + ) + ) + (format #t "total: ~8D ~8D~%" s5-0 s4-0) + ) + (format #t "-------------------------------------------------------------~%") + obj + ) + +(defmethod mem-usage object ((obj object) (arg0 memory-usage-block) (arg1 int)) + (if obj + (format #t "WARNING: mem-usage called on object, probably not what was wanted for ~A~%" obj) + ) + obj + ) + +(defmethod calculate-total memory-usage-block ((obj memory-usage-block)) + (let ((v0-0 0)) + (dotimes (v1-0 (-> obj length)) + (+! v0-0 (-> obj data v1-0 total)) + ) + v0-0 + ) + ) + +(defmethod reset! memory-usage-block ((obj memory-usage-block)) + (set! (-> obj length) 0) + (dotimes (v1-0 109) + (set! (-> obj data v1-0 used) 0) + (set! (-> obj data v1-0 total) 0) + (set! (-> obj data v1-0 count) 0) + ) + obj + ) + +(defun mem-size ((arg0 basic) (arg1 symbol) (arg2 int)) + (let ((gp-0 (new 'stack 'memory-usage-block))) + (mem-usage arg0 gp-0 arg2) + (if arg1 + (inspect gp-0) + ) + (calculate-total gp-0) + ) + ) + + +) + + diff --git a/goal_src/engine/draw/process-drawable-h.gc b/goal_src/engine/draw/process-drawable-h.gc index e0e173084f..b712fb26a3 100644 --- a/goal_src/engine/draw/process-drawable-h.gc +++ b/goal_src/engine/draw/process-drawable-h.gc @@ -42,12 +42,12 @@ ;; The following functions can be applied to a joint-control-channel to change the frame number. ;; They return the resulting frame number as well. -(defun num-func-none ((arg0 joint-control-channel)) +(defun num-func-none ((arg0 joint-control-channel) (arg2 float) (arg2 float)) "Don't change anything." (-> arg0 frame-num) ) -(defun num-func-+! ((arg0 joint-control-channel) (arg1 float)) +(defun num-func-+! ((arg0 joint-control-channel) (arg1 float) (arg2 float)) "Increment the frame number, taking into account the animation speed and current game rate." (let ((f0-1 (+ (-> arg0 frame-num) @@ -60,7 +60,7 @@ ) ) -(defun num-func--! ((arg0 joint-control-channel) (arg1 float)) +(defun num-func--! ((arg0 joint-control-channel) (arg1 float) (arg2 float)) "Decrement the frame number, taking into account the animation speed and current game rate." (let ((f0-1 (- (-> arg0 frame-num) @@ -73,7 +73,7 @@ ) ) -(defun num-func-loop! ((chan joint-control-channel) (inc float)) +(defun num-func-loop! ((chan joint-control-channel) (inc float) (arg2 float)) "Like num-func-+!, but will wrap to 0 after going past the end." ;; get the duration from the joint-animation-compressed. @@ -107,7 +107,7 @@ ) ) -(defun num-func-blend-in! ((arg0 joint-control-channel) (arg1 float)) +(defun num-func-blend-in! ((arg0 joint-control-channel) (arg1 float) (arg2 float)) "Seek frame-interp toward 1. Once its there, do a joint-control-reset." (let* ((v0-0 (seek (-> arg0 frame-interp) 1.0 (* arg1 (-> *display* time-adjust-ratio)))) (f30-0 (the-as float v0-0)) @@ -121,7 +121,7 @@ ) ) -(defun num-func-chan ((arg0 joint-control-channel) (arg1 float)) +(defun num-func-chan ((arg0 joint-control-channel) (arg1 float) (arg2 float)) "Copies the frame number from the channel arg1." ;; this is a super hack. ;; we know that we're in an inline-array of joint-control-channels @@ -143,7 +143,7 @@ ) ) -(defun num-func-identity ((arg0 joint-control-channel)) +(defun num-func-identity ((arg0 joint-control-channel) (arg1 float) (arg2 float)) "seems to be the same thing as none." (-> arg0 frame-num) ) diff --git a/goal_src/engine/entity/actor-link-h.gc b/goal_src/engine/entity/actor-link-h.gc index 3f236442d2..de4d5f3888 100644 --- a/goal_src/engine/entity/actor-link-h.gc +++ b/goal_src/engine/entity/actor-link-h.gc @@ -89,25 +89,25 @@ :size-assert #x10 :flag-assert #x1a00000010 (:methods - (new (symbol type process) _type_ 0) - (get-matching-actor-type-mask (_type_ type) int 9) - (actor-count-before (_type_) int 10) - (link (_type_) entity-actor 11) - (get-next (_type_) entity-actor 12) - (get-prev (_type_) entity-actor 13) - (get-next-process (_type_) process 14) - (get-prev-process (_type_) process 15) - (apply-function-forward (_type_ (function entity-actor object object) object) int 16) - (apply-function-reverse (_type_ (function entity-actor object object) object) int 17) - (apply-all (_type_ (function entity-actor object object) object) int 18) - (send-to-all (_type_ object) none 19) - (send-to-all-after (_type_ object) object 20) - (send-to-all-before (_type_ object) object 21) - (send-to-next-and-prev (_type_ object) none 22) - (send-to-next (_type_ object) none 23) - (send-to-prev (_type_ object) none 24) - (actor-count (_type_) int 25) - ) + (new (symbol type process) _type_ 0) + (get-matching-actor-type-mask (_type_ type) int 9) + (actor-count-before (_type_) int 10) + (link (_type_) entity-actor 11) + (get-next (_type_) entity-actor 12) + (get-prev (_type_) entity-actor 13) + (get-next-process (_type_) process 14) + (get-prev-process (_type_) process 15) + (apply-function-forward (_type_ (function entity-actor object object) object) int 16) + (apply-function-reverse (_type_ (function entity-actor object object) object) int 17) + (apply-all (_type_ (function entity-actor object object) object) int 18) + (send-to-all (_type_ symbol) none 19) + (send-to-all-after (_type_ symbol) object 20) + (send-to-all-before (_type_ symbol) object 21) + (send-to-next-and-prev (_type_ symbol) none 22) + (send-to-next (_type_ symbol) none 23) + (send-to-prev (_type_ symbol) none 24) + (actor-count (_type_) int 25) + ) ) ;;;;;;;;;;;;;;;; @@ -244,76 +244,51 @@ 0 ) -;; method 20 -(defmethod send-to-all-after actor-link-info ((obj actor-link-info) (message object)) - (with-pp - (let ((iter (-> obj next)) - (result (the object #f))) - (while iter - (let ((proc (-> (the entity-links (-> iter extra)) process))) - (when proc - (let ((msg-block (new 'stack-no-clear 'event-message-block))) - (set! (-> msg-block from) pp) - (set! (-> msg-block num-params) 0) - (set! (-> msg-block message) (the basic message)) +(defmethod send-to-all-after actor-link-info ((obj actor-link-info) (message symbol)) + "Send an event to all processes after this link with no parameters." - (let ((send-result (send-event-function (the process proc) msg-block))) - (set! result (and result send-result)) - ) - ) - ) - (set! iter (entity-actor-lookup iter 'next-actor 0)) + (let ((iter (-> obj next)) + (result (the object #f))) + (while iter + (let ((proc (-> (the entity-links (-> iter extra)) process))) + (when proc + (set! result (and result (send-event proc message))) ) + (set! iter (entity-actor-lookup iter 'next-actor 0)) ) - result ) + result ) ) -(defmethod send-to-all-before actor-link-info ((obj actor-link-info) (message object)) - (with-pp - (let ((iter (-> obj prev)) - (result (the object #f))) - (while iter - (let ((proc (-> (the entity-links (-> iter extra)) process))) - (when proc - (let ((msg-block (new 'stack-no-clear 'event-message-block))) - (set! (-> msg-block from) pp) - (set! (-> msg-block num-params) 0) - (set! (-> msg-block message) (the basic message)) +(defmethod send-to-all-before actor-link-info ((obj actor-link-info) (message symbol)) + "Send an event to all processes before this link with no parameters." - (let ((send-result (send-event-function (the process proc) msg-block))) - (set! result (and result send-result)) - ) - ) - ) - (set! iter (entity-actor-lookup iter 'prev-actor 0)) + (let ((iter (-> obj prev)) + (result (the object #f))) + (while iter + (let ((proc (-> (the entity-links (-> iter extra)) process))) + (when proc + (set! result (and result (send-event proc message))) ) + (set! iter (entity-actor-lookup iter 'prev-actor 0)) ) - result ) + result ) ) -(defmethod send-to-next actor-link-info ((obj actor-link-info) (arg0 object)) +(defmethod send-to-next actor-link-info ((obj actor-link-info) (message symbol)) "Send event arg0 to the next actor's process" - (with-pp - (let ((a0-1 (-> obj next))) - ;; do we have a next? - (when a0-1 - ;; get the actual process - (let ((a0-2 (-> (the-as entity-links (-> a0-1 extra)) process))) - ;; do we have a process? - (when a0-2 - ;; create a block on the stack - (let ((v1-4 (new 'stack-no-clear 'event-message-block))) - (set! (-> v1-4 from) pp) - (set! (-> v1-4 num-params) 0) - (set! (-> v1-4 message) (the-as basic arg0)) - ;; and send it! - (send-event-function (the process a0-2) v1-4) - ) - ) + + (let ((a0-1 (-> obj next))) + ;; do we have a next? + (when a0-1 + ;; get the actual process + (let ((a0-2 (-> (the-as entity-links (-> a0-1 extra)) process))) + ;; do we have a process? + (when a0-2 + (send-event a0-2 message) ) ) ) @@ -321,20 +296,14 @@ (none) ) -(defmethod send-to-prev actor-link-info ((obj actor-link-info) (arg0 object)) +(defmethod send-to-prev actor-link-info ((obj actor-link-info) (message symbol)) "Send event arg1 to the next actor's process." - (with-pp - (let ((a0-1 (-> obj prev))) - (when a0-1 - (let ((a0-2 (-> (the-as entity-links (-> a0-1 extra)) process))) - (when a0-2 - (let ((v1-4 (new 'stack-no-clear 'event-message-block))) - (set! (-> v1-4 from) pp) - (set! (-> v1-4 num-params) 0) - (set! (-> v1-4 message) (the-as basic arg0)) - (send-event-function (the process a0-2) v1-4) - ) - ) + + (let ((a0-1 (-> obj prev))) + (when a0-1 + (let ((a0-2 (-> (the-as entity-links (-> a0-1 extra)) process))) + (when a0-2 + (send-event a0-2 message) ) ) ) @@ -342,16 +311,17 @@ (none) ) -(defmethod send-to-next-and-prev actor-link-info ((obj actor-link-info) (arg0 object)) - "Send event arg0 to both next and prev." - (send-to-next obj arg0) - (send-to-prev obj arg0) +(defmethod send-to-next-and-prev actor-link-info ((obj actor-link-info) (msg symbol)) + "Send an event to both next and prev with no params." + + (send-to-next obj msg) + (send-to-prev obj msg) (none) ) -(defmethod send-to-all actor-link-info ((obj actor-link-info) (arg0 object)) - (send-to-all-after obj arg0) - (send-to-all-before obj arg0) +(defmethod send-to-all actor-link-info ((obj actor-link-info) (msg symbol)) + (send-to-all-after obj msg) + (send-to-all-before obj msg) (none) ) @@ -432,13 +402,9 @@ ) (defun actor-link-subtask-complete-hook ((arg0 entity-actor) (arg1 (pointer symbol))) - "Sets arg1 if the thing is complete. Returns the opposite value." + "Sets arg1 if the thing is complete. Does not continue the apply if the complete perm is set." (cond - ((nonzero? (logand - (-> (the-as entity-links (-> arg0 extra)) perm status) - (entity-perm-status complete) - ) - ) + ((logtest? (-> (the-as entity-links (-> arg0 extra)) perm status) (entity-perm-status complete)) (set! (-> arg1 0) #t) #f ) @@ -450,13 +416,9 @@ ) (defun actor-link-dead-hook ((arg0 entity-actor) (arg1 (pointer symbol))) - "Sets arg1 is the thing is dead. Returns the opposite value." + "Sets arg1 is the thing is dead. Does not continue the apply if the dead perm is set." (cond - ((nonzero? (logand - (-> (the-as entity-links (-> arg0 extra)) perm status) - (entity-perm-status dead) - ) - ) + ((logtest? (-> (the-as entity-links (-> arg0 extra)) perm status) (entity-perm-status dead)) (set! (-> arg1 0) #t) #f ) diff --git a/goal_src/engine/entity/entity-h.gc b/goal_src/engine/entity/entity-h.gc index 17d6d84a3f..a6c4e2cfe8 100644 --- a/goal_src/engine/entity/entity-h.gc +++ b/goal_src/engine/entity/entity-h.gc @@ -5,13 +5,8 @@ ;; name in dgo: entity-h ;; dgos: GAME, ENGINE -;; definition for symbol *generate-actor-vis*, type symbol (define *generate-actor-vis* #f) - -;; definition for symbol *generate-actor-vis-start*, type symbol (define *generate-actor-vis-start* #f) - -;; definition for symbol *generate-actor-vis-output*, type symbol (define *generate-actor-vis-output* #f) (defenum entity-perm-status @@ -31,43 +26,42 @@ ;; definition of type entity-perm (deftype entity-perm (structure) - ((user-object object 2 :offset-assert 0) - (user-uint64 uint64 :offset 0) - (user-float float 2 :offset 0) - (user-int32 int32 2 :offset 0) - (user-uint32 uint32 2 :offset 0) - (user-int16 int16 4 :offset 0) - (user-uint16 uint16 4 :offset 0) - (user-int8 int8 8 :offset 0) - (user-uint8 uint8 8 :offset 0) - (status entity-perm-status :offset-assert 8) - (dummy uint8 1 :offset-assert 10) - (task uint8 :offset-assert 11) - (aid uint32 :offset-assert 12) - (quad uint128 :offset 0) + ((user-object object 2 :offset-assert 0) + (user-uint64 uint64 :offset 0) + (user-float float 2 :offset 0) + (user-int32 int32 2 :offset 0) + (user-uint32 uint32 2 :offset 0) + (user-int16 int16 4 :offset 0) + (user-uint16 uint16 4 :offset 0) + (user-int8 int8 8 :offset 0) + (user-uint8 uint8 8 :offset 0) + (status entity-perm-status :offset-assert 8) + (dummy uint8 1 :offset-assert 10) + (task game-task :offset-assert 11) + (aid actor-id :offset-assert 12) + (quad uint128 :offset 0) ) :pack-me :method-count-assert 10 :size-assert #x10 :flag-assert #xa00000010 (:methods - (update-perm! (_type_ symbol entity-perm-status) _type_ 9) - ) + (update-perm! (_type_ symbol entity-perm-status) _type_ 9) + ) ) -;; definition of type entity-links (deftype entity-links (structure) - ((prev-link entity-links :offset-assert 0) - (next-link entity-links :offset-assert 4) - (entity entity :offset-assert 8) - (process process :offset-assert 12) - (level level :offset-assert 16) - (vis-id int32 :offset-assert 20) - (trans vector :inline :offset-assert 32) - (perm entity-perm :inline :offset-assert 48) - (status uint16 :offset 56) - (aid uint32 :offset 60) - (task uint8 :offset 59) + ((prev-link entity-links :offset-assert 0) + (next-link entity-links :offset-assert 4) + (entity entity :offset-assert 8) + (process process :offset-assert 12) + (level level :offset-assert 16) + (vis-id int32 :offset-assert 20) + (trans vector :inline :offset-assert 32) + (perm entity-perm :inline :offset-assert 48) + (status uint16 :offset 56) + (aid actor-id :offset 60) + (task game-task :offset 59) ) :method-count-assert 10 :size-assert #x40 @@ -77,17 +71,15 @@ ) ) -;; definition of type entity-perm-array (deftype entity-perm-array (inline-array-class) - ((data entity-perm :inline :dynamic :offset-assert 16)) + ((data entity-perm :inline :dynamic :offset-assert 16) + ) :method-count-assert 9 :size-assert #x10 :flag-assert #x900000010 ) - (set! (-> entity-perm-array heap-base) (the-as uint 16)) -;; definition of type entity-links-array (deftype entity-links-array (inline-array-class) ((data entity-links :inline :dynamic :offset-assert 16) ) @@ -95,13 +87,11 @@ :size-assert #x10 :flag-assert #x900000010 ) - (set! (-> entity-links-array heap-base) (the-as uint 64)) -;; definition of type entity (deftype entity (res-lump) - ((trans vector :inline :offset-assert 32) - (aid uint32 :offset-assert 48) + ((trans vector :inline :offset-assert 32) + (aid uint32 :offset-assert 48) ) :method-count-assert 27 :size-assert #x34 @@ -115,45 +105,40 @@ ) ) -;; definition of type entity-camera (deftype entity-camera (entity) - ((connect connectable :inline :offset-assert 64) + ((connect connectable :inline :offset-assert 64) ) :method-count-assert 27 :size-assert #x50 :flag-assert #x1b00000050 ) -;; definition of type entity-ambient-data (deftype entity-ambient-data (structure) - ((user-object object 3 :offset-assert 0) - (function basic :offset-assert 12) - (quad uint128 :offset 0) - (user-uint64 uint64 1 :offset 0) - (user-float float 3 :offset 0) - (user-int32 int32 3 :offset 0) - (user-uint32 uint32 3 :offset 0) - (user-int16 int16 6 :offset 0) - (user-uint16 uint16 6 :offset 0) - (user-int8 int8 12 :offset 0) - (user-uint8 uint8 12 :offset 0) + ((user-object object 3 :offset-assert 0) + (function basic :offset-assert 12) + (quad uint128 :offset 0) + (user-uint64 uint64 1 :offset 0) + (user-float float 3 :offset 0) + (user-int32 int32 3 :offset 0) + (user-uint32 uint32 3 :offset 0) + (user-int16 int16 6 :offset 0) + (user-uint16 uint16 6 :offset 0) + (user-int8 int8 12 :offset 0) + (user-uint8 uint8 12 :offset 0) ) :method-count-assert 9 :size-assert #x10 :flag-assert #x900000010 ) -;; definition of type entity-ambient-data-array (deftype entity-ambient-data-array (inline-array-class) () :method-count-assert 9 :size-assert #x10 :flag-assert #x900000010 ) - (set! (-> entity-ambient-data-array heap-base) (the-as uint 16)) -;; definition of type entity-ambient (deftype entity-ambient (entity) () :method-count-assert 29 @@ -165,33 +150,30 @@ ) ) -;; definition of type entity-actor -(declare-type nav-mesh basic) (deftype entity-actor (entity) - ((nav-mesh nav-mesh :offset-assert 52) - (etype type :offset-assert 56) - (task uint8 :offset-assert 60) - (vis-id uint16 :offset-assert 62) - (quat quaternion :inline :offset-assert 64) + ((nav-mesh nav-mesh :offset-assert 52) + (etype type :offset-assert 56) + (task uint8 :offset-assert 60) + (vis-id uint16 :offset-assert 62) + (quat quaternion :inline :offset-assert 64) ) :method-count-assert 31 :size-assert #x50 :flag-assert #x1f00000050 (:methods - (next-actor (_type_) entity-actor 27) - (prev-actor (_type_) entity-actor 28) - (dummy-29 () none 29) - (dummy-30 () none 30) - ) + (next-actor (_type_) entity-actor 27) + (prev-actor (_type_) entity-actor 28) + (dummy-29 () none 29) + (dummy-30 () none 30) + ) ) -;; definition of type entity-info (deftype entity-info (basic) - ((ptype type :offset-assert 4) - (package basic :offset-assert 8) - (art-group pair :offset-assert 12) - (pool basic :offset-assert 16) - (heap-size int32 :offset-assert 20) + ((ptype type :offset-assert 4) + (package basic :offset-assert 8) + (art-group pair :offset-assert 12) + (pool basic :offset-assert 16) + (heap-size int32 :offset-assert 20) ) :method-count-assert 9 :size-assert #x18 @@ -205,23 +187,21 @@ (set! entity-nav-login (the-as (function entity-actor none) nothing)) ) -;; definition of type actor-bank (deftype actor-bank (basic) - ((pause-dist float :offset-assert 4) - (birth-dist float :offset-assert 8) - (birth-max int32 :offset-assert 12) + ((pause-dist float :offset-assert 4) + (birth-dist float :offset-assert 8) + (birth-max int32 :offset-assert 12) ) :method-count-assert 9 :size-assert #x10 :flag-assert #x900000010 ) -;; definition for symbol *ACTOR-bank*, type actor-bank (define *ACTOR-bank* (new 'static 'actor-bank - :pause-dist 204800.0 - :birth-dist 901120.0 - :birth-max 10 + :pause-dist (meters 50) ;; actor activity range? + :birth-dist (meters 220) ;; draw distance or something? + :birth-max 10 ;; maximum actor births per frame? (it is known they dont all happen at once) ) ) diff --git a/goal_src/engine/game/game-h.gc b/goal_src/engine/game/game-h.gc index a59d48eb93..f53b765932 100644 --- a/goal_src/engine/game/game-h.gc +++ b/goal_src/engine/game/game-h.gc @@ -6,25 +6,29 @@ ;; dgos: GAME, ENGINE -(declare-type collide-shape basic) -(declare-type water-control basic) +(declare-type nav-control basic) +(declare-type path-control basic) +(declare-type vol-control basic) +(declare-type actor-link-info basic) (declare-type sparticle-launch-control basic) +(declare-type water-control basic) +(declare-type collide-shape basic) (deftype process-drawable (process) ((root trsqv :offset-assert 112) (node-list cspace-array :offset-assert 116) (draw draw-control :offset-assert 120) (skel joint-control :offset-assert 124) - (nav basic :offset-assert 128) + (nav nav-control :offset-assert 128) (align align-control :offset-assert 132) - (path basic :offset-assert 136) - (vol basic :offset-assert 140) + (path path-control :offset-assert 136) + (vol vol-control :offset-assert 140) (fact fact-info :offset-assert 144) - (link basic :offset-assert 148) + (link actor-link-info :offset-assert 148) (part sparticle-launch-control :offset-assert 152) (water water-control :offset-assert 156) (sound ambient-sound :offset-assert 160) (state-flags uint32 :offset-assert 164) - (state-time uint64 :offset-assert 168) + (state-time seconds :offset-assert 168) ) :heap-base #x40 :method-count-assert 20 @@ -144,4 +148,4 @@ ) -(declare-type target basic) \ No newline at end of file +(declare-type target process-drawable) \ No newline at end of file diff --git a/goal_src/engine/game/game-info-h.gc b/goal_src/engine/game/game-info-h.gc index 8ac3204405..9d29a57721 100644 --- a/goal_src/engine/game/game-info-h.gc +++ b/goal_src/engine/game/game-info-h.gc @@ -158,7 +158,7 @@ ;; the possible state for a level. (deftype level-buffer-state (structure) - ((name basic :offset-assert 0) ;; level name + ((name symbol :offset-assert 0) ;; level name (display? symbol :offset-assert 4) ;; should it be drawn? (force-vis? symbol :offset-assert 8) ;; ? should it have its vis loaded? (force-inside? symbol :offset-assert 12) ;; ? @@ -187,11 +187,11 @@ (want-display-level (_type_ symbol symbol) int 12) (want-vis (_type_ symbol) int 13) (want-force-vis (_type_ symbol symbol) int 14) - (dummy-15 () none 15) - (dummy-16 () none 16) - (dummy-17 () none 17) - (dummy-18 () none 18) - (dummy-19 () none 19) + (dummy-15 (_type_ pair) none 15) + (dummy-16 (_type_ float) int 16) + (dummy-17 (_type_ pair) int 17) + (dummy-18 (_type_) int 18) + (dummy-19 (_type_) int 19) (dummy-20 () none 20) ) ) @@ -206,19 +206,19 @@ ;; a game checkpoint (deftype continue-point (basic) - ((name string :offset-assert 4) - (level basic :offset-assert 8) - (flags uint32 :offset-assert 12) - (trans vector :inline :offset-assert 16) - (quat quaternion :inline :offset-assert 32) - (camera-trans vector :inline :offset-assert 48) - (camera-rot float 9 :offset-assert 64) - (load-commands pair :offset-assert 100) - (vis-nick basic :offset-assert 104) - (lev0 basic :offset-assert 108) - (disp0 basic :offset-assert 112) - (lev1 basic :offset-assert 116) - (disp1 basic :offset-assert 120) + ((name string :offset-assert 4) + (level symbol :offset-assert 8) + (flags uint32 :offset-assert 12) + (trans vector :inline :offset-assert 16) + (quat quaternion :inline :offset-assert 32) + (camera-trans vector :inline :offset-assert 48) + (camera-rot float 9 :offset-assert 64) + (load-commands pair :offset-assert 100) + (vis-nick symbol :offset-assert 104) + (lev0 symbol :offset-assert 108) + (disp0 symbol :offset-assert 112) + (lev1 symbol :offset-assert 116) + (disp1 symbol :offset-assert 120) ) :method-count-assert 10 :size-assert #x7c @@ -287,7 +287,7 @@ (initialize! (_type_ symbol game-save string) _type_ 9) (adjust (_type_ symbol float handle) float 10) (task-complete? (_type_ game-task) symbol 11) - (lookup-entity-perm-by-aid (_type_ uint) entity-perm 12) + (lookup-entity-perm-by-aid (_type_ actor-id) entity-perm 12) (get-entity-task-perm (_type_ game-task) entity-perm 13) (copy-perms-from-level! (_type_ level) none 14) (copy-perms-to-level! (_type_ level) none 15) diff --git a/goal_src/engine/game/game-info.gc b/goal_src/engine/game/game-info.gc index 061a975684..e171917912 100644 --- a/goal_src/engine/game/game-info.gc +++ b/goal_src/engine/game/game-info.gc @@ -551,10 +551,10 @@ ;; todo method 11 -(defmethod lookup-entity-perm-by-aid game-info ((obj game-info) (arg0 uint)) +(defmethod lookup-entity-perm-by-aid game-info ((obj game-info) (aid actor-id)) (let ((v1-0 (-> obj perm-list))) (countdown (a0-1 (-> v1-0 length)) - (if (= arg0 (-> v1-0 data a0-1 aid)) + (if (= aid (-> v1-0 data a0-1 aid)) (return (-> v1-0 data a0-1)) ) ) @@ -708,363 +708,125 @@ ) (defun-debug game-task->string ((arg0 game-task)) - (let ((v1-0 arg0)) - (cond - ((= v1-0 (game-task max)) - "max" - ) - ((= v1-0 (game-task assistant-village3)) - "assistant-village3" - ) - ((= v1-0 (game-task leaving-misty)) - "leaving-misty" - ) - ((= v1-0 (game-task plunger-lurker-hit)) - "plunger-lurker-hit" - ) - ((= v1-0 (game-task finalboss-movies)) - "finalboss-movies" - ) - ((= v1-0 (game-task village4-button)) - "village4-button" - ) - ((= v1-0 (game-task ogre-secret)) - "ogre-secret" - ) - ((= v1-0 (game-task intro)) - "intro" - ) - ((= v1-0 (game-task lavatube-start)) - "lavatube-start" - ) - ((= v1-0 (game-task lavatube-balls)) - "lavatube-balls" - ) - ((= v1-0 (game-task red-eggtop)) - "red-eggtop" - ) - ((= v1-0 (game-task village3-button)) - "village3-button" - ) - ((= v1-0 (game-task swamp-arm)) - "swamp-arm" - ) - ((= v1-0 (game-task village2-levitator)) - "village2-levitator" - ) - ((= v1-0 (game-task firecanyon-assistant)) - "firecanyon-assistant" - ) - ((= v1-0 (game-task village3-oracle-money2)) - "village3-oracle-money2" - ) - ((= v1-0 (game-task village3-oracle-money1)) - "village3-oracle-money1" - ) - ((= v1-0 (game-task village3-miner-money4)) - "village3-miner-money4" - ) - ((= v1-0 (game-task village3-miner-money3)) - "village3-miner-money3" - ) - ((= v1-0 (game-task village3-miner-money2)) - "village3-miner-money2" - ) - ((= v1-0 (game-task village3-miner-money1)) - "village3-miner-money1" - ) - ((= v1-0 (game-task training-buzzer)) - "training-buzzer" - ) - ((= v1-0 (game-task training-climb)) - "training-climb" - ) - ((= v1-0 (game-task training-door)) - "training-door" - ) - ((= v1-0 (game-task training-gimmie)) - "training-gimmie" - ) - ((= v1-0 (game-task citadel-buzzer)) - "citadel-buzzer" - ) - ((= v1-0 (game-task lavatube-buzzer)) - "lavatube-buzzer" - ) - ((= v1-0 (game-task lavatube-end)) - "lavatube-end" - ) - ((= v1-0 (game-task ogre-buzzer)) - "ogre-buzzer" - ) - ((= v1-0 (game-task ogre-end)) - "ogre-end" - ) - ((= v1-0 (game-task ogre-boss)) - "ogre-boss" - ) - ((= v1-0 (game-task cave-buzzer)) - "cave-buzzer" - ) - ((= v1-0 (game-task cave-platforms)) - "cave-platforms" - ) - ((= v1-0 (game-task cave-spider-tunnel)) - "cave-spider-tunnel" - ) - ((= v1-0 (game-task cave-swing-poles)) - "cave-swing-poles" - ) - ((= v1-0 (game-task cave-robot-climb)) - "cave-robot-climb" - ) - ((= v1-0 (game-task cave-dark-climb)) - "cave-dark-climb" - ) - ((= v1-0 (game-task cave-dark-crystals)) - "cave-dark-crystals" - ) - ((= v1-0 (game-task cave-gnawers)) - "cave-gnawers" - ) - ((= v1-0 (game-task village3-buzzer)) - "village3-buzzer" - ) - ((= v1-0 (game-task village2-buzzer)) - "village2-buzzer" - ) - ((= v1-0 (game-task village1-buzzer)) - "village1-buzzer" - ) - ((= v1-0 (game-task village3-extra1)) - "village3-extra1" - ) - ((= v1-0 (game-task citadel-sage-yellow)) - "citadel-sage-yellow" - ) - ((= v1-0 (game-task citadel-sage-red)) - "citadel-sage-red" - ) - ((= v1-0 (game-task citadel-sage-blue)) - "citadel-sage-blue" - ) - ((= v1-0 (game-task citadel-sage-green)) - "citadel-sage-green" - ) - ((= v1-0 (game-task firecanyon-end)) - "firecanyon-end" - ) - ((= v1-0 (game-task firecanyon-buzzer)) - "firecanyon-buzzer" - ) - ((= v1-0 (game-task snow-cage)) - "snow-cage" - ) - ((= v1-0 (game-task snow-bumpers)) - "snow-bumpers" - ) - ((= v1-0 (game-task snow-buzzer)) - "snow-buzzer" - ) - ((= v1-0 (game-task snow-bunnies)) - "snow-bunnies" - ) - ((= v1-0 (game-task snow-ball)) - "snow-ball" - ) - ((= v1-0 (game-task snow-fort)) - "snow-fort" - ) - ((= v1-0 (game-task snow-ram)) - "snow-ram" - ) - ((= v1-0 (game-task snow-eggtop)) - "snow-eggtop" - ) - ((= v1-0 (game-task rolling-ring-chase-2)) - "rolling-ring-chase-2" - ) - ((= v1-0 (game-task rolling-ring-chase-1)) - "rolling-ring-chase-1" - ) - ((= v1-0 (game-task rolling-buzzer)) - "rolling-buzzer" - ) - ((= v1-0 (game-task rolling-lake)) - "rolling-lake" - ) - ((= v1-0 (game-task rolling-plants)) - "rolling-plants" - ) - ((= v1-0 (game-task rolling-moles)) - "rolling-moles" - ) - ((= v1-0 (game-task rolling-robbers)) - "rolling-robbers" - ) - ((= v1-0 (game-task rolling-race)) - "rolling-race" - ) - ((= v1-0 (game-task sunken-spinning-room)) - "sunken-spinning-room" - ) - ((= v1-0 (game-task sunken-top-of-helix)) - "sunken-top-of-helix" - ) - ((= v1-0 (game-task sunken-buzzer)) - "sunken-buzzer" - ) - ((= v1-0 (game-task sunken-sharks)) - "sunken-sharks" - ) - ((= v1-0 (game-task sunken-room)) - "sunken-room" - ) - ((= v1-0 (game-task sunken-slide)) - "sunken-slide" - ) - ((= v1-0 (game-task sunken-pipe)) - "sunken-pipe" - ) - ((= v1-0 (game-task sunken-platforms)) - "sunken-platforms" - ) - ((= v1-0 (game-task swamp-buzzer)) - "swamp-buzzer" - ) - ((= v1-0 (game-task swamp-tether-4)) - "swamp-tether-4" - ) - ((= v1-0 (game-task swamp-tether-3)) - "swamp-tether-3" - ) - ((= v1-0 (game-task swamp-tether-2)) - "swamp-tether-2" - ) - ((= v1-0 (game-task swamp-tether-1)) - "swamp-tether-1" - ) - ((= v1-0 (game-task swamp-battle)) - "swamp-battle" - ) - ((= v1-0 (game-task swamp-flutflut)) - "swamp-flutflut" - ) - ((= v1-0 (game-task swamp-billy)) - "swamp-billy" - ) - ((= v1-0 (game-task village2-oracle-money2)) - "village2-oracle-money2" - ) - ((= v1-0 (game-task village2-oracle-money1)) - "village2-oracle-money1" - ) - ((= v1-0 (game-task village2-warrior-money)) - "village2-warrior-money" - ) - ((= v1-0 (game-task village2-geologist-money)) - "village2-geologist-money" - ) - ((= v1-0 (game-task village2-gambler-money)) - "village2-gambler-money" - ) - ((= v1-0 (game-task misty-eco-challenge)) - "misty-eco-challenge" - ) - ((= v1-0 (game-task misty-bike-jump)) - "misty-bike-jump" - ) - ((= v1-0 (game-task misty-buzzer)) - "misty-buzzer" - ) - ((= v1-0 (game-task misty-bike)) - "misty-bike" - ) - ((= v1-0 (game-task misty-cannon)) - "misty-cannon" - ) - ((= v1-0 (game-task misty-warehouse)) - "misty-warehouse" - ) - ((= v1-0 (game-task misty-boat)) - "misty-boat" - ) - ((= v1-0 (game-task misty-muse)) - "misty-muse" - ) - ((= v1-0 (game-task beach-sentinel)) - "beach-sentinel" - ) - ((= v1-0 (game-task beach-gimmie)) - "beach-gimmie" - ) - ((= v1-0 (game-task beach-buzzer)) - "beach-buzzer" - ) - ((= v1-0 (game-task beach-cannon)) - "beach-cannon" - ) - ((= v1-0 (game-task beach-seagull)) - "beach-seagull" - ) - ((= v1-0 (game-task beach-flutflut)) - "beach-flutflut" - ) - ((= v1-0 (game-task beach-pelican)) - "beach-pelican" - ) - ((= v1-0 (game-task beach-ecorocks)) - "beach-ecorocks" - ) - ((= v1-0 (game-task village1-oracle-money2)) - "village1-oracle-money2" - ) - ((= v1-0 (game-task village1-oracle-money1)) - "village1-oracle-money1" - ) - ((= v1-0 (game-task village1-uncle-money)) - "village1-uncle-money" - ) - ((= v1-0 (game-task village1-mayor-money)) - "village1-mayor-money" - ) - ((= v1-0 (game-task village1-yakow)) - "village1-yakow" - ) - ((= v1-0 (game-task jungle-temple-door)) - "jungle-temple-door" - ) - ((= v1-0 (game-task jungle-canyon-end)) - "jungle-canyon-end" - ) - ((= v1-0 (game-task jungle-buzzer)) - "jungle-buzzer" - ) - ((= v1-0 (game-task jungle-plant)) - "jungle-plant" - ) - ((= v1-0 (game-task jungle-fishgame)) - "jungle-fishgame" - ) - ((= v1-0 (game-task jungle-tower)) - "jungle-tower" - ) - ((= v1-0 (game-task jungle-lurkerm)) - "jungle-lurkerm" - ) - ((= v1-0 (game-task jungle-eggtop)) - "jungle-eggtop" - ) - ((= v1-0 (game-task complete)) - "complete" - ) - ((= v1-0 (game-task none)) - "none" - ) - (else - "*unknown*" - ) - ) + (case arg0 + (((game-task max)) "max") + (((game-task assistant-village3)) "assistant-village3") + (((game-task leaving-misty)) "leaving-misty") + (((game-task plunger-lurker-hit)) "plunger-lurker-hit") + (((game-task finalboss-movies)) "finalboss-movies") + (((game-task village4-button)) "village4-button") + (((game-task ogre-secret)) "ogre-secret") + (((game-task intro)) "intro") + (((game-task lavatube-start)) "lavatube-start") + (((game-task lavatube-balls)) "lavatube-balls") + (((game-task red-eggtop)) "red-eggtop") + (((game-task village3-button)) "village3-button") + (((game-task swamp-arm)) "swamp-arm") + (((game-task village2-levitator)) "village2-levitator") + (((game-task firecanyon-assistant)) "firecanyon-assistant") + (((game-task village3-oracle-money2)) "village3-oracle-money2") + (((game-task village3-oracle-money1)) "village3-oracle-money1") + (((game-task village3-miner-money4)) "village3-miner-money4") + (((game-task village3-miner-money3)) "village3-miner-money3") + (((game-task village3-miner-money2)) "village3-miner-money2") + (((game-task village3-miner-money1)) "village3-miner-money1") + (((game-task training-buzzer)) "training-buzzer") + (((game-task training-climb)) "training-climb") + (((game-task training-door)) "training-door") + (((game-task training-gimmie)) "training-gimmie") + (((game-task citadel-buzzer)) "citadel-buzzer") + (((game-task lavatube-buzzer)) "lavatube-buzzer") + (((game-task lavatube-end)) "lavatube-end") + (((game-task ogre-buzzer)) "ogre-buzzer") + (((game-task ogre-end)) "ogre-end") + (((game-task ogre-boss)) "ogre-boss") + (((game-task cave-buzzer)) "cave-buzzer") + (((game-task cave-platforms)) "cave-platforms") + (((game-task cave-spider-tunnel)) "cave-spider-tunnel") + (((game-task cave-swing-poles)) "cave-swing-poles") + (((game-task cave-robot-climb)) "cave-robot-climb") + (((game-task cave-dark-climb)) "cave-dark-climb") + (((game-task cave-dark-crystals)) "cave-dark-crystals") + (((game-task cave-gnawers)) "cave-gnawers") + (((game-task village3-buzzer)) "village3-buzzer") + (((game-task village2-buzzer)) "village2-buzzer") + (((game-task village1-buzzer)) "village1-buzzer") + (((game-task village3-extra1)) "village3-extra1") + (((game-task citadel-sage-yellow)) "citadel-sage-yellow") + (((game-task citadel-sage-red)) "citadel-sage-red") + (((game-task citadel-sage-blue)) "citadel-sage-blue") + (((game-task citadel-sage-green)) "citadel-sage-green") + (((game-task firecanyon-end)) "firecanyon-end") + (((game-task firecanyon-buzzer)) "firecanyon-buzzer") + (((game-task snow-cage)) "snow-cage") + (((game-task snow-bumpers)) "snow-bumpers") + (((game-task snow-buzzer)) "snow-buzzer") + (((game-task snow-bunnies)) "snow-bunnies") + (((game-task snow-ball)) "snow-ball") + (((game-task snow-fort)) "snow-fort") + (((game-task snow-ram)) "snow-ram") + (((game-task snow-eggtop)) "snow-eggtop") + (((game-task rolling-ring-chase-2)) "rolling-ring-chase-2") + (((game-task rolling-ring-chase-1)) "rolling-ring-chase-1") + (((game-task rolling-buzzer)) "rolling-buzzer") + (((game-task rolling-lake)) "rolling-lake") + (((game-task rolling-plants)) "rolling-plants") + (((game-task rolling-moles)) "rolling-moles") + (((game-task rolling-robbers)) "rolling-robbers") + (((game-task rolling-race)) "rolling-race") + (((game-task sunken-spinning-room)) "sunken-spinning-room") + (((game-task sunken-top-of-helix)) "sunken-top-of-helix") + (((game-task sunken-buzzer)) "sunken-buzzer") + (((game-task sunken-sharks)) "sunken-sharks") + (((game-task sunken-room)) "sunken-room") + (((game-task sunken-slide)) "sunken-slide") + (((game-task sunken-pipe)) "sunken-pipe") + (((game-task sunken-platforms)) "sunken-platforms") + (((game-task swamp-buzzer)) "swamp-buzzer") + (((game-task swamp-tether-4)) "swamp-tether-4") + (((game-task swamp-tether-3)) "swamp-tether-3") + (((game-task swamp-tether-2)) "swamp-tether-2") + (((game-task swamp-tether-1)) "swamp-tether-1") + (((game-task swamp-battle)) "swamp-battle") + (((game-task swamp-flutflut)) "swamp-flutflut") + (((game-task swamp-billy)) "swamp-billy") + (((game-task village2-oracle-money2)) "village2-oracle-money2") + (((game-task village2-oracle-money1)) "village2-oracle-money1") + (((game-task village2-warrior-money)) "village2-warrior-money") + (((game-task village2-geologist-money)) "village2-geologist-money") + (((game-task village2-gambler-money)) "village2-gambler-money") + (((game-task misty-eco-challenge)) "misty-eco-challenge") + (((game-task misty-bike-jump)) "misty-bike-jump") + (((game-task misty-buzzer)) "misty-buzzer") + (((game-task misty-bike)) "misty-bike") + (((game-task misty-cannon)) "misty-cannon") + (((game-task misty-warehouse)) "misty-warehouse") + (((game-task misty-boat)) "misty-boat") + (((game-task misty-muse)) "misty-muse") + (((game-task beach-sentinel)) "beach-sentinel") + (((game-task beach-gimmie)) "beach-gimmie") + (((game-task beach-buzzer)) "beach-buzzer") + (((game-task beach-cannon)) "beach-cannon") + (((game-task beach-seagull)) "beach-seagull") + (((game-task beach-flutflut)) "beach-flutflut") + (((game-task beach-pelican)) "beach-pelican") + (((game-task beach-ecorocks)) "beach-ecorocks") + (((game-task village1-oracle-money2)) "village1-oracle-money2") + (((game-task village1-oracle-money1)) "village1-oracle-money1") + (((game-task village1-uncle-money)) "village1-uncle-money") + (((game-task village1-mayor-money)) "village1-mayor-money") + (((game-task village1-yakow)) "village1-yakow") + (((game-task jungle-temple-door)) "jungle-temple-door") + (((game-task jungle-canyon-end)) "jungle-canyon-end") + (((game-task jungle-buzzer)) "jungle-buzzer") + (((game-task jungle-plant)) "jungle-plant") + (((game-task jungle-fishgame)) "jungle-fishgame") + (((game-task jungle-tower)) "jungle-tower") + (((game-task jungle-lurkerm)) "jungle-lurkerm") + (((game-task jungle-eggtop)) "jungle-eggtop") + (((game-task complete)) "complete") + (((game-task none)) "none") + (else "*unknown*") ) ) @@ -1103,7 +865,7 @@ (let ((v1-15 (new 'global 'entity-perm-array 116))) (set! (-> gp-0 task-perm-list) v1-15) (dotimes (a0-24 (-> v1-15 length)) - (set! (-> v1-15 data a0-24 task) (the-as uint a0-24)) + (set! (-> v1-15 data a0-24 task) (the-as game-task a0-24)) ) (set! (-> v1-15 data 1 status) diff --git a/goal_src/engine/game/generic-obs-h.gc b/goal_src/engine/game/generic-obs-h.gc index f22323a187..7fb0185a53 100644 --- a/goal_src/engine/game/generic-obs-h.gc +++ b/goal_src/engine/game/generic-obs-h.gc @@ -10,9 +10,9 @@ ((new-trans-hook function :offset-assert 176) (cur-trans-hook function :offset-assert 180) (cur-event-hook function :offset-assert 184) - (new-joint-anim basic :offset-assert 188) + (new-joint-anim art-joint-anim :offset-assert 188) (new-joint-anim-blend uint64 :offset-assert 192) - (anim-mode basic :offset-assert 200) + (anim-mode symbol :offset-assert 200) (cur-grab-handle uint64 :offset-assert 208) (cur-target-handle uint64 :offset-assert 216) (old-grab-pos vector :inline :offset-assert 224) diff --git a/goal_src/engine/game/settings.gc b/goal_src/engine/game/settings.gc index 62cba6ac3c..23bef0fc05 100644 --- a/goal_src/engine/game/settings.gc +++ b/goal_src/engine/game/settings.gc @@ -5,7 +5,7 @@ ;; name in dgo: settings ;; dgos: GAME, ENGINE -;; definition for method 9 of type setting-data + (defmethod handle-pending-updates setting-data ((obj setting-data) (arg0 engine)) "this goes through the list of pending setting changes in the engine/connection list and updates the setting-data" @@ -29,28 +29,13 @@ (('process-mask) (case (-> conn param1) (('set) - (set! - (-> obj process-mask) - (logior - (-> obj process-mask) - (the-as uint (the-as int (-> conn param3))) - ) - ) + (logior! (-> obj process-mask) (the-as process-mask (-> conn param3))) ) (('clear) - (set! - (-> obj process-mask) - (logand - (-> obj process-mask) - (the-as uint (the-as uint (lognot (the-as uint (-> conn param3))))) - ) - ) + (logclear! (-> obj process-mask) (the-as process-mask (-> conn param3))) ) (('abs) - (set! - (-> obj process-mask) - (the-as process-mask (the-as int (-> conn param3))) - ) + (set! (-> obj process-mask) (the-as process-mask (-> conn param3))) ) ) ) @@ -211,16 +196,10 @@ (('common-page) (case (-> conn param1) (('set) - (set! (-> obj common-page) - (logior (-> obj common-page) (the-as int (-> conn param3))) - ) + (logior! (-> obj common-page) (the-as int (-> conn param3))) ) (('clear) - (set! (-> obj common-page) - (logand (-> obj common-page) - (the-as int (the-as uint (lognot (the-as uint (-> conn param3))))) - ) - ) + (logclear! (-> obj common-page) (the-as int (-> conn param3))) ) ) ) @@ -232,35 +211,13 @@ obj ) -;; definition for method 9 of type setting-control -;; INFO: Return type mismatch int vs none. -(defmethod - push-setting! - setting-control - ((obj setting-control) - (arg0 process) - (arg1 (function object object object object object)) - (arg2 object) - (arg3 object) - (arg4 object) - ) +(defmethod push-setting! setting-control ((obj setting-control) (arg0 process) (arg1 (function object object object object object)) (arg2 object) (arg3 object) (arg4 object)) (add-connection (-> obj engine) arg0 arg1 arg2 arg3 arg4) 0 (none) ) -;; definition for method 10 of type setting-control -;; INFO: Return type mismatch int vs none. -(defmethod - set-setting! - setting-control - ((obj setting-control) - (arg0 process) - (arg1 symbol) - (arg2 symbol) - (arg3 float) - (arg4 int) - ) +(defmethod set-setting! setting-control ((obj setting-control) (arg0 process) (arg1 symbol) (arg2 symbol) (arg3 float) (arg4 int)) (clear-pending-settings-from-process obj arg0 arg1) (add-connection (-> obj engine) @@ -274,12 +231,7 @@ (none) ) -;; definition for method 11 of type setting-control -;; INFO: Return type mismatch int vs none. -(defmethod - clear-pending-settings-from-process - setting-control - ((obj setting-control) (arg0 process) (arg1 symbol)) +(defmethod clear-pending-settings-from-process setting-control ((obj setting-control) (arg0 process) (arg1 symbol)) (when arg0 (let ((s5-0 (-> obj engine)) (s4-0 (-> arg0 connection-list next1)) @@ -303,7 +255,7 @@ (none) ) -;; definition for method 12 of type setting-control + (defmethod copy-settings-from-target! setting-control ((obj setting-control)) (let ((gp-0 (-> obj current))) (let ((s5-0 (-> obj target))) @@ -338,54 +290,26 @@ ) ) -;; definition for method 13 of type setting-control + (defmethod update-per-frame-settings! setting-control ((obj setting-control)) (copy-settings-from-target! obj) (let ((gp-0 (-> obj current))) (let ((s5-1 (-> obj target))) (when *sound-player-enable* (when (!= (-> gp-0 sfx-volume) (-> s5-1 sfx-volume)) - (set! - (-> gp-0 sfx-volume) - (seek - (-> gp-0 sfx-volume) - (-> s5-1 sfx-volume) - (* 100.0 (-> *display* seconds-per-frame)) - ) - ) + (seek! (-> gp-0 sfx-volume) (-> s5-1 sfx-volume) (* 100.0 (-> *display* seconds-per-frame))) (sound-set-volume (the-as uint 1) (-> gp-0 sfx-volume)) ) (when (!= (-> gp-0 music-volume) (-> s5-1 music-volume)) - (set! - (-> gp-0 music-volume) - (seek - (-> gp-0 music-volume) - (-> s5-1 music-volume) - (* 100.0 (-> *display* seconds-per-frame)) - ) - ) + (seek! (-> gp-0 music-volume) (-> s5-1 music-volume) (* 100.0 (-> *display* seconds-per-frame))) (sound-set-volume (the-as uint 2) (-> gp-0 music-volume)) ) (when (!= (-> gp-0 dialog-volume) (-> s5-1 dialog-volume)) - (set! - (-> gp-0 dialog-volume) - (seek - (-> gp-0 dialog-volume) - (-> s5-1 dialog-volume) - (* 100.0 (-> *display* seconds-per-frame)) - ) - ) + (seek! (-> gp-0 dialog-volume) (-> s5-1 dialog-volume) (* 100.0 (-> *display* seconds-per-frame))) (sound-set-volume (the-as uint 4) (-> gp-0 dialog-volume)) ) (when (!= (-> gp-0 ambient-volume) (-> s5-1 ambient-volume)) - (set! - (-> gp-0 ambient-volume) - (seek - (-> gp-0 ambient-volume) - (-> s5-1 ambient-volume) - (* 100.0 (-> *display* seconds-per-frame)) - ) - ) + (seek! (-> gp-0 ambient-volume) (-> s5-1 ambient-volume) (* 100.0 (-> *display* seconds-per-frame))) (sound-set-volume (the-as uint 16) (-> gp-0 ambient-volume)) ) ) @@ -393,16 +317,13 @@ (set! (-> gp-0 language) (-> s5-1 language)) (set-language (-> gp-0 language)) ) - (when - (and - (!= (-> s5-1 music) (-> gp-0 music)) - (and - (< 0.0 (-> *setting-control* current music-volume)) - (zero? (rpc-busy? 1)) - *sound-bank-1* - *sound-bank-2* - ) - ) + (when (and (!= (-> s5-1 music) (-> gp-0 music)) + (and (< 0.0 (-> *setting-control* current music-volume)) + (zero? (rpc-busy? 1)) + *sound-bank-1* + *sound-bank-2* + ) + ) (cond ((-> s5-1 music) (format 0 "Load music ~A~%" (-> s5-1 music)) @@ -415,13 +336,7 @@ ) (set! (-> gp-0 music) (-> s5-1 music)) ) - (set! - (-> s5-1 sound-flava) - (the-as - uint - (flava-lookup (-> gp-0 music) (the-as int (-> s5-1 sound-flava))) - ) - ) + (set! (-> s5-1 sound-flava) (the-as uint (flava-lookup (-> gp-0 music) (the-as int (-> s5-1 sound-flava))))) (set! (-> gp-0 sound-flava) (-> s5-1 sound-flava)) (if *sound-player-enable* (sound-set-flava (-> gp-0 sound-flava)) @@ -449,14 +364,7 @@ (set! (-> gp-0 bg-r) (-> s5-1 bg-r)) (set! (-> gp-0 bg-g) (-> s5-1 bg-g)) (set! (-> gp-0 bg-b) (-> s5-1 bg-b)) - (set! - (-> gp-0 bg-a) - (seek - (-> gp-0 bg-a) - (-> s5-1 bg-a) - (* (-> s5-1 bg-a-speed) (-> *display* seconds-per-frame)) - ) - ) + (seek! (-> gp-0 bg-a) (-> s5-1 bg-a) (* (-> s5-1 bg-a-speed) (-> *display* seconds-per-frame))) ) (let ((v1-60 (-> *display* frames (-> *display* on-screen) display)) (f0-39 (-> gp-0 bg-a)) @@ -488,7 +396,7 @@ ) ) -;; failed to figure out what this is: + (when (zero? *setting-control*) (set! *setting-control* (new 'global 'setting-control 32)) (let ((gp-0 (-> *setting-control* default)) @@ -498,38 +406,14 @@ (set! (-> gp-0 ocean-off) #f) (set! (-> gp-0 allow-look-around) #t) (set! (-> gp-0 border-mode) #f) - (set! - (-> gp-0 sfx-volume) - (the float (* 5 (the int (+ 0.5 (* 15.0 f0-2))))) - ) - (set! - (-> gp-0 music-volume) - (the float (* 5 (the int (+ 0.5 (* 13.0 f0-2))))) - ) - (set! - (-> gp-0 dialog-volume) - (the float (* 5 (the int (+ 0.5 (* 20.0 f0-2))))) - ) - (set! - (-> gp-0 ambient-volume) - (the float (* 5 (the int (+ 0.5 (* 15.0 f0-2))))) - ) - (set! - (-> gp-0 sfx-volume-movie) - (the float (* 5 (the int (+ 0.5 (* 11.0 f0-2))))) - ) - (set! - (-> gp-0 music-volume-movie) - (the float (* 5 (the int (+ 0.5 (* 13.0 f0-2))))) - ) - (set! - (-> gp-0 ambient-volume-movie) - (the float (* 5 (the int (+ 0.5 (* 11.0 f0-2))))) - ) - (set! - (-> gp-0 dialog-volume-hint) - (the float (* 5 (the int (+ 0.5 (* 16.0 f0-2))))) - ) + (set! (-> gp-0 sfx-volume) (the float (* 5 (the int (+ 0.5 (* 15.0 f0-2)))))) + (set! (-> gp-0 music-volume) (the float (* 5 (the int (+ 0.5 (* 13.0 f0-2)))))) + (set! (-> gp-0 dialog-volume) (the float (* 5 (the int (+ 0.5 (* 20.0 f0-2)))))) + (set! (-> gp-0 ambient-volume) (the float (* 5 (the int (+ 0.5 (* 15.0 f0-2)))))) + (set! (-> gp-0 sfx-volume-movie) (the float (* 5 (the int (+ 0.5 (* 11.0 f0-2)))))) + (set! (-> gp-0 music-volume-movie) (the float (* 5 (the int (+ 0.5 (* 13.0 f0-2)))))) + (set! (-> gp-0 ambient-volume-movie) (the float (* 5 (the int (+ 0.5 (* 11.0 f0-2)))))) + (set! (-> gp-0 dialog-volume-hint) (the float (* 5 (the int (+ 0.5 (* 16.0 f0-2)))))) ) (set! (-> gp-0 language) (the-as int (scf-get-language))) (set! (-> gp-0 process-mask) (process-mask execute sleep)) diff --git a/goal_src/engine/game/task/task-control-h.gc b/goal_src/engine/game/task/task-control-h.gc index c1385e47e5..0400111719 100644 --- a/goal_src/engine/game/task/task-control-h.gc +++ b/goal_src/engine/game/task/task-control-h.gc @@ -85,7 +85,6 @@ ) ) -;; definition of type ambient-control (deftype ambient-control (structure) ((last-ambient-time uint64 :offset-assert 0) (last-ambient basic :offset-assert 8) @@ -95,18 +94,17 @@ :size-assert #x10 :flag-assert #xc00000010 (:methods - (dummy-9 () none 9) + (dummy-9 (_type_ vector int float process-drawable) none 9) (dummy-10 () none 10) (dummy-11 () none 11) ) ) -;; definition of type process-taskable (deftype process-taskable (process-drawable) - ((tasks basic :offset-assert 176) + ((tasks task-control :offset-assert 176) (query gui-query :inline :offset-assert 180) (old-target-pos transformq :inline :offset-assert 208) - (cell-for-task uint8 :offset-assert 256) + (cell-for-task game-task :offset-assert 256) (cell-x uint64 :offset-assert 264) (cam-joint-index int32 :offset-assert 272) (skippable basic :offset-assert 276) @@ -134,39 +132,39 @@ :size-assert #x17c :flag-assert #x350110017c (:methods - (dummy-20 () none 20) - (dummy-21 () none 21) - (dummy-22 () none 22) - (dummy-23 () none 23) - (dummy-24 () none 24) - (dummy-25 () none 25) - (dummy-26 () none 26) - (dummy-27 () none 27) - (dummy-28 () none 28) - (dummy-29 () none 29) - (dummy-30 () none 30) - (dummy-31 () none 31) - (dummy-32 () none 32) - (dummy-33 () none 33) - (dummy-34 () none 34) - (dummy-35 () none 35) - (dummy-36 () none 36) - (dummy-37 () none 37) - (dummy-38 () none 38) - (dummy-39 () none 39) - (dummy-40 () none 40) - (dummy-41 () none 41) - (dummy-42 () none 42) - (dummy-43 () none 43) - (dummy-44 () none 44) - (dummy-45 () none 45) - (dummy-46 () none 46) - (dummy-47 () none 47) - (dummy-48 () none 48) - (dummy-49 () none 49) - (dummy-50 () none 50) - (dummy-51 () none 51) - (dummy-52 () none 52) + (dummy-20 (_type_) none 20) + (dummy-21 (_type_) none 21) + (dummy-22 (_type_) none 22) + (dummy-23 (_type_) none 23) + (dummy-24 (_type_) none 24) + (dummy-25 (_type_) none 25) + (dummy-26 (_type_) none 26) + (dummy-27 (_type_) none 27) + (dummy-28 (_type_) none 28) + (dummy-29 (_type_) none 29) + (dummy-30 (_type_) none 30) + (dummy-31 (_type_) none 31) + (dummy-32 (_type_ symbol) spool-anim 32) + (dummy-33 (_type_) none 33) + (dummy-34 (_type_) none 34) + (dummy-35 (_type_) none 35) + (dummy-36 (_type_) none 36) + (dummy-37 (_type_) none 37) + (dummy-38 (_type_) none 38) + (dummy-39 (_type_) none 39) + (dummy-40 (_type_ object skeleton-group int int vector int) none 40) + (dummy-41 (_type_) none 41) + (dummy-42 (_type_) none 42) + (dummy-43 (_type_) none 43) + (dummy-44 (_type_) none 44) + (dummy-45 (_type_) none 45) + (dummy-46 (_type_) none 46) + (dummy-47 (_type_) none 47) + (dummy-48 (_type_) none 48) + (dummy-49 (_type_) none 49) + (dummy-50 (_type_) none 50) + (dummy-51 (_type_) none 51) + (dummy-52 (_type_) none 52) ) ) diff --git a/goal_src/engine/game/task/task-control.gc b/goal_src/engine/game/task/task-control.gc index ff395b722a..078b793596 100644 --- a/goal_src/engine/game/task/task-control.gc +++ b/goal_src/engine/game/task/task-control.gc @@ -1,39 +1,22 @@ ;;-*-Lisp-*- (in-package goal) -;; definition (debug) for function task-status->string +;; name: task-control.gc +;; name in dgo: task-control +;; dgos: GAME, ENGINE + (defun-debug task-status->string ((arg0 task-status)) - (let ((v1-0 arg0)) - (cond - ((= v1-0 7) - "need-resolution" - ) - ((= v1-0 6) - "need-reward-speech" - ) - ((= v1-0 5) - "need-reminder" - ) - ((= v1-0 4) - "need-reminder-a" - ) - ((= v1-0 3) - "need-introduction" - ) - ((= v1-0 2) - "need-hint" - ) - ((= v1-0 1) - "unknown" - ) - ((zero? v1-0) - "invalid" - ) - (else - "*unknown*" - ) + (case arg0 + (((task-status need-resolution)) "need-resolution") + (((task-status need-reward-speech)) "need-reward-speech") + (((task-status need-reminder)) "need-reminder") + (((task-status need-reminder-a)) "need-reminder-a") + (((task-status need-introduction)) "need-introduction") + (((task-status need-hint)) "need-hint") + (((task-status unknown)) "unknown") + (((task-status invalid)) "invalid") + (else "*unknown*") ) - ) ) (defmethod get-game-task task-cstage ((obj task-cstage)) @@ -48,41 +31,43 @@ (defmethod closed? task-cstage ((obj task-cstage)) "Is the closed flag set?" - (nonzero? (logand (-> obj flags) (task-flags closed))) + (declare (inline)) + + (logtest? (-> obj flags) (task-flags closed)) ) (defmethod closed-by-default? task-cstage ((obj task-cstage)) "Is the closed-by-default flag set?" - (nonzero? (logand (-> obj flags) (task-flags closed-by-default))) + (declare (inline)) + + (logtest? (-> obj flags) (task-flags closed-by-default)) ) (defmethod task-available? task-cstage ((obj task-cstage) (arg0 task-control)) "Is this task available to be the current task?" - (let ((a0-1 obj)) - (cond - ((nonzero? (logand (-> a0-1 flags) (task-flags closed))) - ;; closed flag is set, we're already closed. - #f - ) - ((>= (the-as int (-> (get-entity-task-perm *game-info* (-> obj game-task)) user-uint8 0)) - (the-as int (-> obj status)) - ) - ;; the permanent entity for this task has stored that we have progresssed past - ;; our status. Remember that we are closed, and return #f. - (set! (-> obj flags) (logior (-> obj flags) (task-flags closed))) - #f - ) - ((task-complete? *game-info* (-> obj game-task)) - ;; the game-info thinks that we have completed this task already. - ;; remember we are closed and return #f - (set! (-> obj flags) (logior (-> obj flags) (task-flags closed))) - #f - ) - (else - ;; we aren't closed. Check the condition. - ((-> obj condition) arg0) - ) - ) + (cond + ((closed? obj) + ;; we're already closed. + #f + ) + ((>= (the-as int (-> (get-entity-task-perm *game-info* (-> obj game-task)) user-uint8 0)) + (the-as int (-> obj status)) + ) + ;; the permanent entity for this task has stored that we have progresssed past + ;; our status. Remember that we are closed, and return #f. + (logior! (-> obj flags) (task-flags closed)) + #f + ) + ((task-complete? *game-info* (-> obj game-task)) + ;; the game-info thinks that we have completed this task already. + ;; remember we are closed and return #f + (logior! (-> obj flags) (task-flags closed)) + #f + ) + (else + ;; we aren't closed. Check the condition. + ((-> obj condition) arg0) + ) ) ) @@ -94,16 +79,14 @@ ) ;; flag as closed - (set! (-> obj flags) (logior (-> obj flags) (task-flags closed))) + (logior! (-> obj flags) (task-flags closed)) ;; do we have an entity to update? - (when (nonzero? (logand (-> obj flags) (task-flags has-entity))) + (when (logtest? (-> obj flags) (task-flags has-entity)) ;; look up the permanent storage for the entity associated with our task (let ((v1-9 (get-entity-task-perm *game-info* (-> obj game-task)))) ;; we set a bit to indicate that we are storing a non-default status - (set! (-> v1-9 status) - (logior (-> v1-9 status) (entity-perm-status user-set-from-cstage)) - ) + (logior! (-> v1-9 status) (entity-perm-status user-set-from-cstage)) ;; and store the actual status (only increment) (if (< (-> v1-9 user-uint8 0) (the-as uint (-> obj status))) (set! (-> v1-9 user-int8 0) (the-as int (-> obj status))) @@ -115,7 +98,7 @@ (defmethod open-task! task-cstage ((obj task-cstage)) "Clear the closed flag." - (set! (-> obj flags) (logand (lognot (task-flags closed)) (-> obj flags))) + (logclear! (-> obj flags) (task-flags closed)) 0 ) @@ -143,7 +126,6 @@ ;; look up the current cstage's task (the-as int (-> obj stage (-> obj current-stage) game-task)) ) - ) ) @@ -183,7 +165,6 @@ (none) ) -;; definition for method 12 of type task-control (defmethod close-status! task-control ((obj task-control) (arg0 task-status)) "Close the cstage that: - is associated with the task for the current cstage @@ -234,8 +215,9 @@ 0 ) -(defmethod reset! task-control ((obj task-control) (arg0 symbol) (arg1 symbol)) - "Reset a task control. arg1 to warn on null, arg1 'game for a game reset" +(defmethod reset! task-control ((obj task-control) (reset-mode symbol) (arg1 symbol)) + "Reset a task control. arg1 to warn on null, reset-mode 'game for a game reset" + (when (= obj *null-task-control*) (if arg1 (format 0 "ERROR: reset! received self of *null-task-control*~%~%") @@ -244,24 +226,15 @@ ) (dotimes (s4-0 (-> obj stage length)) ;; do we open the task? - (if (or (= arg0 'game) ;; if we're resetting the whole game, yes - (let ((a0-4 (-> obj stage s4-0))) - (not (nonzero? (logand - (-> a0-4 flags) - (task-flags closed-by-default) ;; todo this flag? - ) - ) - ) - ) + (if (or (= reset-mode 'game) ;; open every task on game reset + (not (closed-by-default? (-> obj stage s4-0))) ;; todo this flag? ) (open-task! (-> obj stage s4-0)) ) ;; call close-task! to send closed stuff to entities - (let ((a0-10 (-> obj stage s4-0))) - (if (nonzero? (logand (-> a0-10 flags) (task-flags closed))) - (close-task! (-> obj stage s4-0)) - ) + (if (closed? (-> obj stage s4-0)) + (close-task! (-> obj stage s4-0)) ) ) (the-as int #f) @@ -270,6 +243,7 @@ (defmethod closed? task-control ((obj task-control) (arg0 game-task) (arg1 task-status)) "Is the given task/status cstage closed?" + (when (= obj *null-task-control*) (format 0 "ERROR: closed? received self of *null-task-control*~%~%") (return #f) @@ -279,10 +253,7 @@ (when (and (= arg0 (-> obj stage v1-3 game-task)) (= arg1 (-> obj stage v1-3 status)) ) - (let ((a0-3 (-> obj stage v1-3))) - ;; is the closed set? - (return (nonzero? (logand (-> a0-3 flags) (task-flags closed)))) - ) + (return (closed? (-> obj stage v1-3))) ) ) (format 0 "ERROR: closed? received non-existent task-cstage(~S ~S)--returning #t.~%" @@ -325,9 +296,7 @@ ) (let ((v1-4 (get-entity-task-perm *game-info* (-> obj stage 0 game-task)))) ;; remember that we have a change. - (set! (-> v1-4 status) - (logior (-> v1-4 status) (entity-perm-status user-set-from-cstage)) - ) + (logior! (-> v1-4 status) (entity-perm-status user-set-from-cstage)) (set! (-> v1-4 user-int8 (+ arg1 1)) arg0) ) 0 @@ -338,7 +307,8 @@ ;; Task Control Definitions ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; definition for symbol *assistant-tasks*, type task-control + +;; tasks for assistant (note: keira) (define *assistant-tasks* (new 'static 'task-control :current-stage -1 @@ -348,48 +318,25 @@ (new 'static 'task-cstage :game-task (game-task jungle-eggtop) :status (task-status need-hint) - :flags - (task-flags has-entity closed-by-default) + :flags (task-flags has-entity closed-by-default) :condition (lambda ((arg0 task-control)) #t) ) (new 'static 'task-cstage :game-task (game-task jungle-eggtop) :status (task-status need-introduction) - :flags - (task-flags has-entity closed-by-default) + :flags (task-flags has-entity closed-by-default) :condition (lambda ((arg0 task-control)) #t) ) (new 'static 'task-cstage :game-task (game-task misty-bike) :status (task-status need-hint) - :flags - (task-flags has-entity closed-by-default) + :flags (task-flags has-entity closed-by-default) :condition - (lambda - ((arg0 task-control)) - (with-pp - (or - (closed? arg0 (game-task jungle-eggtop) (task-status need-reminder)) - (and - (closed? - arg0 - (game-task jungle-eggtop) - (task-status need-introduction) - ) - (let ((a1-2 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-2 from) pp) - (set! (-> a1-2 num-params) 2) - (set! (-> a1-2 message) 'query) - (set! (-> a1-2 param 0) (the-as uint 'pickup)) - (set! (-> a1-2 param 1) (the-as uint 6)) - (>= - (the int (send-event-function *target* a1-2)) - (+ (get-reminder arg0 1) 3) - ) - ) - ) - ) - ) + (lambda ((arg0 task-control)) + (or (closed? arg0 (game-task jungle-eggtop) (task-status need-reminder)) + (and (closed? arg0 (game-task jungle-eggtop) (task-status need-introduction)) + (>= (the int (send-event *target* 'query 'pickup 6)) (+ (get-reminder arg0 1) 3))) + ) ) ) (new 'static 'task-cstage @@ -398,31 +345,11 @@ :flags (task-flags has-entity closed-by-default) :condition - (lambda - ((arg0 task-control)) - (with-pp - (or - (closed? arg0 (game-task jungle-eggtop) (task-status need-reminder)) - (and - (closed? - arg0 - (game-task jungle-eggtop) - (task-status need-introduction) - ) - (let ((a1-2 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-2 from) pp) - (set! (-> a1-2 num-params) 2) - (set! (-> a1-2 message) 'query) - (set! (-> a1-2 param 0) (the-as uint 'pickup)) - (set! (-> a1-2 param 1) (the-as uint 6)) - (>= - (the int (send-event-function *target* a1-2)) - (+ (get-reminder arg0 1) 3) - ) - ) - ) - ) - ) + (lambda ((arg0 task-control)) + (or (closed? arg0 (game-task jungle-eggtop) (task-status need-reminder)) + (and (closed? arg0 (game-task jungle-eggtop) (task-status need-introduction)) + (>= (the int (send-event *target* 'query 'pickup 6)) (+ (get-reminder arg0 1) 3))) + ) ) ) (new 'static 'task-cstage @@ -452,12 +379,8 @@ :status (task-status unknown) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control)) - (task-closed? - (game-task village4-button) - (task-status need-reward-speech) - ) + (lambda ((arg0 task-control)) + (task-closed? (game-task village4-button) (task-status need-reward-speech)) ) ) (new 'static 'task-cstage @@ -481,9 +404,8 @@ ) ) -;; definition for symbol *assistant-village2-tasks*, type task-control -(define - *assistant-village2-tasks* +;; tasks for assistant, village2 variant +(define *assistant-village2-tasks* (new 'static 'task-control :current-stage -1 :stage @@ -522,18 +444,7 @@ :status (task-status need-reward-speech) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control)) - (with-pp (let ((a1-0 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-0 from) pp) - (set! (-> a1-0 num-params) 2) - (set! (-> a1-0 message) 'query) - (set! (-> a1-0 param 0) (the-as uint 'pickup)) - (set! (-> a1-0 param 1) (the-as uint 6)) - (>= (the int (send-event-function *target* a1-0)) 45) - ) - ) - ) + (lambda ((arg0 task-control)) (>= (the int (send-event *target* 'query 'pickup 2)) 45)) ) (new 'static 'task-cstage :game-task (game-task sunken-room) @@ -3392,39 +3303,23 @@ (new 'static 'task-cstage :game-task (game-task village2-warrior-money) :status (task-status need-hint) - :flags - (task-flags has-entity closed-by-default) + :flags (task-flags has-entity closed-by-default) :condition - (lambda - ((arg0 task-control)) - (and - (not (task-closed? (game-task ogre-boss) (task-status need-reminder))) - (not - (task-closed? - (game-task village2-levitator) - (task-status need-reward-speech) - ) - ) - ) + (lambda ((arg0 task-control)) + (and (not (task-closed? (game-task ogre-boss) (task-status need-reminder))) + (not (task-closed? (game-task village2-levitator) (task-status need-reward-speech))) + ) ) ) (new 'static 'task-cstage :game-task (game-task village2-warrior-money) :status (task-status need-introduction) - :flags - (task-flags has-entity closed-by-default) + :flags (task-flags has-entity closed-by-default) :condition - (lambda - ((arg0 task-control)) - (and - (not (task-closed? (game-task ogre-boss) (task-status need-reminder))) - (not - (task-closed? - (game-task village2-levitator) - (task-status need-reward-speech) - ) - ) - ) + (lambda ((arg0 task-control)) + (and (not (task-closed? (game-task ogre-boss) (task-status need-reminder))) + (not (task-closed? (game-task village2-levitator) (task-status need-reward-speech))) + ) ) ) (new 'static 'task-cstage @@ -3432,31 +3327,8 @@ :status (task-status need-reward-speech) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control)) - (with-pp - (the-as - symbol - (and *target* (let ((a1-0 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-0 from) pp) - (set! (-> a1-0 num-params) 2) - (set! (-> a1-0 message) 'query) - (set! (-> a1-0 param 0) (the-as uint 'pickup)) - (set! (-> a1-0 param 1) (the-as uint 5)) - (>= - ((the-as - (function process event-message-block float) - send-event-function - ) - *target* - a1-0 - ) - (-> *GAME-bank* money-task-inc) - ) - ) - ) - ) - ) + (lambda ((arg0 task-control)) + (>= (the-as float (send-event *target* 'query 'pickup 5)) (-> *GAME-bank* money-task-inc)) ) ) (new 'static 'task-cstage @@ -5234,17 +5106,8 @@ :status (task-status need-reward-speech) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control)) - (with-pp (let ((a1-0 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-0 from) pp) - (set! (-> a1-0 num-params) 2) - (set! (-> a1-0 message) 'query) - (set! (-> a1-0 param 0) (the-as uint 'pickup)) - (set! (-> a1-0 param 1) (the-as uint 6)) - (>= (the int (send-event-function *target* a1-0)) 72) - ) - ) + (lambda ((arg0 task-control)) + (>= (the int (send-event *target* 'query 'pickup 6)) 72) ) ) (new 'static 'task-cstage @@ -5413,12 +5276,8 @@ :status (task-status unknown) :flags (task-flags has-entity) :condition - (lambda - ((arg0 task-control)) - (task-closed? - (game-task village4-button) - (task-status need-reward-speech) - ) + (lambda ((arg0 task-control)) + (task-closed? (game-task village4-button) (task-status need-reward-speech)) ) ) (new 'static 'task-cstage @@ -5533,17 +5392,14 @@ 0 ) -;; definition for function task-closed? (defun task-closed? ((arg0 game-task) (arg1 task-status)) (closed? (get-task-control arg0) arg0 arg1) ) -;; definition for function task-exists? (defun task-exists? ((arg0 game-task) (arg1 task-status)) (exists? (get-task-control arg0) arg0 arg1) ) -;; definition for function task-known? (defun task-known? ((arg0 game-task)) "Is there a cstage with a non-unknown status?" (let ((v1-0 (get-task-status arg0))) @@ -5562,7 +5418,6 @@ ) ) -;; definition for function sages-kidnapped? (defun sages-kidnapped? () (task-closed? (game-task village4-button) (task-status need-reward-speech)) ) @@ -5593,7 +5448,6 @@ ) ) -;; failed to figure out what this is: (task-control-reset 'game) diff --git a/goal_src/engine/gfx/depth-cue-h.gc b/goal_src/engine/gfx/depth-cue-h.gc index 36c64fb063..925c8e5c89 100644 --- a/goal_src/engine/gfx/depth-cue-h.gc +++ b/goal_src/engine/gfx/depth-cue-h.gc @@ -5,7 +5,7 @@ ;; name in dgo: depth-cue-h ;; dgos: GAME, ENGINE -;; depth-cue-h + (deftype depth-cue-data (structure) ((data vector :inline :offset-assert 0) (sharpness float :offset 0) @@ -18,7 +18,6 @@ :flag-assert #x900000010 ) -;; depth-cue-h (deftype depth-cue-work (structure) ((texture-strip-tmpl dma-gif-packet :inline :offset-assert 0) (temp-strip-tmpl dma-gif-packet :inline :offset-assert 32) diff --git a/goal_src/engine/gfx/sky/sky-h.gc b/goal_src/engine/gfx/sky/sky-h.gc index 9c79180203..1d47b8503a 100644 --- a/goal_src/engine/gfx/sky/sky-h.gc +++ b/goal_src/engine/gfx/sky/sky-h.gc @@ -39,12 +39,12 @@ (r-sun float :offset 16) (r-halo float :offset 20) (r-aurora float :offset 24) - (c-sun-start uint32 :offset 32) - (c-sun-end uint32 :offset 48) - (c-halo-start uint32 :offset 36) - (c-halo-end uint32 :offset 52) - (c-aurora-start uint32 :offset 40) - (c-aurora-end uint32 :offset 56) + (c-sun-start rgba :offset 32) + (c-sun-end rgba :offset 48) + (c-halo-start rgba :offset 36) + (c-halo-end rgba :offset 52) + (c-aurora-start rgba :offset 40) + (c-aurora-end rgba :offset 56) ) :method-count-assert 9 :size-assert #x40 @@ -76,9 +76,7 @@ ) (deftype sky-upload-data (basic) - ( - ;;(data UNKNOWN 27 :offset-assert 16) - (circle sky-circle-data :inline :offset-assert 16) + ((circle sky-circle-data :inline :offset-assert 16) (sun sky-sun-data 2 :inline :offset-assert 288) (moon sky-moon-data :inline :offset-assert 416) (data uint128 27 :offset 16) @@ -106,12 +104,12 @@ ) (defmethod new sky-parms ((allocation symbol) (type-to-make type)) - (local-vars (v0-0 sky-parms)) - (set! v0-0 - (object-new allocation type-to-make (the-as int (-> type-to-make size))) - ) - (set! (-> v0-0 upload-data type) sky-upload-data) - v0-0 + "allocate a new sky-parms" + + (let ((v0-0 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) + (set! (-> v0-0 upload-data type) sky-upload-data) + v0-0 + ) ) (define *sky-parms* (new 'global 'sky-parms)) diff --git a/goal_src/engine/gfx/sky/sky-utils.gc b/goal_src/engine/gfx/sky/sky-utils.gc index f00774db7f..cb4bc9c6ea 100644 --- a/goal_src/engine/gfx/sky/sky-utils.gc +++ b/goal_src/engine/gfx/sky/sky-utils.gc @@ -5,10 +5,7 @@ ;; name in dgo: sky-utils ;; dgos: GAME, ENGINE -;; definition for function sky-set-sun-radii -(defun - sky-set-sun-radii - ((arg0 sky-parms) (arg1 int) (arg2 float) (arg3 float) (arg4 float)) +(defun sky-set-sun-radii ((arg0 sky-parms) (arg1 int) (arg2 float) (arg3 float) (arg4 float)) (let ((v1-0 (logand arg1 1))) (set! (-> arg0 upload-data sun v1-0 r-sun) arg2) (set! (-> arg0 upload-data sun v1-0 r-halo) arg3) @@ -17,10 +14,7 @@ #f ) -;; definition for function sky-set-sun-colors -(defun - sky-set-sun-colors - ((arg0 sky-parms) (arg1 int) (arg2 uint) (arg3 uint) (arg4 uint) (arg5 uint)) +(defun sky-set-sun-colors ((arg0 sky-parms) (arg1 int) (arg2 rgba) (arg3 rgba) (arg4 rgba) (arg5 rgba)) (let ((v1-0 (logand arg1 1))) (set! (-> arg0 upload-data sun v1-0 c-sun-start) arg2) (set! (-> arg0 upload-data sun v1-0 c-sun-end) arg3) @@ -32,10 +26,7 @@ #f ) -;; definition for function sky-set-sun-colors-sun -(defun - sky-set-sun-colors-sun - ((arg0 sky-parms) (arg1 int) (arg2 uint) (arg3 uint)) +(defun sky-set-sun-colors-sun ((arg0 sky-parms) (arg1 int) (arg2 rgba) (arg3 rgba)) (let ((v1-0 (logand arg1 1))) (set! (-> arg0 upload-data sun v1-0 c-sun-start) arg2) (set! (-> arg0 upload-data sun v1-0 c-sun-end) arg3) @@ -43,10 +34,7 @@ #f ) -;; definition for function sky-set-sun-colors-halo -(defun - sky-set-sun-colors-halo - ((arg0 sky-parms) (arg1 int) (arg2 uint) (arg3 uint)) +(defun sky-set-sun-colors-halo ((arg0 sky-parms) (arg1 int) (arg2 rgba) (arg3 rgba)) (let ((v1-0 (logand arg1 1))) (set! (-> arg0 upload-data sun v1-0 c-halo-start) arg2) (set! (-> arg0 upload-data sun v1-0 c-halo-end) arg3) @@ -54,10 +42,7 @@ #f ) -;; definition for function sky-set-sun-colors-aurora -(defun - sky-set-sun-colors-aurora - ((arg0 sky-parms) (arg1 int) (arg2 uint) (arg3 uint)) +(defun sky-set-sun-colors-aurora ((arg0 sky-parms) (arg1 int) (arg2 rgba) (arg3 rgba)) (let ((v1-0 (logand arg1 1))) (set! (-> arg0 upload-data sun v1-0 c-aurora-start) arg2) (set! (-> arg0 upload-data sun v1-0 c-aurora-end) arg3) @@ -65,18 +50,7 @@ #f ) -;; definition for function sky-set-orbit -(defun - sky-set-orbit - ((arg0 sky-parms) - (arg1 int) - (arg2 float) - (arg3 float) - (arg4 float) - (arg5 float) - (arg6 float) - (arg7 float) - ) +(defun sky-set-orbit ((arg0 sky-parms) (arg1 int) (arg2 float) (arg3 float) (arg4 float) (arg5 float) (arg6 float) (arg7 float)) (set! (-> arg0 orbit arg1 high-noon) arg2) (set! (-> arg0 orbit arg1 tilt) (* 0.017453292 arg3)) (set! (-> arg0 orbit arg1 rise) (* 0.017453292 arg4)) diff --git a/goal_src/engine/level/level.gc b/goal_src/engine/level/level.gc index 4868cd9e7d..f40e870633 100644 --- a/goal_src/engine/level/level.gc +++ b/goal_src/engine/level/level.gc @@ -382,7 +382,7 @@ ) ) (('loading-bt) - ;; finished loading the background! + ;; finished loading the last object! (level-status-set! obj 'loading-done) (level-status-set! obj 'loaded) ) @@ -406,7 +406,7 @@ ;; something has finished loading! (cond ((not last-obj) - ;; not the last object, so it's some non-background file. start linking + ;; not the last object. start linking (cond ((dgo-load-link (the-as dgo-header a0-15) (-> obj heap) *print-login* #f) ;; linking finished (that was fast) @@ -421,7 +421,7 @@ ) ) (else - ;; the background is always the last object, so we're loading the background now + ;; we're loading the last object now, which has different rules (set! (-> obj heap top) (-> obj heap top-base)) (level-status-set! obj 'loading-bt) ) @@ -434,7 +434,7 @@ (level-update-after-load obj *login-state*) ) (('loading-bt) - ;; link the bt object + ;; link the last object (let ((a0-26 (align64 (-> obj heap current)))) (cond ((dgo-load-link (the-as dgo-header a0-26) (-> obj heap) *print-login* #t) @@ -452,7 +452,7 @@ ) (defmethod load-begin level ((obj level)) - "Start loading the level. Uses 2 megabyte heaps for loading each non-bt object." + "Start loading the level. Uses 2 megabyte heaps for loading each object." (set! loading-level (-> obj heap)) (set! (-> *level* loading-level) obj) @@ -575,7 +575,7 @@ (let ((s2-2 (-> loaded-level art-group art-group-array v1-39))) (dummy-9 s2-2) (if (dummy-12 s2-2) - (dummy-13 s2-2) + (link-art! s2-2) ) ) (1+! (-> level-login-state elts)) @@ -788,7 +788,7 @@ (dotimes (s5-0 (-> obj art-group art-group-array length)) (let ((s4-0 (-> obj art-group art-group-array s5-0))) (if (dummy-12 s4-0) - (dummy-14 s4-0) + (unlink-art! s4-0) ) ) ) @@ -1200,12 +1200,12 @@ 0 ) -(defun play ((use-vis symbol) (arg1 symbol)) +(defun play ((use-vis symbol) (init-game symbol)) "The entry point to the actual game! This allocates the level heaps, loads some data, sets some default parameters and sets the startup level." ;; temp - (format #t "(play ~A ~A) has been called!~%" use-vis arg1) - (format 0 "(play ~A ~A) has been called!~%" use-vis arg1) + (format #t "(play :use-vis ~A :init-game ~A) has been called!~%" use-vis init-game) + (format 0 "(play :use-vis ~A :init-game ~A) has been called!~%" use-vis init-game) ;;(kernel-shutdown) (let ((startup-level (case *kernel-boot-message* @@ -1260,8 +1260,8 @@ (load-dbg "Load complete. Level: ~A. Now starting display!~%" (-> *level* level0)) (on #t) (load-dbg "Display started: ~A~%" *dproc*) - (when arg1 - ;; (dummy-9 *game-info* 'game #f (the-as string #f)) TODO + (when init-game + (initialize! *game-info* 'game (the-as game-save #f) (the-as string #f)) ) 0 ) @@ -1307,87 +1307,55 @@ ) ) (when (and gp-0 (!= gp-0 *sound-bank-1*) (!= gp-0 *sound-bank-2*)) - (if (not *sound-bank-1*) - (return (begin - (format 0 "Load soundbank ~A~%" gp-0) - (sound-bank-load (string->sound-name (symbol->string gp-0))) - (set! *sound-bank-1* gp-0) - 0 - ) - ) + (when (not *sound-bank-1*) + (format 0 "Load soundbank ~A~%" gp-0) + (sound-bank-load (string->sound-name (symbol->string gp-0))) + (set! *sound-bank-1* gp-0) + (return 0) ) - (if (not *sound-bank-2*) - (return (begin - (format 0 "Load soundbank ~A~%" gp-0) - (sound-bank-load (string->sound-name (symbol->string gp-0))) - (set! *sound-bank-2* gp-0) - 0 - ) - ) + (when (not *sound-bank-2*) + (format 0 "Load soundbank ~A~%" gp-0) + (sound-bank-load (string->sound-name (symbol->string gp-0))) + (set! *sound-bank-2* gp-0) + (return 0) ) - (if (!= *sound-bank-1* s5-0) - (return (begin - (format 0 "Unload soundbank ~A~%" *sound-bank-1*) - (sound-bank-unload - (string->sound-name (symbol->string *sound-bank-1*)) - ) - (set! *sound-bank-1* #f) - 0 - ) - ) + (when (!= *sound-bank-1* s5-0) + (format 0 "Unload soundbank ~A~%" *sound-bank-1*) + (sound-bank-unload (string->sound-name (symbol->string *sound-bank-1*))) + (set! *sound-bank-1* #f) + (return 0) ) - (if (!= *sound-bank-2* s5-0) - (return (begin - (format 0 "Unload soundbank ~A~%" *sound-bank-2*) - (sound-bank-unload - (string->sound-name (symbol->string *sound-bank-2*)) - ) - (set! *sound-bank-2* #f) - 0 - ) - ) + (when (!= *sound-bank-2* s5-0) + (format 0 "Unload soundbank ~A~%" *sound-bank-2*) + (sound-bank-unload (string->sound-name (symbol->string *sound-bank-2*))) + (set! *sound-bank-2* #f) + (return 0) ) ) (when (and s5-0 (!= s5-0 *sound-bank-1*) (!= s5-0 *sound-bank-2*)) - (if (not *sound-bank-1*) - (return (begin - (format 0 "Load soundbank ~A~%" s5-0) - (sound-bank-load (string->sound-name (symbol->string s5-0))) - (set! *sound-bank-1* s5-0) - 0 - ) - ) + (when (not *sound-bank-1*) + (format 0 "Load soundbank ~A~%" s5-0) + (sound-bank-load (string->sound-name (symbol->string s5-0))) + (set! *sound-bank-1* s5-0) + (return 0) ) - (if (not *sound-bank-2*) - (return (begin - (format 0 "Load soundbank ~A~%" s5-0) - (sound-bank-load (string->sound-name (symbol->string s5-0))) - (set! *sound-bank-2* s5-0) - 0 - ) - ) + (when (not *sound-bank-2*) + (format 0 "Load soundbank ~A~%" s5-0) + (sound-bank-load (string->sound-name (symbol->string s5-0))) + (set! *sound-bank-2* s5-0) + (return 0) ) - (if (!= *sound-bank-1* gp-0) - (return (begin - (format 0 "Unload soundbank ~A~%" *sound-bank-1*) - (sound-bank-unload - (string->sound-name (symbol->string *sound-bank-1*)) - ) - (set! *sound-bank-1* #f) - 0 - ) - ) + (when (!= *sound-bank-1* gp-0) + (format 0 "Unload soundbank ~A~%" *sound-bank-1*) + (sound-bank-unload (string->sound-name (symbol->string *sound-bank-1*))) + (set! *sound-bank-1* #f) + (return 0) ) - (if (!= *sound-bank-2* gp-0) - (return (begin - (format 0 "Unload soundbank ~A~%" *sound-bank-2*) - (sound-bank-unload - (string->sound-name (symbol->string *sound-bank-2*)) - ) - (set! *sound-bank-2* #f) - 0 - ) - ) + (when (!= *sound-bank-2* gp-0) + (format 0 "Unload soundbank ~A~%" *sound-bank-2*) + (sound-bank-unload (string->sound-name (symbol->string *sound-bank-2*))) + (set! *sound-bank-2* #f) + (return 0) ) ) ) diff --git a/goal_src/engine/load/load-dgo.gc b/goal_src/engine/load/load-dgo.gc index 359218f635..5f6e73e1fd 100644 --- a/goal_src/engine/load/load-dgo.gc +++ b/goal_src/engine/load/load-dgo.gc @@ -183,16 +183,15 @@ struct DgoHeader { ;; STR PLAY ;;;;;;;;;;;;;;;;;;;;;;;;; -;; unknown. I think related to playing cutscene stuff? +;; play streamed audio for a STR -(defun str-play-async ((name string) (addr pointer)) +(defun str-play-async ((name string) (id sound-id)) "Queue a play cmd to do... something? Locks the queue, doesn't check other locks" (set! *que-str-lock* #t) (let ((cmd (the-as load-chunk-msg (add-element *play-str-rpc*)))) (charp<-string (-> cmd basename) name) - ;; might be an id? - (set! (-> cmd address) addr) + (set! (-> cmd address) (the-as pointer id)) ;; probably using a different enum here (set! (-> cmd result) (load-msg-result done)) ) diff --git a/goal_src/engine/load/loader-h.gc b/goal_src/engine/load/loader-h.gc index 9e68d1a849..7029ac3be0 100644 --- a/goal_src/engine/load/loader-h.gc +++ b/goal_src/engine/load/loader-h.gc @@ -8,6 +8,13 @@ ;; This is not well-understood yet, but it is definitely related to streaming animation loading, ;; and possibly art-group stuff. + +(defconstant SPOOL_PRIORITY_LOWEST 100000000.0) +(defconstant SPOOL_PRIORITY_RECALC -99.0) +(defconstant SPOOL_PRIORITY_HIGHEST -20.0) +(defconstant SPOOL_PRIORITY_HIGH -10.0) + + ;; This type didn't have an inspect method, so these field names are made up. (declare-type art-group basic) (deftype load-dir (basic) @@ -18,19 +25,20 @@ :flag-assert #xb00000010 (:methods (new (symbol type int basic) _type_ 0) - (dummy-9 () none 9) - (dummy-10 () none 10) + (dummy-9 (_type_ string symbol kheap int) art-group 9) + (dummy-10 (_type_ art-group) art-group 10) ) ) ;; specialization of load-dir where the data-array holds art-groups. -(declare-type art-group basic) (deftype load-dir-art-group (load-dir) ((art-group-array (array art-group) :offset 12) ) :flag-assert #xb00000010 (:methods (new (symbol type int basic) _type_ 0) + (dummy-9 (_type_ string symbol kheap int) art-group 9) + (dummy-10 (_type_ art-group) art-group 10) ) ) @@ -76,13 +84,13 @@ (heap kheap :inline :offset-assert 32) (pending-load-file string :offset-assert 48) (pending-load-file-part int32 :offset-assert 52) - (pending-load-file-owner uint64 :offset-assert 56) + (pending-load-file-owner handle :offset-assert 56) (pending-load-file-priority float :offset-assert 64) (load-file string :offset-assert 68) (load-file-part int32 :offset-assert 72) - (load-file-owner uint64 :offset-assert 80) + (load-file-owner handle :offset-assert 80) (load-file-priority float :offset-assert 88) - (buf uint32 :offset-assert 92) + (buf pointer :offset-assert 92) (len int32 :offset-assert 96) (art-group art-group :offset-assert 100) ) @@ -91,13 +99,13 @@ :flag-assert #x1000000068 (:methods (new (symbol type int) _type_ 0) - (dummy-9 (_type_ symbol int symbol float) none 9) - (dummy-10 () none 10) - (dummy-11 () none 11) - (dummy-12 () none 12) - (dummy-13 () none 13) - (dummy-14 () none 14) - (dummy-15 () none 15) + (want-file (_type_ string int handle float) int 9) + (update (_type_) int 10) + (inactive? (_type_) symbol 11) + (file-status (_type_ string int) symbol 12) + (link-file (_type_ art-group) art-group 13) + (unlink-file (_type_ art-group) int 14) + (unlock! (_type_) symbol 15) ) ) @@ -107,12 +115,12 @@ (set! (-> obj index) idx) (set! (-> obj load-file) #f) (set! (-> obj load-file-part) -1) - (set! (-> obj load-file-owner) (the-as uint #f)) - (set! (-> obj load-file-priority) 100000000.0) + (set! (-> obj load-file-owner) (the-as handle #f)) + (set! (-> obj load-file-priority) SPOOL_PRIORITY_LOWEST) (set! (-> obj pending-load-file) #f) (set! (-> obj pending-load-file-part) -1) - (set! (-> obj pending-load-file-owner) (the-as uint #f)) - (set! (-> obj pending-load-file-priority) 100000000.0) + (set! (-> obj pending-load-file-owner) (the-as handle #f)) + (set! (-> obj pending-load-file-priority) SPOOL_PRIORITY_LOWEST) (set! (-> obj art-group) #f) (set! (-> obj status) 'initialize) (set! (-> obj locked?) #f) @@ -123,11 +131,13 @@ (deftype spool-anim (basic) ((name string :offset 16) ;; why? - (index int32 :offset-assert 20) + (buf1 external-art-buffer :offset 16) ;; custom + (buf2 external-art-buffer :offset-assert 20) ;; custom (also what?) + (index int32 :offset 20) (parts int32 :offset-assert 24) (priority float :offset-assert 28) - (owner uint64 :offset-assert 32) - (command-list basic :offset-assert 40) + (owner handle :offset-assert 32) + (command-list pair :offset-assert 40) ) :pack-me :method-count-assert 9 @@ -137,11 +147,11 @@ (deftype external-art-control (basic) ((buffer external-art-buffer 2 :offset-assert 4) - (rec spool-anim 3 :inline) - (spool-lock uint64 :offset-assert 160) - (reserve-buffer basic :offset-assert 168) + (rec spool-anim 3 :inline :offset-assert 16) + (spool-lock handle :offset-assert 160) + (reserve-buffer external-art-buffer :offset-assert 168) (reserve-buffer-count int32 :offset-assert 172) - (active-stream basic :offset-assert 176) + (active-stream string :offset-assert 176) (preload-stream spool-anim :inline :offset-assert 184) (last-preload-stream spool-anim :inline :offset-assert 232) (end-pad uint32) @@ -151,17 +161,18 @@ :flag-assert #x1100000118 (:methods (new (symbol type) _type_ 0) - (dummy-9 (_type_ symbol) none 9) - (dummy-10 (_type_) none 10) - (dummy-11 () none 11) - (dummy-12 () none 12) - (dummy-13 () none 13) - (dummy-14 () none 14) - (dummy-15 () none 15) - (dummy-16 () none 16) + (update (_type_ symbol) int 9) + (clear-rec (_type_) int 10) + (spool-push (_type_ string int process float) int 11) + (file-status (_type_ string int) symbol 12) + (reserve-alloc (_type_) kheap 13) + (reserve-free (_type_ kheap) int 14) + (none-reserved? (_type_) symbol 15) + (try-preload-stream (_type_ string int process float) int 16) ) ) + (defmethod new external-art-control ((allocation symbol) (type-to-make type)) (let ((obj (object-new allocation type-to-make (the-as int (-> type-to-make size))))) ;; allocate buffers. @@ -176,19 +187,25 @@ ;; set up recs (dotimes (rec-idx 3) (set! (-> obj rec rec-idx name) #f) - (set! (-> obj rec rec-idx priority) 100000000.0) - (set! (-> obj rec rec-idx owner) (the-as uint #f)) + (set! (-> obj rec rec-idx priority) SPOOL_PRIORITY_LOWEST) + (set! (-> obj rec rec-idx owner) (the-as handle #f)) ) ;; set up defaults. - (set! (-> obj spool-lock) (the-as uint #f)) + (set! (-> obj spool-lock) (the-as handle #f)) (set! (-> obj reserve-buffer) #f) (set! (-> obj active-stream) #f) (set! (-> obj preload-stream name) #f) - (set! (-> obj preload-stream priority) 100000000.0) - (set! (-> obj preload-stream owner) (the-as uint #f)) + (set! (-> obj preload-stream priority) SPOOL_PRIORITY_LOWEST) + (set! (-> obj preload-stream owner) (the-as handle #f)) (set! (-> obj last-preload-stream name) #f) - (set! (-> obj last-preload-stream priority) 100000000.0) - (set! (-> obj last-preload-stream owner) (the-as uint #f)) + (set! (-> obj last-preload-stream priority) SPOOL_PRIORITY_LOWEST) + (set! (-> obj last-preload-stream owner) (the-as handle #f)) obj ) ) + + +(define-extern *art-control* external-art-control) +(defun-extern art-group-load-check string kheap int art-group) + + diff --git a/goal_src/engine/load/loader.gc b/goal_src/engine/load/loader.gc index e142a6f024..7c5f223ebf 100644 --- a/goal_src/engine/load/loader.gc +++ b/goal_src/engine/load/loader.gc @@ -5,3 +5,1055 @@ ;; name in dgo: loader ;; dgos: GAME, ENGINE + +(defmethod inspect load-dir ((obj load-dir)) + (format #t "[~8x] ~A~%" obj (-> obj type)) + (format #t "~Tlevel: ~A~%" (-> obj unknown)) + (format #t "~Tallocated-length: ~D~%" (-> obj string-array allocated-length)) + (format #t "~Tlength: ~D~%" (-> obj string-array length)) + (dotimes (i (-> obj string-array length)) + (format #t "~T [~D] ~S ~A (~D bytes)~%" + i (-> obj string-array i) (-> obj data-array i) (mem-size (-> obj data-array i) #f 0)) + ) + obj + ) + +(defmethod mem-usage load-dir ((obj load-dir) (arg0 memory-usage-block) (arg1 int)) + "Get the memory usage data of a load-dir" + + (set! (-> arg0 length) (max 82 (-> arg0 length))) + (set! (-> arg0 data 81 name) "array") + (set! (-> arg0 data 81 count) (+ (-> arg0 data 81 count) 1)) + (let ((v1-6 (asize-of obj))) + (set! (-> arg0 data 81 used) (+ (-> arg0 data 81 used) v1-6)) + (set! + (-> arg0 data 81 total) + (+ (-> arg0 data 81 total) (logand -16 (+ v1-6 15))) + ) + ) + (set! (-> arg0 length) (max 82 (-> arg0 length))) + (set! (-> arg0 data 81 name) "array") + (set! (-> arg0 data 81 count) (-> arg0 data 81 count)) + (let ((v1-15 (asize-of (-> obj string-array)))) + (set! (-> arg0 data 81 used) (+ (-> arg0 data 81 used) v1-15)) + (set! + (-> arg0 data 81 total) + (+ (-> arg0 data 81 total) (logand -16 (+ v1-15 15))) + ) + ) + (set! (-> arg0 length) (max 82 (-> arg0 length))) + (set! (-> arg0 data 81 name) "array") + (set! (-> arg0 data 81 count) (-> arg0 data 81 count)) + (let ((v1-24 (asize-of (-> obj data-array)))) + (set! (-> arg0 data 81 used) (+ (-> arg0 data 81 used) v1-24)) + (set! + (-> arg0 data 81 total) + (+ (-> arg0 data 81 total) (logand -16 (+ v1-24 15))) + ) + ) + (dotimes (s3-0 (-> obj data-array length)) + (mem-usage (-> obj data-array s3-0) arg0 arg1) + ) + (the-as load-dir #f) + ) + +(defmethod dummy-9 load-dir-art-group ((obj load-dir-art-group) (arg0 string) (arg1 symbol) (arg2 kheap) (arg3 int)) + "This is not understood." + + (let ((s5-0 (-> obj string-array))) + (dotimes (s3-0 (-> s5-0 length)) + (when (string= arg0 (-> s5-0 s3-0)) + (when arg1 + (let ((v1-4 (art-group-load-check arg0 arg2 arg3))) + (if v1-4 + (set! (-> obj art-group-array s3-0) v1-4) + ) + ) + ) + (return (-> obj art-group-array s3-0)) + ) + ) + (let ((v0-2 (art-group-load-check arg0 arg2 arg3))) + (when v0-2 + (set! (-> s5-0 (-> s5-0 length)) arg0) + (set! (-> obj art-group-array (-> s5-0 length)) v0-2) + (1+! (-> s5-0 length)) + (1+! (-> obj art-group-array length)) + ) + v0-2 + ) + ) + ) + +(defmethod dummy-10 load-dir-art-group ((obj load-dir-art-group) (arg0 art-group)) + "This is not understood." + + (let ((s4-0 (-> obj string-array))) + (dotimes (s3-0 (-> s4-0 length)) + (when (string= (-> arg0 name) (-> s4-0 s3-0)) + (set! (-> obj art-group-array s3-0) arg0) + (return (-> obj art-group-array s3-0)) + ) + ) + (set! (-> s4-0 (-> s4-0 length)) (-> arg0 name)) + (set! (-> obj art-group-array (-> s4-0 length)) arg0) + (set! (-> s4-0 length) (+ (-> s4-0 length) 1)) + ) + (set! (-> obj art-group-array length) (+ (-> obj art-group-array length) 1)) + arg0 + ) + +(defun drawable-load ((arg0 drawable) (arg1 kheap)) + "Load a drawable file. Unused." + + (cond + ((type-type? (-> arg0 type) string) + #|(with-sp (protect sp + (if (< sp *stack-top*) + (set! sp (&+ *kernel-sp* -1024)) + )|# + (let ((s5-1 (the-as drawable (loado (the-as string arg0) arg1)))) + (if (and s5-1 (type-type? (-> s5-1 type) drawable)) + (login s5-1) + ) + ) + ;;)) + ) + ((type-type? (-> arg0 type) drawable) + (login arg0) + ) + ) + ) + +(defun art-load ((arg0 string) (arg1 kheap)) + "Load an art file. Unused." + + #|(with-sp (protect sp + (if (< sp *stack-top*) + (set! sp (&+ *kernel-sp* -1024)) + )|# + (let ((s5-0 (the-as art (loado arg0 arg1)))) + (if (type-type? (-> s5-0 type) art) + (dummy-9 s5-0) + (the-as art #f) + ) + ) + ;;)) + ) + +(defun art-group-load-check ((arg0 string) (arg1 kheap) (arg2 int)) + "Load and check an art-group file. this only runs if we're using debug memory." + + (when *debug-segment* + #|(with-sp (protect sp + (if (< sp *stack-top*) + (set! sp (&+ *kernel-sp* -1024)) + )|# + (let ((s3-1 (the-as art-group (loado (make-file-name (file-kind art-group) arg0 arg2 #f) arg1)))) + (cond + ((not s3-1) + (format 0 "ERROR: art-group ~A is not a valid file.~%" arg0) + (the-as art-group #f) + ) + ((not (type-type? (-> s3-1 type) art-group)) + (format 0 "ERROR: art-group ~A is not a art-group.~%" arg0) + (the-as art-group #f) + ) + ((not (file-info-correct-version? (-> s3-1 info) (file-kind art-group) arg2)) + ;;(format 0 "ERROR: art-group ~A is not the correct version.~%" arg0) + (the-as art-group #f) + ) + (else + (dummy-9 s3-1) + ) + ) + ) + ;;)) + ) + ) + +(defmethod want-file external-art-buffer ((obj external-art-buffer) (arg0 string) (arg1 int) (arg2 handle) (arg3 float)) + "Request a new file to be loaded into this buffer." + + (set! (-> obj pending-load-file) arg0) + (set! (-> obj pending-load-file-part) arg1) + (set! (-> obj pending-load-file-owner) arg2) + (set! (-> obj pending-load-file-priority) arg3) + 0 + ) + +(defmethod unlock! external-art-buffer ((obj external-art-buffer)) + "Unlock this buffer." + + (declare (inline)) + (set! (-> obj locked?) #f) + #f + ) + +(defmethod inactive? external-art-buffer ((obj external-art-buffer)) + "Is this buffer inactive?" + + (declare (inline)) + (!= (-> obj status) 'active) + ) + +(defmethod file-status external-art-buffer ((obj external-art-buffer) (name string) (part int)) + "Get the status of a file in the buffer. #f = file is not present." + + (when (and (name= (-> obj pending-load-file) name) + (= (-> obj pending-load-file-part) part) + ) + ;; the file is at least wanting to load + (if (and (name= (-> obj load-file) name) (= (-> obj load-file-part) part)) + (-> obj status) ;; file is loaded + 'pending ;; file is not loaded yet? + ) + ) + ) + +(defmethod link-art! art-group ((obj art-group)) + "Links the elements of this art-group." + + ;; this check seems superfluous + (when obj + (countdown (s5-0 (-> obj length)) + (let* ((art-elt (-> obj data s5-0)) + (janim (if (and (nonzero? art-elt) (type-type? (-> art-elt type) art-joint-anim)) + (the-as art-joint-anim art-elt) + )) + (success #f) + ) + (when janim + ;; a countdown with a label right at the start + (let ((s3-1 3)) + (while (begin + (label cfg-22) + (nonzero? s3-1) + ) + (+! s3-1 -1) + (let ((janim-group (art-group-get-by-name (-> *level* level s3-1) (-> janim master-art-group-name)))) + (when janim-group + (cond + ((and (< (-> janim master-art-group-index) (-> janim-group length)) + (not (-> janim-group data (-> janim master-art-group-index))) + ) + (set! (-> janim-group data (-> janim master-art-group-index)) janim) + (set! success #t) + ) + (else + (countdown (a0-14 (-> janim-group length)) + (when (not (-> janim-group data a0-14)) + (set! (-> janim-group data a0-14) janim) + (set! success #t) + (goto cfg-22) + ) + ) + ) + ) + ) + ) + ) + ) + (if (not success) + (format 0 "ERROR: ~A could not find a master slot to link for ~A.~%" (-> obj name) janim) + ) + ) + ) + ) + ) + obj + ) + +(defmethod unlink-art! art-group ((obj art-group)) + "Unlinks the elements of this art-group." + + (when obj + (countdown (s5-0 (-> obj length)) + (let* ((art-elt (-> obj data s5-0)) + (janim (if (and (nonzero? art-elt) (type-type? (-> art-elt type) art-joint-anim)) + (the-as art-joint-anim art-elt) + )) + (success #f) + ) + (when janim + (let ((s2-0 3)) + (while (begin + (label cfg-16) + (nonzero? s2-0) + ) + (+! s2-0 -1) + (let ((janim-group (art-group-get-by-name (-> *level* level s2-0) (-> janim master-art-group-name)))) + (when janim-group + (countdown (a0-5 (-> janim-group length)) + (when (= janim (-> janim-group data a0-5)) + (set! (-> janim-group data a0-5) #f) + (set! success #t) + (goto cfg-16) + ) + ) + ) + ) + ) + ) + (if (not success) + (format 0 "ERROR: ~A could not find a master slot to unlink for ~A.~%" (-> obj name) janim) + ) + ) + ) + ) + ) + 0 + ) + +(defmethod link-file external-art-buffer ((obj external-art-buffer) (ag art-group)) + "Link the art-group and set it to this buffer's art group." + + (when ag + (link-art! ag) + (set! (-> obj art-group) ag) + ) + ag + ) + +(defmethod unlink-file external-art-buffer ((obj external-art-buffer) (ag art-group)) + "Unlink the art-group and remove this buffer's art group." + + (when ag + (unlink-art! ag) + (set! (-> obj art-group) #f) + ) + 0 + ) + +(defmethod update external-art-buffer ((obj external-art-buffer)) + "Update this buffer." + + (when (or (not (name= (-> obj pending-load-file) (-> obj load-file))) + (!= (-> obj pending-load-file-part) (-> obj load-file-part)) + ) + ;; we're loading a different file, or a different part of a file + (unless (handle->process (-> obj pending-load-file-owner)) + ;; nobody owns the loading file so we can discard it + (set! (-> obj pending-load-file) #f) + (set! (-> obj pending-load-file-part) -1) + (set! (-> obj pending-load-file-owner) (the-as handle #f)) + (set! (-> obj pending-load-file-priority) SPOOL_PRIORITY_LOWEST) + ) + (when (= (-> obj status) 'initialize) + ;; we need to initialize the heap + (let ((v1-11 (-> obj heap))) + (set! (-> v1-11 base) (the-as pointer (+ #x84000 (* #x3dc00 (-> obj index))))) + (set! (-> v1-11 current) (-> v1-11 base)) + (set! (-> v1-11 top-base) (&+ (-> v1-11 base) #x3dc00)) + (set! (-> v1-11 top) (-> v1-11 top-base)) + ) + (set! (-> obj status) 'inactive) + ;; heap is now allocated, but there is no data to use + ) + (cond + ((-> obj load-file) + ;; the buffer is working on a file + (if (= (-> obj status) 'loading) + ;; something else is already loading, cancel that because we want something else + (str-load-cancel) + ) + ;; now nothing is loaded! + (set! (-> obj load-file) #f) + (set! (-> obj load-file-part) -1) + (set! (-> obj load-file-owner) (the-as handle #f)) + (set! (-> obj load-file-priority) SPOOL_PRIORITY_LOWEST) + ) + (else + ;; we have officially chosen to load this file + (set! (-> obj load-file) (-> obj pending-load-file)) + (set! (-> obj load-file-part) (-> obj pending-load-file-part)) + (set! (-> obj load-file-owner) (-> obj pending-load-file-owner)) + (set! (-> obj load-file-priority) (-> obj pending-load-file-priority)) + ) + ) + ) + (label cfg-18) + (cond + ((-> obj load-file) + ;; something is being worked on + (case (-> obj status) + (('active 'reserved) + ;; file is loaded and usable (or reserved) + ) + (('error) + ;; oops an error happened. make this buffer unusable now. + (set! (-> obj status) 'inactive) + (set! (-> obj load-file) #f) + (set! (-> obj load-file-part) -1) + (set! (-> obj load-file-owner) (the-as handle #f)) + (set! (-> obj load-file-priority) SPOOL_PRIORITY_LOWEST) + (set! (-> obj pending-load-file) #f) + (set! (-> obj pending-load-file-part) -1) + (set! (-> obj pending-load-file-owner) (the-as handle #f)) + (set! (-> obj pending-load-file-priority) SPOOL_PRIORITY_LOWEST) + (set! (-> obj art-group) #f) + ) + (('inactive) + ;; no usable data here, fill the buffer + ;; TODO macro + (let ((v1-28 (-> obj heap))) + (set! (-> v1-28 current) (-> v1-28 base)) + ) + (cond + ((string= (-> obj load-file) "reserved") ;; we want to reserve something + (cond + ((-> *art-control* reserve-buffer) + (format 0 "ERROR: trying double reserve ~A when ~A is reserved~%" obj (-> *art-control* reserve-buffer)) + ) + (else + (set! (-> obj status) 'reserved) + (set! (-> *art-control* reserve-buffer) obj) ;; this buffer is reserved + ) + ) + ) + ((and (!= (-> *level* loading-level) (-> *level* level-default)) + (< (meters 20) (-> obj load-file-priority)) + ) + ;; unused cond + ) + ((str-load (-> obj load-file) (-> obj load-file-part) (align64 (-> obj heap current)) #x3fc00) + (set! (-> obj status) 'loading) + ) + ) + ) + (('loading) + ;; loading... + (case (str-load-status (&-> obj len)) + (('error) + ;; something went wrong. oh well. + (set! (-> obj status) 'error) + ) + (('busy) + ;; loading. we have nothing to do. + ) + (else + ;; done!! + ;; not sure it is a good idea to assume that this is a success... + (set! (-> obj buf) (align64 (-> obj heap current))) + (set! (-> obj status) 'loaded) + (goto cfg-18) ;; go back and check status again! + ) + ) + ) + (('loaded) + ;; file is loaded. link it and see if we're good + (let ((a0-37 (-> obj buf))) + (set! (-> obj art-group) (the-as art-group (link (the-as pointer a0-37) (-> obj load-file data) (-> obj len) (-> obj heap) 0))) + ) + (let ((s4-0 (-> obj art-group)) + (s3-0 (-> obj load-file)) + ) + (cond + ((not s4-0) + (format 0 "ERROR: art-group ~A part ~D is not a valid file.~%" s3-0 (-> obj load-file-part)) + (set! (-> obj status) 'error) + ) + ((not (type-type? (-> s4-0 type) art-group)) + (format 0 "ERROR: art-group ~A part ~D is not a art-group.~%" s3-0 (-> obj load-file-part)) + (set! (-> obj status) 'error) + ) + ((not (file-info-correct-version? (-> s4-0 info) (file-kind art-group) 0)) + ;;(format 0 "ERROR: art-group ~A part ~D is the wrong version.~%" s3-0 (-> obj load-file-part)) + (set! (-> obj status) 'error) + ) + (else + (dummy-9 s4-0) + (set! (-> obj status) 'locked) ;; make file ready to be used + ) + ) + ) + ) + (('locked) + ;; this buffer is locked and needs to be unlocked before it can be used. + (when (and (not (-> obj locked?)) (handle->process (-> obj load-file-owner))) + ;; we want to be used, unlock this buffer and lock the other just in case. + (link-file obj (-> obj art-group)) + (set! (-> obj other locked?) #t) + (set! (-> obj status) 'active) + (goto cfg-18) + ) + ) + ) + ) + (else + ;; we want to get rid of the file! + (case (-> obj status) + (('initialize) + ;; this was done earlier + ) + (('reserved) + ;; this buffer is reserved + (cond + ((= (-> *art-control* reserve-buffer) obj) ;; yep it's this one! + (set! (-> *art-control* reserve-buffer) #f) + (set! (-> obj status) 'inactive) + ) + (else + (format 0 "ERROR: trying tro free ~A when ~A is reserved~%" obj (-> *art-control* reserve-buffer)) + ) + ) + ) + (('active) + ;; buffer is in use. not anymore! + (unlink-file obj (-> obj art-group)) + (let ((v1-70 (-> obj heap))) + (set! (-> v1-70 current) (-> v1-70 base)) + ) + (set! (-> obj art-group) #f) + (set! (-> obj status) 'inactive) + (when (-> obj other locked?) + (unlock! (-> obj other)) + (update (-> obj other)) + ) + ) + (else + ;; some other scenario, just get rid of the whole thing. + (let ((v1-79 (-> obj heap))) + (set! (-> v1-79 current) (-> v1-79 base)) + ) + (set! (-> obj art-group) #f) + (set! (-> obj status) 'inactive) + ) + ) + ) + ) + 0 + ) + + +;; start loading a spooled anim if we think one is about to be used, e.g. when approaching a fuel cell or npc +;; (some processes may want to wait for the stream to be preloaded, which won't happen with this disabled) +(define *preload-spool-anims* #t) + +(defmethod file-status external-art-control ((obj external-art-control) (name string) (part int)) + "Get the status of a file in this art control. #f = file not found" + + (dotimes (i 2) + (swhen (file-status (-> obj buffer i) name part) + (return bc) + ) + ) + #f + ) + +(defmethod update external-art-control ((obj external-art-control) (debug-print symbol)) + "Update this external-art-control. This validates the spool buffers, sorts the spools, and does some other things. + If debug-print, also prints some text to the display console" + + (if (nonzero? (-> obj reserve-buffer-count)) + (spool-push obj "reserved" 0 *dproc* (if (-> obj reserve-buffer) + -110.0 + -0.5) + ) + ) + (dotimes (v1-5 2) + (set! (-> obj buffer v1-5 frame-lock) #f) ;; I don't know what this is + ) + (dotimes (v1-8 3) + (set! (-> obj rec v1-8 buf2) #f) + ) + (dotimes (s4-0 2) + (let ((s3-0 (-> obj rec s4-0))) + (when (-> s3-0 name) + (dotimes (s2-0 2) + (when (and (file-status (-> obj buffer s2-0) (-> s3-0 name) (-> s3-0 parts)) + (not (-> obj buffer s2-0 frame-lock)) + ) + (set! (-> obj buffer s2-0 frame-lock) #t) + (set! (-> s3-0 buf2) (-> obj buffer s2-0)) + (set! (-> obj buffer s2-0 pending-load-file-owner) (-> s3-0 owner)) + (set! (-> obj buffer s2-0 load-file-owner) (-> s3-0 owner)) + (set! (-> obj buffer s2-0 pending-load-file-priority) (-> s3-0 priority)) + (set! (-> obj buffer s2-0 load-file-priority) (-> s3-0 priority)) + (goto cfg-24) ;; buffer found, move on. + ) + ) + ) + ) + (label cfg-24) + ) + + (dotimes (s4-1 2) + (let ((s3-1 (-> obj rec s4-1))) + (when (and (-> s3-1 name) (not (-> s3-1 buf2))) + (if (and (not *preload-spool-anims*) (>= (-> s3-1 priority) 0.0)) + ;; not in use, move on + (goto cfg-46) + ) + (dotimes (s2-1 2) + (when (not (-> obj buffer s2-1 frame-lock)) + (set! (-> obj buffer s2-1 frame-lock) #t) + (want-file (-> obj buffer s2-1) (-> s3-1 name) (-> s3-1 parts) (-> s3-1 owner) (-> s3-1 priority)) + (set! (-> s3-1 index) (the-as int (-> obj buffer s2-1))) + (goto cfg-46) + ) + ) + ) + ) + (label cfg-46) + ) + + (when (not (-> obj reserve-buffer)) + (let ((s4-2 (-> obj rec 0 buf1))) + (if (and s4-2 + (-> s4-2 locked?) + (not (string= (-> s4-2 pending-load-file) "reserved")) + (not (string= (-> s4-2 other pending-load-file) "reserved")) + ) + (want-file (-> s4-2 other) (the-as string #f) -1 (the-as handle #f) SPOOL_PRIORITY_LOWEST) + ) + ) + ) + + (dotimes (s4-3 2) + (update (-> obj buffer s4-3)) + ) + + ;; sort spool anims. + (let ((s4-4 (the-as spool-anim #f))) + (countdown (s3-2 3) + (if (and (-> obj rec s3-2 name) + (not (name= (-> obj rec s3-2 name) (-> obj active-stream))) + ) + (set! s4-4 (-> obj rec 0)) + ) + ) + (if (and (-> obj preload-stream name) + (or (not s4-4) (< (-> obj preload-stream priority) (-> s4-4 priority))) + ) + (set! s4-4 (-> obj preload-stream)) + ) + (cond + (s4-4 + (mem-copy! (&-> (-> obj last-preload-stream) type) (&-> s4-4 type) (size-of spool-anim)) + (str-play-queue (-> s4-4 name)) + ) + (else + (set! (-> obj last-preload-stream name) #f) + (set! (-> obj last-preload-stream owner) (the-as handle #f)) + ) + ) + ) + + (when (and debug-print *display-art-control*) + (dotimes (s5-1 3) + (format *stdcon* "rec ~d ~S ~D ~f ~A~%" s5-1 (-> obj rec s5-1 name) (-> obj rec s5-1 parts) (-> obj rec s5-1 priority) (handle->name (-> obj rec s5-1 owner))) + ) + (dotimes (s5-2 2) + (format *stdcon* "buf ~d ~C ~S ~D ~A ~A~%" s5-2 (if (-> obj buffer s5-2 locked?) #\l #\\s) (-> obj buffer s5-2 pending-load-file) (-> obj buffer s5-2 pending-load-file-part) (-> obj buffer s5-2 status) (handle->name (-> obj buffer s5-2 pending-load-file-owner))) + ) + (format *stdcon* " a: ~S~%" (-> obj active-stream)) + (format *stdcon* " p: ~S ~A~%" (-> obj preload-stream name) (handle->name (-> obj preload-stream owner))) + (format *stdcon* " q: ~S ~A~%" (-> obj last-preload-stream name) (handle->name (-> obj last-preload-stream owner))) + ) + 0 + ) + +(defmethod none-reserved? external-art-control ((obj external-art-control)) + "are there any reserved buffers?" + (declare (inline)) + (zero? (-> obj reserve-buffer-count)) + ) + +(defmethod reserve-alloc external-art-control ((obj external-art-control)) + "Reserve a buffer!" + + (set! (-> obj reserve-buffer-count) 1) + (if (-> obj reserve-buffer) + (-> obj reserve-buffer heap) + ) + ) + +(defmethod reserve-free external-art-control ((obj external-art-control) (arg0 kheap)) + "Free the reserved buffer!" + + (cond + ((none-reserved? obj) + (format 0 "ERROR: illegal attempt to free a buffer #x~X which had not been reserved (none reserved).~%" arg0) + ) + ((not (-> obj reserve-buffer)) + (set! (-> obj reserve-buffer-count) 0) + ) + ((= (-> obj reserve-buffer heap) arg0) + (want-file (-> obj reserve-buffer) (the-as string #f) -1 (the-as handle #f) SPOOL_PRIORITY_LOWEST) + (update (-> obj reserve-buffer)) + (set! (-> obj reserve-buffer-count) 0) + ) + (else + (format 0 "ERROR: illegal attempt to free a buffer #x~X which had not been reserved (buffer unknown).~%" arg0) + ) + ) + 0 + ) + +(defmethod clear-rec external-art-control ((obj external-art-control)) + "Clears the recent spool anims from the art control." + + (cond + ((!= *master-mode* 'game) + (dotimes (s5-0 3) + (when (name= (-> obj rec s5-0 name) "reserved") + (case s5-0 + ((0) + (mem-copy! (&-> obj rec 0 type) (&-> obj rec 1 type) (size-of spool-anim)) + (mem-copy! (&-> obj rec 1 type) (&-> obj rec 2 type) (size-of spool-anim)) + ) + ((1) + (mem-copy! (&-> obj rec 1 type) (&-> obj rec 2 type) (size-of spool-anim)) + ) + ) + (set! (-> obj rec 2 type) spool-anim) + (set! (-> obj rec 2 name) #f) + (set! (-> obj rec 2 priority) SPOOL_PRIORITY_LOWEST) + (set! (-> obj rec 2 owner) (the-as handle #f)) + ) + ) + ) + (else + (dotimes (v1-19 3) + (set! (-> obj rec v1-19 type) spool-anim) + (set! (-> obj rec v1-19 name) #f) + (set! (-> obj rec v1-19 priority) SPOOL_PRIORITY_LOWEST) + (set! (-> obj rec v1-19 owner) (the-as handle #f)) + ) + (set! (-> obj preload-stream type) spool-anim) + (set! (-> obj preload-stream name) #f) + (set! (-> obj preload-stream priority) SPOOL_PRIORITY_LOWEST) + (set! (-> obj preload-stream owner) (the-as handle #f)) + ) + ) + 0 + ) + +(defmacro spool-calc-priority (priority proc) + "Check the priority of a spool anim and recalculate it if needed. It will be the same as distance between target and the requesting process. + priority = var that stores priority + proc = a process to recalc from" + `(when (and (= ,priority SPOOL_PRIORITY_RECALC) ,proc) + (let ((target-trans (target-pos 0))) + (set! ,priority (vector-vector-distance target-trans (-> (the-as process-drawable ,proc) root trans))) + ) + ) + ) + +(defmethod try-preload-stream external-art-control ((obj external-art-control) (arg0 string) (arg1 int) (arg2 process) (arg3 float)) + "Set a new stream to be preloaded, if appropriate." + + (spool-calc-priority arg3 arg2) + + (unless (and (-> obj preload-stream name) + (>= arg3 (-> obj preload-stream priority)) + ) + (set! (-> obj preload-stream name) arg0) + (set! (-> obj preload-stream parts) arg1) + (set! (-> obj preload-stream priority) arg3) + (set! (-> obj preload-stream owner) (process->handle arg2)) + ) + 0 + ) + +(defmethod spool-push external-art-control ((obj external-art-control) (name string) (part int) (proc process) (priority float)) + "Push a spool-anim to the spool array. There are only space for three, and only the three highest priority spool anims will be kept. (lowest priority = top)" + + (spool-calc-priority priority proc) + + ;; if this spool-anim already exists, pop it from the rec list + (cond + ((and (= part (-> obj rec 0 parts)) (name= name (-> obj rec 0 name))) + (if (>= priority (-> obj rec 0 priority)) + (return (the-as int #f)) + ) + ;; first spool. copy 1st <- 2nd and 2nd <- 3rd, 3rd will be wiped + (mem-copy! (&-> obj rec 0 type) (&-> obj rec 1 type) (size-of spool-anim)) + (mem-copy! (&-> obj rec 1 type) (&-> obj rec 2 type) (size-of spool-anim)) + (set! (-> obj rec 2 name) #f) + (set! (-> obj rec 2 owner) (the-as handle #f)) + ) + ((and (= part (-> obj rec 1 parts)) (name= name (-> obj rec 1 name))) + (if (>= priority (-> obj rec 1 priority)) + (return (the-as int #f)) + ) + ;; second spool. copy 2nd <- 3rd, 3rd will be wiped + (mem-copy! (&-> obj rec 1 type) (&-> obj rec 2 type) (size-of spool-anim)) + (set! (-> obj rec 2 name) #f) + (set! (-> obj rec 2 owner) (the-as handle #f)) + ) + ((and (= part (-> obj rec 2 parts)) (name= name (-> obj rec 2 name))) + (if (>= priority (-> obj rec 2 priority)) + (return (the-as int #f)) + ) + ;; third spool. 3rd will be wiped + (set! (-> obj rec 2 name) #f) + (set! (-> obj rec 2 owner) (the-as handle #f)) + ) + ) + + ;; if it's top 3 priority, push this spool-anim to the rec list + (cond + ((< priority (-> obj rec 0 priority)) + ;; 1st place! + (mem-copy! (&-> obj rec 2 type) (&-> obj rec 1 type) (size-of spool-anim)) + (mem-copy! (&-> obj rec 1 type) (&-> obj rec 0 type) (size-of spool-anim)) + (set! (-> obj rec 0 name) name) + (set! (-> obj rec 0 parts) part) + (set! (-> obj rec 0 priority) priority) + (set! (-> obj rec 0 owner) (process->handle proc)) + ) + ((< priority (-> obj rec 1 priority)) + ;; 2nd place. + (mem-copy! (&-> obj rec 2 type) (&-> obj rec 1 type) (size-of spool-anim)) + (set! (-> obj rec 1 name) name) + (set! (-> obj rec 1 parts) part) + (set! (-> obj rec 1 priority) priority) + (set! (-> obj rec 1 owner) (process->handle proc)) + ) + ((< priority (-> obj rec 2 priority)) + ;; 3rd place... + (set! (-> obj rec 2 name) name) + (set! (-> obj rec 2 parts) part) + (set! (-> obj rec 2 priority) priority) + (set! (-> obj rec 2 owner) (process->handle proc)) + ) + ) + 0 + ) + +(defun-extern level-hint-surpress! none) ;; ? +(defun-extern ja-channel-push! int int int) ;; TODO temp +(defun-extern ja-channel-set! int int) ;; TODO temp +(defun-extern joint-control-channel-group-eval! joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ;; TODO temp +(defun-extern joint-control-channel-group! joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ;; TODO temp +(defun-extern ja-aframe-num int float) ;; TODO temp + +(define-extern ja-abort-spooled-anim (function spool-anim art-joint-anim int int :behavior process-drawable)) +(defbehavior ja-play-spooled-anim process-drawable ((arg0 spool-anim) (arg1 art-joint-anim) (arg2 art-joint-anim) (arg3 (function process-drawable symbol))) + "Set up and start playing a spooled animation. details not understood yet." + + (let ((spool-part 0) + (sv-24 -17.0) + (old-skel-status (-> self skel status)) + (sv-32 -2) + (sv-40 0) + (sv-48 0) + (sv-56 0) + (spool-sound (new-sound-id)) + ) + (dummy-17 *load-state* (-> arg0 command-list)) + (set-setting! *setting-control* self 'spooling (the-as symbol (process->ppointer self)) 0.0 0) + (logior! (-> self skel status) #x7) + (kill-current-level-hint '() '() 'die) + (level-hint-surpress!) + (copy-settings-from-target! *setting-control*) + ;; the spool lock is active (or we're not in game mode for some reason?) + (when (or (handle->process (-> *art-control* spool-lock)) + (!= *master-mode* 'game) + ) + (cond + (arg1 + (when (!= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + arg1 + ) + (ja-channel-push! 1 15) + ;; TODO macro + (let ((s2-0 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! s2-0 arg1 num-func-identity) + (set! (-> s2-0 frame-num) 0.0) + ) + ) + ) + (else + (ja-channel-set! 0) + ) + ) + (while (or (handle->process (-> *art-control* spool-lock)) + (!= *master-mode* 'game) + ) + (format #t "WARNING: ---------------------> loader stall on lock~%") + (if (arg3 self) + (goto anim-abort) + ) + (spool-push *art-control* (-> arg0 name) spool-part self -9.0) + (suspend) + (when arg1 + ;; TODO macro + (let ((a0-17 (-> self skel root-channel 0))) + (set! (-> a0-17 param 0) 1.0) + (joint-control-channel-group-eval! a0-17 (the-as art-joint-anim #f) num-func-loop!) + ) + ) + ) + ) + (set! (-> *art-control* spool-lock) (process->handle self)) + (set! sv-48 (the-as int (-> *display* base-frame-counter))) + (while (< spool-part (-> arg0 parts)) + (spool-push *art-control* (-> arg0 name) spool-part self -20.0) + (update *art-control* #f) + (spool-push *art-control* (-> arg0 name) spool-part self -20.0) + (when (!= (file-status *art-control* (-> arg0 name) spool-part) 'active) + (cond + (arg1 + (when (!= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + arg1 + ) + (ja-channel-set! 1) + (let ((s2-2 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! s2-2 arg1 num-func-identity) + (set! (-> s2-2 frame-num) 0.0) + ) + ) + ) + (else + (ja-channel-set! 0) + ) + ) + (while (!= (file-status *art-control* (-> arg0 name) spool-part) 'active) + (if (arg3 self) + (goto anim-abort) + ) + (spool-push *art-control* (-> arg0 name) spool-part self -20.0) + (format #t "WARNING: ---------------------> loader stall on art ~S ~D~%" (-> arg0 name) spool-part) + (suspend) + (when arg1 + (let ((a0-37 (-> self skel root-channel 0))) + (set! (-> a0-37 param 0) 1.0) + (joint-control-channel-group-eval! a0-37 (the-as art-joint-anim #f) num-func-loop!) + ) + ) + ) + ) + (spool-push *art-control* (-> arg0 name) spool-part self -20.0) + (let ((s2-4 (the-as art-joint-anim (dummy-10 (-> self draw art-group) (-> arg0 name) art-joint-anim)))) + (cond + (s2-4 + (ja-channel-set! 1) + (let ((a0-42 (-> self skel root-channel 0))) + (set! (-> a0-42 frame-group) s2-4) + (set! (-> a0-42 param 0) (the float (+ (-> s2-4 data 0 length) -1))) + (set! (-> a0-42 param 1) 1.0) + (set! (-> a0-42 frame-num) 0.0) + (joint-control-channel-group! a0-42 s2-4 num-func-seek!) + ) + (when (zero? spool-part) + (str-play-async (-> arg0 name) spool-sound) + (set! (-> *art-control* active-stream) (-> arg0 name)) + ) + (let* ((f30-0 (* 0.05859375 (-> s2-4 speed))) + (f28-0 (+ sv-24 (/ (the float (+ (-> s2-4 data 0 length) -1)) f30-0))) + (sv-72 (current-str-pos spool-sound)) + ) + (set! sv-40 (the-as int (-> *display* base-frame-counter))) + ;; uhh... + (until (begin + (spool-push *art-control* (-> arg0 name) spool-part self -20.0) + (cond + ((< (1+ spool-part) (-> arg0 parts)) + (spool-push *art-control* (-> arg0 name) (1+ spool-part) self -10.0) + ) + (else + (logclear! (-> self skel status) #x4) + ) + ) + (dummy-16 *load-state* (ja-aframe-num 0)) + (cond + ((and (< sv-32 sv-72) (= (current-str-id) spool-sound)) + (+! sv-56 (the-as int (- (-> *display* base-frame-counter) (-> *display* old-base-frame-counter)))) + (set! sv-40 (the-as int (-> *display* base-frame-counter))) + ) + (else + 0 + ) + ) + (set! sv-32 sv-72) + (set! sv-48 (the-as int (-> *display* base-frame-counter))) + (suspend) + (let ((f0-14 (* (- (the float (current-str-pos spool-sound)) sv-24) f30-0)) + (a0-69 (-> self skel root-channel 0)) + ) + (set! (-> a0-69 param 0) (the float (+ (-> a0-69 frame-group data 0 length) -1))) + (set! (-> a0-69 param 1) 1.0) + (set! (-> a0-69 frame-num) f0-14) + (joint-control-channel-group! a0-69 (the-as art-joint-anim #f) num-func-seek!) + ) + (let ((v0-39 (current-str-pos spool-sound))) + (set! sv-72 v0-39) + (>= (the float v0-39) f28-0) + ) + ) + (if (= (-> self skel root-channel 0) (-> self skel channel)) + (logior! (-> self skel status) #x20) + ) + (if (or (arg3 self) + (and (<= sv-72 0) + (>= (the-as int (- (-> *display* base-frame-counter) sv-40)) (seconds 4)) + ) + (and (< (seconds 1) sv-56) (<= sv-72 0)) + ) + (goto anim-abort) + ) + ) + (set! sv-24 f28-0) + ) + (logclear! (-> self skel status) #x20) + ) + (else + (format 0 "ERROR: ~A in spool anim loop for ~A ~D, but not loaded.~" self (-> arg0 name) spool-part) + (goto anim-abort) + ) + ) + ) + (1+! spool-part) + ) + (1-! spool-part) + (label anim-abort) + (ja-abort-spooled-anim arg0 arg2 spool-part) + ) + 0 + ) + +(defbehavior ja-abort-spooled-anim process-drawable ((arg0 spool-anim) (arg1 art-joint-anim) (arg2 int)) + "Abort a spooled animation." + + (dummy-18 *load-state*) + (str-play-stop (-> arg0 name)) + (set! (-> *art-control* active-stream) #f) + (logclear! (-> self skel status) #x6) ;; #x4 and #x2 + (if (not (logtest? (-> self skel status) 1)) + (logclear! (-> self skel status) #x1) + ) + (clear-pending-settings-from-process *setting-control* self 'spooling) + (cond + ((and arg1 (>= arg2 0)) + (ja-channel-push! 1 30) + (set! (-> self skel root-channel 0 frame-group) arg1) + (while (!= (-> self skel root-channel 0) (-> self skel channel)) + (spool-push *art-control* (-> arg0 name) arg2 self -20.0) + (suspend) + ;; TODO macro + (let ((a0-12 (-> self skel root-channel 0))) + (set! (-> a0-12 param 0) (the float (+ (-> a0-12 frame-group data 0 length) -1))) + (set! (-> a0-12 param 1) 1.0) + (joint-control-channel-group-eval! a0-12 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + ) + (else + (ja-channel-set! 0) + ) + ) + (set! (-> *art-control* spool-lock) (the-as handle #f)) + 0 + ) + +(if (zero? *art-control*) + (set! *art-control* (new 'global 'external-art-control)) + ) + diff --git a/goal_src/engine/math/math.gc b/goal_src/engine/math/math.gc index 8a62fd311b..39d8c58b73 100644 --- a/goal_src/engine/math/math.gc +++ b/goal_src/engine/math/math.gc @@ -139,6 +139,15 @@ ) ) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;; utility macros +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(defmacro seek! (place target rate) + "Macro to use seek in-place. place is the target, and where the result is stored." + `(set! ,place (seek ,place ,target ,rate)) + ) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; integer utility ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/goal_src/engine/math/vector.gc b/goal_src/engine/math/vector.gc index a222ac787b..3d21932e0d 100644 --- a/goal_src/engine/math/vector.gc +++ b/goal_src/engine/math/vector.gc @@ -505,17 +505,17 @@ (defun vector-seconds ((arg0 vector) (arg1 vector)) "Convert from actual seconds to the seconds unit." - (set! (-> arg0 data 0) (seconds (-> arg1 data 0))) - (set! (-> arg0 data 1) (seconds (-> arg1 data 1))) - (set! (-> arg0 data 2) (seconds (-> arg1 data 2))) + (set! (-> arg0 data 0) (fsec (-> arg1 data 0))) + (set! (-> arg0 data 1) (fsec (-> arg1 data 1))) + (set! (-> arg0 data 2) (fsec (-> arg1 data 2))) arg0 ) (defun vector-seconds! ((arg0 vector)) "Convert from actual seconds to seconds, in place" - (set! (-> arg0 data 0) (seconds (-> arg0 data 0))) - (set! (-> arg0 data 1) (seconds (-> arg0 data 1))) - (set! (-> arg0 data 2) (seconds (-> arg0 data 2))) + (set! (-> arg0 data 0) (fsec (-> arg0 data 0))) + (set! (-> arg0 data 1) (fsec (-> arg0 data 1))) + (set! (-> arg0 data 2) (fsec (-> arg0 data 2))) arg0 ) diff --git a/goal_src/engine/nav/navigate-h.gc b/goal_src/engine/nav/navigate-h.gc index 48d1a2df07..ca543f6375 100644 --- a/goal_src/engine/nav/navigate-h.gc +++ b/goal_src/engine/nav/navigate-h.gc @@ -9,6 +9,13 @@ :bitfield #t :type uint32 (display-marks 0) + (bit1 1) + (bit2 2) + (bit3 3) + (bit4 4) + (bit5 5) + (bit6 6) + (bit7 7) (bit8 8) (bit13 13) ) diff --git a/goal_src/engine/sound/gsound-h.gc b/goal_src/engine/sound/gsound-h.gc index 662275512c..1ba7b63641 100644 --- a/goal_src/engine/sound/gsound-h.gc +++ b/goal_src/engine/sound/gsound-h.gc @@ -374,7 +374,7 @@ :flag-assert #x90000004c ) -(define *current-sound-id* (the sound-id 65536)) +(define *current-sound-id* (the sound-id #x10000)) (deftype ambient-sound (basic) ((spec sound-spec :offset-assert 4) diff --git a/goal_src/engine/sound/gsound.gc b/goal_src/engine/sound/gsound.gc index 8be34f29be..d3c269c4b9 100644 --- a/goal_src/engine/sound/gsound.gc +++ b/goal_src/engine/sound/gsound.gc @@ -19,20 +19,20 @@ ) (deftype sound-iop-info (basic) - ((frame uint32 :offset 16) - (strpos int32 :offset-assert 20) - (str-id uint32 :offset-assert 24) - (str-id-sign int32 :offset 24) - (freemem uint32 :offset-assert 28) - (chinfo uint8 48 :offset-assert 32) - (freemem2 uint32 :offset-assert 80) - (nocd uint32 :offset-assert 84) - (dirtycd uint32 :offset-assert 88) - (diskspeed uint32 2 :offset-assert 92) - (lastspeed uint32 :offset-assert 100) - (dupseg int32 :offset-assert 104) - (times uint32 41 :offset-assert 108) - (times-seq uint32 :offset-assert 272) + ((frame uint32 :offset 16) + (strpos int32 :offset-assert 20) + (str-id sound-id :offset-assert 24) + (str-id-sign int32 :offset 24) + (freemem uint32 :offset-assert 28) + (chinfo uint8 48 :offset-assert 32) + (freemem2 uint32 :offset-assert 80) + (nocd uint32 :offset-assert 84) + (dirtycd uint32 :offset-assert 88) + (diskspeed uint32 2 :offset-assert 92) + (lastspeed uint32 :offset-assert 100) + (dupseg int32 :offset-assert 104) + (times uint32 41 :offset-assert 108) + (times-seq uint32 :offset-assert 272) ) :method-count-assert 9 :size-assert #x114 @@ -50,10 +50,10 @@ (defun current-str-id () "Return id of the current stream" - (-> *sound-iop-info* str-id-sign) + (the-as sound-id (-> *sound-iop-info* str-id-sign)) ) -(defun current-str-pos ((str int)) +(defun current-str-pos ((str sound-id)) "Return position of the current stream. Return -1 if specified stream is not current" (let ((ret -1)) @@ -886,7 +886,7 @@ 3 : to-maincave 4 : to-snow 5 : sage-green -6 : voicebox +6 : assistant 7 : birdlady 8 : mayor 9 : sculptor diff --git a/goal_src/engine/target/logic-target.gc b/goal_src/engine/target/logic-target.gc index f8ce580814..349829350f 100644 --- a/goal_src/engine/target/logic-target.gc +++ b/goal_src/engine/target/logic-target.gc @@ -10,6 +10,8 @@ (defun init-target ((cont continue-point)) "NOTHING11!!!!" + (looping-code) + (the object 0) ) diff --git a/goal_src/engine/target/target-h.gc b/goal_src/engine/target/target-h.gc index 2ad577faac..9ebc5d3b74 100644 --- a/goal_src/engine/target/target-h.gc +++ b/goal_src/engine/target/target-h.gc @@ -47,7 +47,7 @@ (deftype sidekick (process-drawable) ((control control-info :offset 112) (anim-seed uint64 :offset 192) - (shadow-in-movie? basic :offset-assert 200) + (shadow-in-movie? symbol :offset-assert 200) ) :heap-base #x60 :method-count-assert 20 diff --git a/goal_src/engine/ui/progress/progress-static.gc b/goal_src/engine/ui/progress/progress-static.gc index e46c803651..87e8752041 100644 --- a/goal_src/engine/ui/progress/progress-static.gc +++ b/goal_src/engine/ui/progress/progress-static.gc @@ -1360,13 +1360,14 @@ ) ) +;; goes down by 24 or 23 every time (define *task-egg-starting-x* (new 'static 'boxed-array :type int32 :length 9 :allocated-length 9 - #xda - #xc2 - #xab - #x93 - #x7c + 218 + 194 + 171 + 147 + 124 100 77 53 diff --git a/goal_src/engine/util/types-h.gc b/goal_src/engine/util/types-h.gc index e63366bfc0..1e1554bf9b 100644 --- a/goal_src/engine/util/types-h.gc +++ b/goal_src/engine/util/types-h.gc @@ -33,7 +33,8 @@ (defmacro meters (x) "Convert number to meters. If the input is a constant float or integer, the result will be a - compile time constant float. Otherwise, it will not be constant." + compile time constant float. Otherwise, it will not be constant. + Returns float." ;; we don't have enough constant propagation for the compiler to figure this out. (cond @@ -55,6 +56,7 @@ ;; quickly by converting to an int, masking, and back to float (defglobalconstant DEGREES_PER_ROT 65536.0) +;; this was deg in GOAL (defmacro degrees (x) "Convert number to degrees unit. Will keep a constant float/int constant." @@ -76,15 +78,27 @@ ;; an unsigned 32-bit integer can store about 150 days (defglobalconstant TICKS_PER_SECOND 300) ;; 5 t/frame @ 60fps, 6 t/frame @ 50fps +;; this was usec in GOAL (defmacro seconds (x) - "Convert number to seconds unit." + "Convert number to seconds unit. + Returns uint." (cond - ((float? x) - (* 1.0 TICKS_PER_SECOND x) - ) - ((integer? x) + ((or (integer? x) (float? x)) (* TICKS_PER_SECOND x) ) + (#t + `(the uint (* TICKS_PER_SECOND ,x)) + ) + ) + ) + +(defmacro fsec (x) + "Convert number to seconds unit. + Returns float." + (cond + ((or (integer? x) (float? x)) + (* 1.0 TICKS_PER_SECOND x) + ) (#t `(* 1.0 TICKS_PER_SECOND ,x) ) diff --git a/goal_src/goal-lib.gc b/goal_src/goal-lib.gc index 4f69000dcf..94483713c5 100644 --- a/goal_src/goal-lib.gc +++ b/goal_src/goal-lib.gc @@ -301,7 +301,8 @@ ) (defmacro dotimes (var &rest body) - "Loop like for (int i = 0; i < end; i++)" + "Loop like for (int i = 0; i < end; i++) + var is a list made up of a variable to bind the amount to (second item), and the remaining forms are evaluated after the loop is finished." `(let (( ,(first var) 0)) (while (< ,(first var) ,(second var)) ,@body @@ -488,14 +489,30 @@ `(set! ,place (logxor ,place ,amount)) ) -(defmacro lognor! (place amount) - `(set! ,place (lognor ,place ,amount)) - ) - (defmacro logand! (place amount) `(set! ,place (logand ,place ,amount)) ) +(defmacro logclear (a b) + "Returns the result of setting the bits in b to zero in a" + `(logand (lognot ,b) ,a) + ) + +(defmacro logclear! (a b) + "Sets the bits in b to zero in a, in place" + `(set! ,a (logand (lognot ,b) ,a)) + ) + +(defmacro logtest? (a b) + "does a have any of the bits in b?" + `(nonzero? (logand ,a ,b)) + ) + +(defmacro logtesta? (a b) + "does a have ALL of the bits in b?" + `(= (logand ,a ,b) ,b) + ) + (defmacro deref (t addr &rest fields) `(-> (the-as (pointer ,t) ,addr) ,@fields) ) diff --git a/goal_src/kernel-defs.gc b/goal_src/kernel-defs.gc index 5ad5df8681..75b040f58c 100644 --- a/goal_src/kernel-defs.gc +++ b/goal_src/kernel-defs.gc @@ -243,7 +243,7 @@ (new (symbol type basic) _type_ 0) (activate (_type_ process-tree basic pointer) process-tree 9) (deactivate (_type_) none 10) - (dummy-method-11 () none 11) + (dummy-method-11 (_type_ object) none 11) (run-logic? (_type_) symbol 12) (dummy-method () none 13) ) diff --git a/goal_src/kernel/gkernel-h.gc b/goal_src/kernel/gkernel-h.gc index 9c2fa5f505..151bdf80a7 100644 --- a/goal_src/kernel/gkernel-h.gc +++ b/goal_src/kernel/gkernel-h.gc @@ -118,12 +118,12 @@ (allow-to-run process-mask :offset-assert 12) (next-pid int32 :offset-assert 16) (fast-stack-top pointer :offset-assert 20) - (current-process basic :offset-assert 24) + (current-process process :offset-assert 24) (relocating-process basic :offset-assert 28) (relocating-min int32 :offset-assert 32) (relocating-max int32 :offset-assert 36) (relocating-offset int32 :offset-assert 40) - (low-memory-message basic :offset-assert 44) + (low-memory-message symbol :offset-assert 44) ) :size-assert #x30 @@ -212,7 +212,7 @@ (new (symbol type basic) _type_ 0) (activate (_type_ process-tree basic pointer) process-tree 9) (deactivate (_type_) none 10) - (dummy-method-11 () none 11) + (dummy-method-11 (_type_ object) none 11) (run-logic? (_type_) symbol 12) (dummy-method () none 13) ) @@ -236,7 +236,7 @@ (state state :offset-assert #x38) (trans-hook function :offset-assert #x3c) (post-hook function :offset-assert #x40) - (event-hook (function basic int basic event-message-block object) :offset-assert #x44) + (event-hook (function process int symbol event-message-block object) :offset-assert #x44) (allocated-length int32 :offset-assert #x48) (next-state state :offset-assert #x4c) (heap-base pointer :offset-assert #x50) @@ -251,7 +251,7 @@ (new (symbol type basic int) _type_ 0) (activate (_type_ process-tree basic pointer) process-tree 9) (deactivate (process) none 10) - (dummy-method-11 () none 11) + (dummy-method-11 (_type_ object) none 11) (run-logic? (process) symbol 12) (dummy-method () none 13) ) @@ -447,14 +447,14 @@ (trans (function object) :offset-assert 20) (post function :offset-assert 24) (enter (function object object object object object object object) :offset-assert 28) - (event (function basic int basic event-message-block object) :offset-assert 32) + (event (function process int symbol event-message-block object) :offset-assert 32) ) (:methods (new (symbol type basic function (function object) (function object object object object object object object) (function object) - (function basic int basic event-message-block object)) _type_ 0) + (function process int symbol event-message-block object)) _type_ 0) ) :method-count-assert 9 :size-assert #x24 @@ -464,10 +464,10 @@ ;; Not sure what this is, but it's probably used in the event system. (deftype event-message-block (structure) - ((to basic :offset-assert 0) - (from basic :offset-assert 4) + ((to process :offset-assert 0) + (from process :offset-assert 4) (num-params int32 :offset-assert 8) - (message basic :offset-assert 12) + (message symbol :offset-assert 12) (param uint64 7 :offset-assert 16) ) @@ -571,3 +571,21 @@ `(define ,name (lambda :name ,name :behavior ,process-type ,bindings ,@body)) ) ) + +(defmacro handle->name (handle) + "get the name of a process using a handle. #f is the result if the handle was invalid." + + (with-gensyms (proc) + `(let ((proc (handle->process ,handle))) + (if proc + (-> proc name) + ) + ) + ) + ) + + +(defmacro with-sp (&rest body) + `(rlet ((sp :reg rsp :reset-here #t :type pointer)) + ,@body) + ) diff --git a/goal_src/kernel/gstate.gc b/goal_src/kernel/gstate.gc index 23cb1b23e5..915d48f04d 100644 --- a/goal_src/kernel/gstate.gc +++ b/goal_src/kernel/gstate.gc @@ -144,16 +144,16 @@ There are several ways to "go" (trans (function object)) (enter (function object object object object object object object)) (exit (function object)) - (event (function basic int basic event-message-block object))) + (event (function process int symbol event-message-block object))) "Allocate a new state. It seems like this isn't really used much and most states are statically allocated and as a result don't have the constructor called." (let ((obj (object-new allocation type-to-make (the-as int (-> type-to-make size))))) (set! (-> obj name) name) - (set! (-> obj next) '#f) + (set! (-> obj next) #f) (set! (-> obj exit) exit) (set! (-> obj code) code) (set! (-> obj trans) trans) - (set! (-> obj post) '#f) + (set! (-> obj post) #f) (set! (-> obj enter) enter) (set! (-> obj event) event) obj @@ -318,6 +318,8 @@ There are several ways to "go" ) (defun send-event-function ((proc process) (msg event-message-block)) + "Function to send an event to a process. Please use the send-event macros when possible" + (with-pp (when (and proc (!= (-> proc type) process-tree) (-> proc event-hook)) (let ((pp-backup pp)) @@ -332,6 +334,8 @@ There are several ways to "go" ) (defmacro send-event (proc msg &rest params) + "Send an event to a process. This should be used over send-event-function" + `(with-pp (let ((event-data (new 'stack-no-clear 'event-message-block))) (set! (-> event-data from) pp) diff --git a/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc b/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc index 8533f1126c..41ed8c75f4 100644 --- a/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc +++ b/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc @@ -389,17 +389,17 @@ ;; definition of type collide-shape (deftype collide-shape (trsqv) - ((process process :offset-assert 140) - (max-iteration-count uint8 :offset-assert 144) - (nav-flags uint8 :offset-assert 145) - (pad-byte uint8 2 :offset-assert 146) - (pat-ignore-mask pat-surface :offset-assert 148) - (event-self basic :offset-assert 152) - (event-other basic :offset-assert 156) - (root-prim basic :offset-assert 160) - (riders basic :offset-assert 164) - (backup-collide-as uint64 :offset-assert 168) - (backup-collide-with uint64 :offset-assert 176) + ((process process :offset-assert 140) + (max-iteration-count uint8 :offset-assert 144) + (nav-flags uint8 :offset-assert 145) + (pad-byte uint8 2 :offset-assert 146) + (pat-ignore-mask pat-surface :offset-assert 148) + (event-self basic :offset-assert 152) + (event-other basic :offset-assert 156) + (root-prim collide-shape-prim :offset-assert 160) + (riders basic :offset-assert 164) + (backup-collide-as uint64 :offset-assert 168) + (backup-collide-with uint64 :offset-assert 176) ) :method-count-assert 56 :size-assert #xb8 diff --git a/test/decompiler/reference/engine/data/art-h_REF.gc b/test/decompiler/reference/engine/data/art-h_REF.gc index 87141b9679..a44a525ac3 100644 --- a/test/decompiler/reference/engine/data/art-h_REF.gc +++ b/test/decompiler/reference/engine/data/art-h_REF.gc @@ -296,8 +296,8 @@ :size-assert #x20 :flag-assert #xf00000020 (:methods - (dummy-13 (_type_) int 13) - (dummy-14 (_type_) int 14) + (link-art! (_type_) art-group 13) + (unlink-art! (_type_) int 14) ) ) diff --git a/test/decompiler/reference/engine/draw/process-drawable-h_REF.gc b/test/decompiler/reference/engine/draw/process-drawable-h_REF.gc index 0fb4456247..bc72f1cf57 100644 --- a/test/decompiler/reference/engine/draw/process-drawable-h_REF.gc +++ b/test/decompiler/reference/engine/draw/process-drawable-h_REF.gc @@ -36,12 +36,12 @@ ) ;; definition for function num-func-none -(defun num-func-none ((arg0 joint-control-channel)) +(defun num-func-none ((arg0 joint-control-channel) (arg1 float) (arg2 float)) (-> arg0 frame-num) ) ;; definition for function num-func-+! -(defun num-func-+! ((arg0 joint-control-channel) (arg1 float)) +(defun num-func-+! ((arg0 joint-control-channel) (arg1 float) (arg2 float)) (let ((f0-1 (+ @@ -56,7 +56,7 @@ ) ;; definition for function num-func--! -(defun num-func--! ((arg0 joint-control-channel) (arg1 float)) +(defun num-func--! ((arg0 joint-control-channel) (arg1 float) (arg2 float)) (let ((f0-1 (- @@ -71,7 +71,7 @@ ) ;; definition for function num-func-loop! -(defun num-func-loop! ((chan joint-control-channel) (inc float)) +(defun num-func-loop! ((chan joint-control-channel) (inc float) (arg2 float)) (let* ((duration (the float (+ (-> chan frame-group data 0 length) -1))) (after-inc (+ @@ -112,7 +112,9 @@ ) ;; definition for function num-func-blend-in! -(defun num-func-blend-in! ((arg0 joint-control-channel) (arg1 float)) +(defun + num-func-blend-in! + ((arg0 joint-control-channel) (arg1 float) (arg2 float)) (let ((f30-0 (seek (-> arg0 frame-interp) 1.0 (* arg1 (-> *display* time-adjust-ratio))) @@ -128,7 +130,7 @@ ) ;; definition for function num-func-chan -(defun num-func-chan ((arg0 joint-control-channel) (arg1 float)) +(defun num-func-chan ((arg0 joint-control-channel) (arg1 float) (arg2 float)) (let ((f0-2 (-> @@ -149,7 +151,7 @@ ) ;; definition for function num-func-identity -(defun num-func-identity ((arg0 joint-control-channel)) +(defun num-func-identity ((arg0 joint-control-channel) (arg1 float) (arg2 float)) (-> arg0 frame-num) ) diff --git a/test/decompiler/reference/engine/entity/actor-link-h_REF.gc b/test/decompiler/reference/engine/entity/actor-link-h_REF.gc index 72eed8ea89..f4dd4a2b94 100644 --- a/test/decompiler/reference/engine/entity/actor-link-h_REF.gc +++ b/test/decompiler/reference/engine/entity/actor-link-h_REF.gc @@ -79,12 +79,12 @@ (apply-function-forward (_type_ (function entity-actor object object) object) int 16) (apply-function-reverse (_type_ (function entity-actor object object) object) int 17) (apply-all (_type_ (function entity-actor object object) object) int 18) - (send-to-all (_type_ object) none 19) - (send-to-all-after (_type_ object) object 20) - (send-to-all-before (_type_ object) object 21) - (send-to-next-and-prev (_type_ object) none 22) - (send-to-next (_type_ object) none 23) - (send-to-prev (_type_ object) none 24) + (send-to-all (_type_ symbol) none 19) + (send-to-all-after (_type_ symbol) object 20) + (send-to-all-before (_type_ symbol) object 21) + (send-to-next-and-prev (_type_ symbol) none 22) + (send-to-next (_type_ symbol) none 23) + (send-to-prev (_type_ symbol) none 24) (actor-count (_type_) int 25) ) ) @@ -236,7 +236,7 @@ (defmethod send-to-all-after actor-link-info - ((obj actor-link-info) (message object)) + ((obj actor-link-info) (message symbol)) (with-pp (let ((iter (-> obj next)) (result (the-as object #f)) @@ -247,7 +247,7 @@ (let ((msg-block (new 'stack-no-clear 'event-message-block))) (set! (-> msg-block from) pp) (set! (-> msg-block num-params) 0) - (set! (-> msg-block message) (the-as basic message)) + (set! (-> msg-block message) message) (let ((v1-3 (send-event-function proc msg-block))) (b! v1-3 cfg-4 :likely-delay (set! result v1-3)) ) @@ -266,7 +266,7 @@ (defmethod send-to-all-before actor-link-info - ((obj actor-link-info) (arg0 object)) + ((obj actor-link-info) (arg0 symbol)) (with-pp (let ((s4-0 (-> obj prev)) (s5-0 (the-as object #f)) @@ -277,7 +277,7 @@ (let ((a1-1 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-1 from) pp) (set! (-> a1-1 num-params) 0) - (set! (-> a1-1 message) (the-as basic arg0)) + (set! (-> a1-1 message) arg0) (let ((v1-3 (send-event-function a0-1 a1-1))) (b! v1-3 cfg-4 :likely-delay (set! s5-0 v1-3)) ) @@ -294,7 +294,7 @@ ;; definition for method 23 of type actor-link-info ;; INFO: Return type mismatch int vs none. -(defmethod send-to-next actor-link-info ((obj actor-link-info) (arg0 object)) +(defmethod send-to-next actor-link-info ((obj actor-link-info) (arg0 symbol)) (with-pp (let ((a0-1 (-> obj next))) (when a0-1 @@ -303,7 +303,7 @@ (let ((v1-4 (new 'stack-no-clear 'event-message-block))) (set! (-> v1-4 from) pp) (set! (-> v1-4 num-params) 0) - (set! (-> v1-4 message) (the-as basic arg0)) + (set! (-> v1-4 message) arg0) (send-event-function a0-2 v1-4) ) ) @@ -317,7 +317,7 @@ ;; definition for method 24 of type actor-link-info ;; INFO: Return type mismatch int vs none. -(defmethod send-to-prev actor-link-info ((obj actor-link-info) (arg0 object)) +(defmethod send-to-prev actor-link-info ((obj actor-link-info) (arg0 symbol)) (with-pp (let ((a0-1 (-> obj prev))) (when a0-1 @@ -326,7 +326,7 @@ (let ((v1-4 (new 'stack-no-clear 'event-message-block))) (set! (-> v1-4 from) pp) (set! (-> v1-4 num-params) 0) - (set! (-> v1-4 message) (the-as basic arg0)) + (set! (-> v1-4 message) arg0) (send-event-function a0-2 v1-4) ) ) @@ -342,7 +342,7 @@ (defmethod send-to-next-and-prev actor-link-info - ((obj actor-link-info) (arg0 object)) + ((obj actor-link-info) (arg0 symbol)) (send-to-next obj arg0) (send-to-prev obj arg0) (none) @@ -350,7 +350,7 @@ ;; definition for method 19 of type actor-link-info ;; INFO: Return type mismatch object vs none. -(defmethod send-to-all actor-link-info ((obj actor-link-info) (arg0 object)) +(defmethod send-to-all actor-link-info ((obj actor-link-info) (arg0 symbol)) (send-to-all-after obj arg0) (send-to-all-before obj arg0) (none) @@ -490,7 +490,3 @@ incomplete-count ) ) - - - - diff --git a/test/decompiler/reference/engine/entity/entity-h_REF.gc b/test/decompiler/reference/engine/entity/entity-h_REF.gc index 0b3c31483c..12e7e38cef 100644 --- a/test/decompiler/reference/engine/entity/entity-h_REF.gc +++ b/test/decompiler/reference/engine/entity/entity-h_REF.gc @@ -23,8 +23,8 @@ (user-uint8 uint8 8 :offset 0) (status entity-perm-status :offset-assert 8) (dummy uint8 1 :offset-assert 10) - (task uint8 :offset-assert 11) - (aid uint32 :offset-assert 12) + (task game-task :offset-assert 11) + (aid actor-id :offset-assert 12) (quad uint128 :offset 0) ) :pack-me @@ -68,8 +68,8 @@ (trans vector :inline :offset-assert 32) (perm entity-perm :inline :offset-assert 48) (status uint16 :offset 56) - (aid uint32 :offset 60) - (task uint8 :offset 59) + (aid actor-id :offset 60) + (task game-task :offset 59) ) :method-count-assert 10 :size-assert #x40 diff --git a/test/decompiler/reference/engine/game/game-h_REF.gc b/test/decompiler/reference/engine/game/game-h_REF.gc index f781e48454..04155d0695 100644 --- a/test/decompiler/reference/engine/game/game-h_REF.gc +++ b/test/decompiler/reference/engine/game/game-h_REF.gc @@ -7,17 +7,17 @@ (node-list cspace-array :offset-assert 116) (draw draw-control :offset-assert 120) (skel joint-control :offset-assert 124) - (nav basic :offset-assert 128) + (nav nav-control :offset-assert 128) (align align-control :offset-assert 132) - (path basic :offset-assert 136) - (vol basic :offset-assert 140) + (path path-control :offset-assert 136) + (vol vol-control :offset-assert 140) (fact fact-info :offset-assert 144) - (link basic :offset-assert 148) + (link actor-link-info :offset-assert 148) (part sparticle-launch-control :offset-assert 152) (water water-control :offset-assert 156) (sound ambient-sound :offset-assert 160) (state-flags uint32 :offset-assert 164) - (state-time uint64 :offset-assert 168) + (state-time seconds :offset-assert 168) ) :heap-base #x40 :method-count-assert 20 diff --git a/test/decompiler/reference/engine/game/game-info-h_REF.gc b/test/decompiler/reference/engine/game/game-info-h_REF.gc index 1323799562..44acc24d35 100644 --- a/test/decompiler/reference/engine/game/game-info-h_REF.gc +++ b/test/decompiler/reference/engine/game/game-info-h_REF.gc @@ -49,7 +49,7 @@ ;; definition of type level-buffer-state (deftype level-buffer-state (structure) - ((name basic :offset-assert 0) + ((name symbol :offset-assert 0) (display? symbol :offset-assert 4) (force-vis? symbol :offset-assert 8) (force-inside? symbol :offset-assert 12) @@ -89,11 +89,11 @@ (want-display-level (_type_ symbol symbol) int 12) (want-vis (_type_ symbol) int 13) (want-force-vis (_type_ symbol symbol) int 14) - (dummy-15 () none 15) - (dummy-16 () none 16) - (dummy-17 () none 17) - (dummy-18 () none 18) - (dummy-19 () none 19) + (dummy-15 (_type_ pair) none 15) + (dummy-16 (_type_ float) int 16) + (dummy-17 (_type_ pair) int 17) + (dummy-18 (_type_) int 18) + (dummy-19 (_type_) int 19) (dummy-20 () none 20) ) ) @@ -119,18 +119,18 @@ ;; definition of type continue-point (deftype continue-point (basic) ((name string :offset-assert 4) - (level basic :offset-assert 8) + (level symbol :offset-assert 8) (flags uint32 :offset-assert 12) (trans vector :inline :offset-assert 16) (quat quaternion :inline :offset-assert 32) (camera-trans vector :inline :offset-assert 48) (camera-rot float 9 :offset-assert 64) (load-commands pair :offset-assert 100) - (vis-nick basic :offset-assert 104) - (lev0 basic :offset-assert 108) - (disp0 basic :offset-assert 112) - (lev1 basic :offset-assert 116) - (disp1 basic :offset-assert 120) + (vis-nick symbol :offset-assert 104) + (lev0 symbol :offset-assert 108) + (disp0 symbol :offset-assert 112) + (lev1 symbol :offset-assert 116) + (disp1 symbol :offset-assert 120) ) :method-count-assert 10 :size-assert #x7c @@ -213,7 +213,7 @@ (initialize! (_type_ symbol game-save string) _type_ 9) (adjust (_type_ symbol float handle) float 10) (task-complete? (_type_ game-task) symbol 11) - (lookup-entity-perm-by-aid (_type_ uint) entity-perm 12) + (lookup-entity-perm-by-aid (_type_ actor-id) entity-perm 12) (get-entity-task-perm (_type_ game-task) entity-perm 13) (copy-perms-from-level! (_type_ level) none 14) (copy-perms-to-level! (_type_ level) none 15) diff --git a/test/decompiler/reference/engine/game/generic-obs-h_REF.gc b/test/decompiler/reference/engine/game/generic-obs-h_REF.gc index 759737c39c..556a95506d 100644 --- a/test/decompiler/reference/engine/game/generic-obs-h_REF.gc +++ b/test/decompiler/reference/engine/game/generic-obs-h_REF.gc @@ -3,21 +3,21 @@ ;; definition of type manipy (deftype manipy (process-drawable) - ((new-trans-hook function :offset-assert 176) - (cur-trans-hook function :offset-assert 180) - (cur-event-hook function :offset-assert 184) - (new-joint-anim basic :offset-assert 188) - (new-joint-anim-blend uint64 :offset-assert 192) - (anim-mode basic :offset-assert 200) - (cur-grab-handle uint64 :offset-assert 208) - (cur-target-handle uint64 :offset-assert 216) - (old-grab-pos vector :inline :offset-assert 224) - (joint joint 4 :offset-assert 240) - (new-post-hook function :offset-assert 256) - (cur-post-hook function :offset-assert 260) - (clone-copy-trans basic :offset-assert 264) - (shadow-backup basic :offset-assert 268) - (draw? symbol :offset-assert 272) + ((new-trans-hook function :offset-assert 176) + (cur-trans-hook function :offset-assert 180) + (cur-event-hook function :offset-assert 184) + (new-joint-anim art-joint-anim :offset-assert 188) + (new-joint-anim-blend uint64 :offset-assert 192) + (anim-mode symbol :offset-assert 200) + (cur-grab-handle uint64 :offset-assert 208) + (cur-target-handle uint64 :offset-assert 216) + (old-grab-pos vector :inline :offset-assert 224) + (joint joint 4 :offset-assert 240) + (new-post-hook function :offset-assert 256) + (cur-post-hook function :offset-assert 260) + (clone-copy-trans basic :offset-assert 264) + (shadow-backup basic :offset-assert 268) + (draw? symbol :offset-assert 272) ) :heap-base #xb0 :method-count-assert 20 diff --git a/test/decompiler/reference/engine/game/task/task-control-h_REF.gc b/test/decompiler/reference/engine/game/task/task-control-h_REF.gc index 7b25122601..dbee95ae51 100644 --- a/test/decompiler/reference/engine/game/task/task-control-h_REF.gc +++ b/test/decompiler/reference/engine/game/task/task-control-h_REF.gc @@ -72,7 +72,7 @@ :size-assert #x10 :flag-assert #xc00000010 (:methods - (dummy-9 () none 9) + (dummy-9 (_type_ vector int float process-drawable) none 9) (dummy-10 () none 10) (dummy-11 () none 11) ) @@ -89,10 +89,10 @@ ;; definition of type process-taskable (deftype process-taskable (process-drawable) - ((tasks basic :offset-assert 176) + ((tasks task-control :offset-assert 176) (query gui-query :inline :offset-assert 180) (old-target-pos transformq :inline :offset-assert 208) - (cell-for-task uint8 :offset-assert 256) + (cell-for-task game-task :offset-assert 256) (cell-x uint64 :offset-assert 264) (cam-joint-index int32 :offset-assert 272) (skippable basic :offset-assert 276) @@ -120,39 +120,39 @@ :size-assert #x17c :flag-assert #x350110017c (:methods - (dummy-20 () none 20) - (dummy-21 () none 21) - (dummy-22 () none 22) - (dummy-23 () none 23) - (dummy-24 () none 24) - (dummy-25 () none 25) - (dummy-26 () none 26) - (dummy-27 () none 27) - (dummy-28 () none 28) - (dummy-29 () none 29) - (dummy-30 () none 30) - (dummy-31 () none 31) - (dummy-32 () none 32) - (dummy-33 () none 33) - (dummy-34 () none 34) - (dummy-35 () none 35) - (dummy-36 () none 36) - (dummy-37 () none 37) - (dummy-38 () none 38) - (dummy-39 () none 39) - (dummy-40 () none 40) - (dummy-41 () none 41) - (dummy-42 () none 42) - (dummy-43 () none 43) - (dummy-44 () none 44) - (dummy-45 () none 45) - (dummy-46 () none 46) - (dummy-47 () none 47) - (dummy-48 () none 48) - (dummy-49 () none 49) - (dummy-50 () none 50) - (dummy-51 () none 51) - (dummy-52 () none 52) + (dummy-20 (_type_) none 20) + (dummy-21 (_type_) none 21) + (dummy-22 (_type_) none 22) + (dummy-23 (_type_) none 23) + (dummy-24 (_type_) none 24) + (dummy-25 (_type_) none 25) + (dummy-26 (_type_) none 26) + (dummy-27 (_type_) none 27) + (dummy-28 (_type_) none 28) + (dummy-29 (_type_) none 29) + (dummy-30 (_type_) none 30) + (dummy-31 (_type_) none 31) + (dummy-32 (_type_ symbol) spool-anim 32) + (dummy-33 (_type_) none 33) + (dummy-34 (_type_) none 34) + (dummy-35 (_type_) none 35) + (dummy-36 (_type_) none 36) + (dummy-37 (_type_) none 37) + (dummy-38 (_type_) none 38) + (dummy-39 (_type_) none 39) + (dummy-40 (_type_ object skeleton-group int int vector int) none 40) + (dummy-41 (_type_) none 41) + (dummy-42 (_type_) none 42) + (dummy-43 (_type_) none 43) + (dummy-44 (_type_) none 44) + (dummy-45 (_type_) none 45) + (dummy-46 (_type_) none 46) + (dummy-47 (_type_) none 47) + (dummy-48 (_type_) none 48) + (dummy-49 (_type_) none 49) + (dummy-50 (_type_) none 50) + (dummy-51 (_type_) none 51) + (dummy-52 (_type_) none 52) ) ) diff --git a/test/decompiler/reference/engine/gfx/sky/sky-h_REF.gc b/test/decompiler/reference/engine/gfx/sky/sky-h_REF.gc index a9ef2b4b7e..acb609eb4f 100644 --- a/test/decompiler/reference/engine/gfx/sky/sky-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/sky/sky-h_REF.gc @@ -62,12 +62,12 @@ (r-sun float :offset 16) (r-halo float :offset 20) (r-aurora float :offset 24) - (c-sun-start uint32 :offset 32) - (c-sun-end uint32 :offset 48) - (c-halo-start uint32 :offset 36) - (c-halo-end uint32 :offset 52) - (c-aurora-start uint32 :offset 40) - (c-aurora-end uint32 :offset 56) + (c-sun-start rgba :offset 32) + (c-sun-end rgba :offset 48) + (c-halo-start rgba :offset 36) + (c-halo-end rgba :offset 52) + (c-aurora-start rgba :offset 40) + (c-aurora-end rgba :offset 56) ) :method-count-assert 9 :size-assert #x40 diff --git a/test/decompiler/reference/engine/gfx/sky/sky-utils_REF.gc b/test/decompiler/reference/engine/gfx/sky/sky-utils_REF.gc index 88f9c9162a..af006ffd44 100644 --- a/test/decompiler/reference/engine/gfx/sky/sky-utils_REF.gc +++ b/test/decompiler/reference/engine/gfx/sky/sky-utils_REF.gc @@ -16,7 +16,7 @@ ;; definition for function sky-set-sun-colors (defun sky-set-sun-colors - ((arg0 sky-parms) (arg1 int) (arg2 uint) (arg3 uint) (arg4 uint) (arg5 uint)) + ((arg0 sky-parms) (arg1 int) (arg2 rgba) (arg3 rgba) (arg4 rgba) (arg5 rgba)) (let ((v1-0 (logand arg1 1))) (set! (-> arg0 upload-data sun v1-0 c-sun-start) arg2) (set! (-> arg0 upload-data sun v1-0 c-sun-end) arg3) @@ -31,7 +31,7 @@ ;; definition for function sky-set-sun-colors-sun (defun sky-set-sun-colors-sun - ((arg0 sky-parms) (arg1 int) (arg2 uint) (arg3 uint)) + ((arg0 sky-parms) (arg1 int) (arg2 rgba) (arg3 rgba)) (let ((v1-0 (logand arg1 1))) (set! (-> arg0 upload-data sun v1-0 c-sun-start) arg2) (set! (-> arg0 upload-data sun v1-0 c-sun-end) arg3) @@ -42,7 +42,7 @@ ;; definition for function sky-set-sun-colors-halo (defun sky-set-sun-colors-halo - ((arg0 sky-parms) (arg1 int) (arg2 uint) (arg3 uint)) + ((arg0 sky-parms) (arg1 int) (arg2 rgba) (arg3 rgba)) (let ((v1-0 (logand arg1 1))) (set! (-> arg0 upload-data sun v1-0 c-halo-start) arg2) (set! (-> arg0 upload-data sun v1-0 c-halo-end) arg3) @@ -53,7 +53,7 @@ ;; definition for function sky-set-sun-colors-aurora (defun sky-set-sun-colors-aurora - ((arg0 sky-parms) (arg1 int) (arg2 uint) (arg3 uint)) + ((arg0 sky-parms) (arg1 int) (arg2 rgba) (arg3 rgba)) (let ((v1-0 (logand arg1 1))) (set! (-> arg0 upload-data sun v1-0 c-aurora-start) arg2) (set! (-> arg0 upload-data sun v1-0 c-aurora-end) arg3) @@ -81,7 +81,3 @@ (set! (-> arg0 orbit arg1 max-halo) arg7) #f ) - - - - diff --git a/test/decompiler/reference/engine/load/load-dgo_REF.gc b/test/decompiler/reference/engine/load/load-dgo_REF.gc index 06e068321a..8617935fef 100644 --- a/test/decompiler/reference/engine/load/load-dgo_REF.gc +++ b/test/decompiler/reference/engine/load/load-dgo_REF.gc @@ -142,11 +142,11 @@ ;; definition for function str-play-async ;; INFO: Return type mismatch int vs none. -(defun str-play-async ((name string) (addr pointer)) +(defun str-play-async ((name string) (addr sound-id)) (set! *que-str-lock* #t) (let ((cmd (the-as load-chunk-msg (add-element *play-str-rpc*)))) (charp<-string (-> cmd basename) name) - (set! (-> cmd address) addr) + (set! (-> cmd address) (the-as pointer addr)) (set! (-> cmd result) (load-msg-result done)) ) 0 diff --git a/test/decompiler/reference/engine/load/loader-h_REF.gc b/test/decompiler/reference/engine/load/loader-h_REF.gc index 77103d1290..ef119193ed 100644 --- a/test/decompiler/reference/engine/load/loader-h_REF.gc +++ b/test/decompiler/reference/engine/load/loader-h_REF.gc @@ -12,8 +12,8 @@ :flag-assert #xb00000010 (:methods (new (symbol type int basic) _type_ 0) - (dummy-9 () none 9) - (dummy-10 () none 10) + (dummy-9 (_type_ string symbol kheap int) art-group 9) + (dummy-10 (_type_ art-group) art-group 10) ) ) @@ -83,13 +83,13 @@ (heap kheap :inline :offset-assert 32) (pending-load-file string :offset-assert 48) (pending-load-file-part int32 :offset-assert 52) - (pending-load-file-owner uint64 :offset-assert 56) + (pending-load-file-owner handle :offset-assert 56) (pending-load-file-priority float :offset-assert 64) (load-file string :offset-assert 68) (load-file-part int32 :offset-assert 72) - (load-file-owner uint64 :offset-assert 80) + (load-file-owner handle :offset-assert 80) (load-file-priority float :offset-assert 88) - (buf uint32 :offset-assert 92) + (buf pointer :offset-assert 92) (len int32 :offset-assert 96) (art-group art-group :offset-assert 100) ) @@ -98,13 +98,13 @@ :flag-assert #x1000000068 (:methods (new (symbol type int) _type_ 0) - (dummy-9 (_type_ symbol int symbol float) none 9) - (dummy-10 () none 10) - (dummy-11 () none 11) - (dummy-12 () none 12) - (dummy-13 () none 13) - (dummy-14 () none 14) - (dummy-15 () none 15) + (want-file (_type_ string int handle float) int 9) + (update (_type_) int 10) + (inactive? (_type_) symbol 11) + (file-status (_type_ string int) symbol 12) + (link-file (_type_ art-group) art-group 13) + (unlink-file (_type_ art-group) int 14) + (unlock! (_type_) symbol 15) ) ) @@ -148,11 +148,11 @@ (set! (-> obj index) idx) (set! (-> obj load-file) #f) (set! (-> obj load-file-part) -1) - (set! (-> obj load-file-owner) (the-as uint #f)) + (set! (-> obj load-file-owner) (the-as handle #f)) (set! (-> obj load-file-priority) 100000000.0) (set! (-> obj pending-load-file) #f) (set! (-> obj pending-load-file-part) -1) - (set! (-> obj pending-load-file-owner) (the-as uint #f)) + (set! (-> obj pending-load-file-owner) (the-as handle #f)) (set! (-> obj pending-load-file-priority) 100000000.0) (set! (-> obj art-group) #f) (set! (-> obj status) 'initialize) @@ -164,12 +164,14 @@ ;; definition of type spool-anim (deftype spool-anim (basic) - ((name string :offset 16) - (index int32 :offset-assert 20) - (parts int32 :offset-assert 24) - (priority float :offset-assert 28) - (owner uint64 :offset-assert 32) - (command-list basic :offset-assert 40) + ((name string :offset 16) + (buf1 external-art-buffer :offset 16) + (buf2 external-art-buffer :offset-assert 20) + (index int32 :offset 20) + (parts int32 :offset-assert 24) + (priority float :offset-assert 28) + (owner handle :offset-assert 32) + (command-list pair :offset-assert 40) ) :pack-me :method-count-assert 9 @@ -181,7 +183,7 @@ (defmethod inspect spool-anim ((obj spool-anim)) (format #t "[~8x] ~A~%" obj (-> obj type)) (format #t "~Tname: ~A~%" (-> obj name)) - (format #t "~Tindex: ~D~%" (-> obj index)) + (format #t "~Tindex: ~D~%" (-> obj buf2)) (format #t "~Tparts: ~D~%" (-> obj parts)) (format #t "~Tpriority: ~f~%" (-> obj priority)) (format #t "~Towner: ~D~%" (-> obj owner)) @@ -193,10 +195,10 @@ (deftype external-art-control (basic) ((buffer external-art-buffer 2 :offset-assert 4) (rec spool-anim 3 :inline :offset-assert 16) - (spool-lock uint64 :offset-assert 160) - (reserve-buffer basic :offset-assert 168) + (spool-lock handle :offset-assert 160) + (reserve-buffer external-art-buffer :offset-assert 168) (reserve-buffer-count int32 :offset-assert 172) - (active-stream basic :offset-assert 176) + (active-stream string :offset-assert 176) (preload-stream spool-anim :inline :offset-assert 184) (last-preload-stream spool-anim :inline :offset-assert 232) (end-pad uint32 :offset-assert 276) @@ -206,14 +208,14 @@ :flag-assert #x1100000118 (:methods (new (symbol type) _type_ 0) - (dummy-9 (_type_ symbol) none 9) - (dummy-10 (_type_) none 10) - (dummy-11 () none 11) - (dummy-12 () none 12) - (dummy-13 () none 13) - (dummy-14 () none 14) - (dummy-15 () none 15) - (dummy-16 () none 16) + (update (_type_ symbol) int 9) + (clear-rec (_type_) int 10) + (spool-push (_type_ string int process float) int 11) + (file-status (_type_ string int) symbol 12) + (reserve-alloc (_type_) kheap 13) + (reserve-free (_type_ kheap) int 14) + (none-reserved? (_type_) symbol 15) + (try-preload-stream (_type_ string int process float) int 16) ) ) @@ -257,17 +259,17 @@ (dotimes (rec-idx 3) (set! (-> obj rec rec-idx name) #f) (set! (-> obj rec rec-idx priority) 100000000.0) - (set! (-> obj rec rec-idx owner) (the-as uint #f)) + (set! (-> obj rec rec-idx owner) (the-as handle #f)) ) - (set! (-> obj spool-lock) (the-as uint #f)) + (set! (-> obj spool-lock) (the-as handle #f)) (set! (-> obj reserve-buffer) #f) (set! (-> obj active-stream) #f) (set! (-> obj preload-stream name) #f) (set! (-> obj preload-stream priority) 100000000.0) - (set! (-> obj preload-stream owner) (the-as uint #f)) + (set! (-> obj preload-stream owner) (the-as handle #f)) (set! (-> obj last-preload-stream name) #f) (set! (-> obj last-preload-stream priority) 100000000.0) - (set! (-> obj last-preload-stream owner) (the-as uint #f)) + (set! (-> obj last-preload-stream owner) (the-as handle #f)) obj ) ) diff --git a/test/decompiler/reference/engine/load/loader_REF.gc b/test/decompiler/reference/engine/load/loader_REF.gc new file mode 100644 index 0000000000..9d1219ee95 --- /dev/null +++ b/test/decompiler/reference/engine/load/loader_REF.gc @@ -0,0 +1,1457 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for method 3 of type load-dir +;; Used lq/sq +(defmethod inspect load-dir ((obj load-dir)) + (local-vars (sv-16 basic)) + (format #t "[~8x] ~A~%" obj (-> obj type)) + (format #t "~Tlevel: ~A~%" (-> obj unknown)) + (format #t "~Tallocated-length: ~D~%" (-> obj string-array allocated-length)) + (format #t "~Tlength: ~D~%" (-> obj string-array length)) + (dotimes (s5-0 (-> obj string-array length)) + (let ((s4-0 format) + (s3-0 #t) + (s2-0 "~T [~D] ~S ~A (~D bytes)~%") + (s1-0 s5-0) + (s0-0 (-> obj string-array s5-0)) + ) + (set! sv-16 (-> obj data-array s5-0)) + (let ((t1-0 (mem-size (-> obj data-array s5-0) #f 0))) + (s4-0 s3-0 s2-0 s1-0 s0-0 sv-16 t1-0) + ) + ) + ) + obj + ) + +;; definition for method 8 of type load-dir +;; INFO: Return type mismatch symbol vs load-dir. +(defmethod + mem-usage + load-dir + ((obj load-dir) (arg0 memory-usage-block) (arg1 int)) + (set! (-> arg0 length) (max 82 (-> arg0 length))) + (set! (-> arg0 data 81 name) "array") + (+! (-> arg0 data 81 count) 1) + (let ((v1-6 (asize-of obj))) + (+! (-> arg0 data 81 used) v1-6) + (+! (-> arg0 data 81 total) (logand -16 (+ v1-6 15))) + ) + (set! (-> arg0 length) (max 82 (-> arg0 length))) + (set! (-> arg0 data 81 name) "array") + (set! (-> arg0 data 81 count) (-> arg0 data 81 count)) + (let ((v1-15 (asize-of (-> obj string-array)))) + (+! (-> arg0 data 81 used) v1-15) + (+! (-> arg0 data 81 total) (logand -16 (+ v1-15 15))) + ) + (set! (-> arg0 length) (max 82 (-> arg0 length))) + (set! (-> arg0 data 81 name) "array") + (set! (-> arg0 data 81 count) (-> arg0 data 81 count)) + (let ((v1-24 (asize-of (-> obj data-array)))) + (+! (-> arg0 data 81 used) v1-24) + (+! (-> arg0 data 81 total) (logand -16 (+ v1-24 15))) + ) + (dotimes (s3-0 (-> obj data-array length)) + (mem-usage (-> obj data-array s3-0) arg0 arg1) + ) + (the-as load-dir #f) + ) + +;; definition for method 9 of type load-dir-art-group +(defmethod + dummy-9 + load-dir-art-group + ((obj load-dir-art-group) (arg0 string) (arg1 symbol) (arg2 kheap) (arg3 int)) + (let ((s5-0 (-> obj string-array))) + (dotimes (s3-0 (-> s5-0 length)) + (when (string= arg0 (-> s5-0 s3-0)) + (when arg1 + (let ((v1-4 (art-group-load-check arg0 arg2 arg3))) + (if v1-4 + (set! (-> obj art-group-array s3-0) v1-4) + ) + ) + ) + (return (-> obj art-group-array s3-0)) + ) + ) + (let ((v0-2 (art-group-load-check arg0 arg2 arg3))) + (when v0-2 + (set! (-> s5-0 (-> s5-0 length)) arg0) + (set! (-> obj art-group-array (-> s5-0 length)) v0-2) + (+! (-> s5-0 length) 1) + (+! (-> obj art-group-array length) 1) + ) + v0-2 + ) + ) + ) + +;; definition for method 10 of type load-dir-art-group +(defmethod + dummy-10 + load-dir-art-group + ((obj load-dir-art-group) (arg0 art-group)) + (let ((s4-0 (-> obj string-array))) + (dotimes (s3-0 (-> s4-0 length)) + (when (string= (-> arg0 name) (-> s4-0 s3-0)) + (set! (-> obj art-group-array s3-0) arg0) + (set! arg0 (-> obj art-group-array s3-0)) + (goto cfg-7) + ) + ) + (set! (-> s4-0 (-> s4-0 length)) (-> arg0 name)) + (set! (-> obj art-group-array (-> s4-0 length)) arg0) + (+! (-> s4-0 length) 1) + ) + (+! (-> obj art-group-array length) 1) + (label cfg-7) + arg0 + ) + +;; definition for function drawable-load +(defun drawable-load ((arg0 drawable) (arg1 kheap)) + (local-vars (sp-0 none)) + (cond + ((type-type? (-> arg0 type) string) + sp-0 + (if (< (the-as uint sp-0) (the-as uint *stack-top*)) + (&+ *kernel-sp* -1024) + ) + (let ((s5-1 (the-as drawable (loado (the-as string arg0) arg1)))) + (if (and s5-1 (type-type? (-> s5-1 type) drawable)) + (login s5-1) + ) + ) + ) + ((type-type? (-> arg0 type) drawable) + (login arg0) + ) + ) + ) + +;; definition for function art-load +(defun art-load ((arg0 string) (arg1 kheap)) + (local-vars (sp-0 none)) + sp-0 + (if (< (the-as uint sp-0) (the-as uint *stack-top*)) + (&+ *kernel-sp* -1024) + ) + (let ((s5-0 (loado arg0 arg1))) + (the-as art (if (type-type? (-> (the-as art s5-0) type) art) + (dummy-9 (the-as art s5-0)) + (the-as art #f) + ) + ) + ) + ) + +;; definition for function art-group-load-check +(defun art-group-load-check ((arg0 string) (arg1 kheap) (arg2 int)) + (local-vars (sp-0 none)) + (when *debug-segment* + sp-0 + (if (< (the-as uint sp-0) (the-as uint *stack-top*)) + (&+ *kernel-sp* -1024) + ) + (let + ((s3-1 + (the-as + art-group + (loado (make-file-name (file-kind art-group) arg0 arg2 #f) arg1) + ) + ) + ) + (the-as art-group (cond + ((not s3-1) + (format + 0 + "ERROR: art-group ~A is not a valid file.~%" + arg0 + ) + (the-as art-group #f) + ) + ((not (type-type? (-> s3-1 type) art-group)) + (format + 0 + "ERROR: art-group ~A is not a art-group.~%" + arg0 + ) + (the-as art-group #f) + ) + ((not + (file-info-correct-version? + (-> s3-1 info) + (file-kind art-group) + arg2 + ) + ) + (the-as art-group #f) + ) + (else + (dummy-9 s3-1) + ) + ) + ) + ) + ) + ) + +;; definition for method 9 of type external-art-buffer +(defmethod + want-file + external-art-buffer + ((obj external-art-buffer) + (arg0 string) + (arg1 int) + (arg2 handle) + (arg3 float) + ) + (set! (-> obj pending-load-file) arg0) + (set! (-> obj pending-load-file-part) arg1) + (set! (-> obj pending-load-file-owner) arg2) + (set! (-> obj pending-load-file-priority) arg3) + 0 + ) + +;; definition for method 15 of type external-art-buffer +(defmethod unlock! external-art-buffer ((obj external-art-buffer)) + (set! (-> obj locked?) #f) + #f + ) + +;; definition for method 11 of type external-art-buffer +(defmethod inactive? external-art-buffer ((obj external-art-buffer)) + (!= (-> obj status) 'active) + ) + +;; definition for method 12 of type external-art-buffer +(defmethod + file-status + external-art-buffer + ((obj external-art-buffer) (arg0 string) (arg1 int)) + (when + (and + (name= (-> obj pending-load-file) arg0) + (= (-> obj pending-load-file-part) arg1) + ) + (if (and (name= (-> obj load-file) arg0) (= (-> obj load-file-part) arg1)) + (-> obj status) + 'pending + ) + ) + ) + +;; definition for method 13 of type art-group +(defmethod link-art! art-group ((obj art-group)) + (when obj + (countdown (s5-0 (-> obj length)) + (let* ((art-elt (-> obj data s5-0)) + (janim + (if + (and + (nonzero? art-elt) + (type-type? (-> art-elt type) art-joint-anim) + ) + (the-as art-joint-anim art-elt) + ) + ) + (success #f) + ) + (when janim + (let ((s3-1 3)) + (while (begin + (label cfg-22) + (nonzero? s3-1) + ) + (+! s3-1 -1) + (let + ((janim-group + (art-group-get-by-name + (-> *level* level s3-1) + (-> janim master-art-group-name) + ) + ) + ) + (when janim-group + (cond + ((and + (< (-> janim master-art-group-index) (-> janim-group length)) + (not (-> janim-group data (-> janim master-art-group-index))) + ) + (set! (-> janim-group data (-> janim master-art-group-index)) janim) + (set! success #t) + ) + (else + (countdown (a0-14 (-> janim-group length)) + (when (not (-> janim-group data a0-14)) + (set! (-> janim-group data a0-14) janim) + (set! success #t) + (goto cfg-22) + ) + ) + ) + ) + ) + ) + ) + ) + (if (not success) + (format + 0 + "ERROR: ~A could not find a master slot to link for ~A.~%" + (-> obj name) + janim + ) + ) + ) + ) + ) + ) + obj + ) + +;; definition for method 14 of type art-group +(defmethod unlink-art! art-group ((obj art-group)) + (when obj + (countdown (s5-0 (-> obj length)) + (let* ((art-elt (-> obj data s5-0)) + (janim + (if + (and + (nonzero? art-elt) + (type-type? (-> art-elt type) art-joint-anim) + ) + (the-as art-joint-anim art-elt) + ) + ) + (success #f) + ) + (when janim + (let ((s2-0 3)) + (while (begin + (label cfg-16) + (nonzero? s2-0) + ) + (+! s2-0 -1) + (let + ((janim-group + (art-group-get-by-name + (-> *level* level s2-0) + (-> janim master-art-group-name) + ) + ) + ) + (when janim-group + (countdown (a0-5 (-> janim-group length)) + (when (= janim (-> janim-group data a0-5)) + (set! (-> janim-group data a0-5) #f) + (set! success #t) + (goto cfg-16) + ) + ) + ) + ) + ) + ) + (if (not success) + (format + 0 + "ERROR: ~A could not find a master slot to unlink for ~A.~%" + (-> obj name) + janim + ) + ) + ) + ) + ) + ) + 0 + ) + +;; definition for method 13 of type external-art-buffer +(defmethod + link-file + external-art-buffer + ((obj external-art-buffer) (arg0 art-group)) + (when arg0 + (link-art! arg0) + (set! (-> obj art-group) arg0) + ) + arg0 + ) + +;; definition for method 14 of type external-art-buffer +(defmethod + unlink-file + external-art-buffer + ((obj external-art-buffer) (arg0 art-group)) + (when arg0 + (unlink-art! arg0) + (set! (-> obj art-group) #f) + ) + 0 + ) + +;; definition for method 10 of type external-art-buffer +;; WARN: Found some very strange gotos. Check result carefully, this is not well tested. +(defmethod update external-art-buffer ((obj external-art-buffer)) + (local-vars (v1-54 handle)) + (when + (or + (not (name= (-> obj pending-load-file) (-> obj load-file))) + (!= (-> obj pending-load-file-part) (-> obj load-file-part)) + ) + (when (not (handle->process (-> obj pending-load-file-owner))) + (set! (-> obj pending-load-file) #f) + (set! (-> obj pending-load-file-part) -1) + (set! (-> obj pending-load-file-owner) (the-as handle #f)) + (set! (-> obj pending-load-file-priority) 100000000.0) + ) + (when (= (-> obj status) 'initialize) + (let ((v1-11 (-> obj heap))) + (set! + (-> v1-11 base) + (the-as pointer (+ #x84000 (* #x3dc00 (-> obj index)))) + ) + (set! (-> v1-11 current) (-> v1-11 base)) + (set! (-> v1-11 top-base) (&+ (-> v1-11 base) #x3dc00)) + (set! (-> v1-11 top) (-> v1-11 top-base)) + ) + (set! (-> obj status) 'inactive) + ) + (cond + ((-> obj load-file) + (if (= (-> obj status) 'loading) + (str-load-cancel) + ) + (set! (-> obj load-file) #f) + (set! (-> obj load-file-part) -1) + (set! (-> obj load-file-owner) (the-as handle #f)) + (set! (-> obj load-file-priority) 100000000.0) + ) + (else + (set! (-> obj load-file) (-> obj pending-load-file)) + (set! (-> obj load-file-part) (-> obj pending-load-file-part)) + (set! (-> obj load-file-owner) (-> obj pending-load-file-owner)) + (set! (-> obj load-file-priority) (-> obj pending-load-file-priority)) + ) + ) + ) + (label cfg-18) + (cond + ((-> obj load-file) + (case (-> obj status) + (('active 'reserved) + ) + (('error) + (set! (-> obj status) 'inactive) + (set! (-> obj load-file) #f) + (set! (-> obj load-file-part) -1) + (set! (-> obj load-file-owner) (the-as handle #f)) + (set! (-> obj load-file-priority) 100000000.0) + (set! (-> obj pending-load-file) #f) + (set! (-> obj pending-load-file-part) -1) + (set! (-> obj pending-load-file-owner) (the-as handle #f)) + (set! (-> obj pending-load-file-priority) 100000000.0) + (set! (-> obj art-group) #f) + ) + (('inactive) + (let ((v1-28 (-> obj heap))) + (set! (-> v1-28 current) (-> v1-28 base)) + ) + (cond + ((string= (-> obj load-file) "reserved") + (cond + ((-> *art-control* reserve-buffer) + (format + 0 + "ERROR: trying double reserve ~A when ~A is reserved~%" + obj + (-> *art-control* reserve-buffer) + ) + ) + (else + (set! (-> obj status) 'reserved) + (set! (-> *art-control* reserve-buffer) obj) + ) + ) + ) + ((and + (!= (-> *level* loading-level) (-> *level* level-default)) + (< 81920.0 (-> obj load-file-priority)) + ) + ) + ((str-load + (-> obj load-file) + (-> obj load-file-part) + (logand -64 (&+ (-> obj heap current) 63)) + #x3fc00 + ) + (set! (-> obj status) 'loading) + ) + ) + ) + (('loading) + (case (str-load-status (&-> obj len)) + (('error) + (set! (-> obj status) 'error) + ) + (('busy) + ) + (else + (set! (-> obj buf) (logand -64 (&+ (-> obj heap current) 63))) + (set! (-> obj status) 'loaded) + (goto cfg-18) + ) + ) + ) + (('loaded) + (let ((a0-37 (-> obj buf))) + (set! + (-> obj art-group) + (the-as + art-group + (link a0-37 (-> obj load-file data) (-> obj len) (-> obj heap) 0) + ) + ) + ) + (let ((s4-0 (-> obj art-group)) + (s3-0 (-> obj load-file)) + ) + (cond + ((not s4-0) + (format + 0 + "ERROR: art-group ~A part ~D is not a valid file.~%" + s3-0 + (-> obj load-file-part) + ) + (set! (-> obj status) 'error) + ) + ((not (type-type? (-> s4-0 type) art-group)) + (format + 0 + "ERROR: art-group ~A part ~D is not a art-group.~%" + s3-0 + (-> obj load-file-part) + ) + (set! (-> obj status) 'error) + ) + ((not + (file-info-correct-version? (-> s4-0 info) (file-kind art-group) 0) + ) + (set! (-> obj status) 'error) + ) + (else + (dummy-9 s4-0) + (set! (-> obj status) 'locked) + ) + ) + ) + ) + (('locked) + (when (and (not (-> obj locked?)) (begin + (set! v1-54 (-> obj load-file-owner)) + (nonzero? (l32-false-check v1-54)) + ) + (let ((a0-46 (-> v1-54 process 0))) + (if (= (-> v1-54 pid) (-> a0-46 pid)) + a0-46 + ) + ) + ) + (link-file obj (-> obj art-group)) + (set! (-> obj other locked?) #t) + (set! (-> obj status) 'active) + (goto cfg-18) + ) + ) + ) + ) + (else + (case (-> obj status) + (('initialize) + ) + (('reserved) + (cond + ((= (-> *art-control* reserve-buffer) obj) + (set! (-> *art-control* reserve-buffer) #f) + (set! (-> obj status) 'inactive) + ) + (else + (format + 0 + "ERROR: trying tro free ~A when ~A is reserved~%" + obj + (-> *art-control* reserve-buffer) + ) + ) + ) + ) + (('active) + (unlink-file obj (-> obj art-group)) + (let ((v1-70 (-> obj heap))) + (set! (-> v1-70 current) (-> v1-70 base)) + ) + (set! (-> obj art-group) #f) + (set! (-> obj status) 'inactive) + (when (-> obj other locked?) + (unlock! (-> obj other)) + (update (-> obj other)) + ) + ) + (else + (let ((v1-79 (-> obj heap))) + (set! (-> v1-79 current) (-> v1-79 base)) + ) + (set! (-> obj art-group) #f) + (set! (-> obj status) 'inactive) + ) + ) + ) + ) + 0 + ) + +;; definition for symbol *preload-spool-anims*, type symbol +(define *preload-spool-anims* #t) + +;; definition for method 12 of type external-art-control +(defmethod + file-status + external-art-control + ((obj external-art-control) (arg0 string) (arg1 int)) + (dotimes (s3-0 2) + (let ((v1-3 (file-status (-> obj buffer s3-0) arg0 arg1))) + (if v1-3 + (return v1-3) + ) + ) + ) + #f + ) + +;; definition for method 9 of type external-art-control +(defmethod update external-art-control ((obj external-art-control) (arg0 symbol)) + (if (nonzero? (-> obj reserve-buffer-count)) + (spool-push obj "reserved" 0 *dproc* (if (-> obj reserve-buffer) + -110.0 + -0.5 + ) + ) + ) + (dotimes (v1-5 2) + (set! (-> obj buffer v1-5 frame-lock) #f) + ) + (dotimes (v1-8 3) + (set! (-> obj rec v1-8 buf2) #f) + ) + (dotimes (s4-0 2) + (let ((s3-0 (-> obj rec s4-0))) + (when (-> s3-0 name) + (dotimes (s2-0 2) + (when + (and + (file-status (-> obj buffer s2-0) (-> s3-0 name) (-> s3-0 parts)) + (not (-> obj buffer s2-0 frame-lock)) + ) + (set! (-> obj buffer s2-0 frame-lock) #t) + (set! (-> s3-0 buf2) (-> obj buffer s2-0)) + (set! (-> obj buffer s2-0 pending-load-file-owner) (-> s3-0 owner)) + (set! (-> obj buffer s2-0 load-file-owner) (-> s3-0 owner)) + (set! (-> obj buffer s2-0 pending-load-file-priority) (-> s3-0 priority)) + (set! (-> obj buffer s2-0 load-file-priority) (-> s3-0 priority)) + (goto cfg-24) + ) + ) + ) + ) + (label cfg-24) + ) + (dotimes (s4-1 2) + (let ((s3-1 (-> obj rec s4-1))) + (when (and (-> s3-1 name) (not (-> s3-1 buf2))) + (if (and (not *preload-spool-anims*) (>= (-> s3-1 priority) 0.0)) + (goto cfg-46) + ) + (dotimes (s2-1 2) + (when (not (-> obj buffer s2-1 frame-lock)) + (set! (-> obj buffer s2-1 frame-lock) #t) + (want-file + (-> obj buffer s2-1) + (-> s3-1 name) + (-> s3-1 parts) + (-> s3-1 owner) + (-> s3-1 priority) + ) + (set! (-> s3-1 buf2) (-> obj buffer s2-1)) + (goto cfg-46) + ) + ) + ) + ) + (label cfg-46) + ) + (when (not (-> obj reserve-buffer)) + (let ((s4-2 (-> obj rec 0 buf2))) + (if + (and + s4-2 + (-> s4-2 locked?) + (not (string= (-> s4-2 pending-load-file) "reserved")) + (not (string= (-> s4-2 other pending-load-file) "reserved")) + ) + (want-file + (-> s4-2 other) + (the-as string #f) + -1 + (the-as handle #f) + 100000000.0 + ) + ) + ) + ) + (dotimes (s4-3 2) + (update (-> obj buffer s4-3)) + ) + (let ((s4-4 (the-as spool-anim #f))) + (countdown (s3-2 3) + (if + (and + (-> obj rec s3-2 name) + (not (name= (-> obj rec s3-2 name) (-> obj active-stream))) + ) + (set! s4-4 (the-as spool-anim (-> obj rec))) + ) + ) + (if + (and + (-> obj preload-stream name) + (or (not s4-4) (< (-> obj preload-stream priority) (-> s4-4 priority))) + ) + (set! s4-4 (-> obj preload-stream)) + ) + (cond + (s4-4 + (mem-copy! (&-> (-> obj last-preload-stream) type) (&-> s4-4 type) 44) + (str-play-queue (-> s4-4 name)) + ) + (else + (set! (-> obj last-preload-stream name) #f) + (set! (-> obj last-preload-stream owner) (the-as handle #f)) + ) + ) + ) + (when (and arg0 *display-art-control*) + (dotimes (s5-1 3) + (let ((t9-10 format) + (a0-29 *stdcon*) + (a1-9 "rec ~d ~S ~D ~f ~A~%") + (a2-5 s5-1) + (a3-3 (-> obj rec s5-1 name)) + (t0-3 (-> obj rec s5-1 parts)) + (t1-0 (-> obj rec s5-1 priority)) + (v1-123 (handle->process (-> obj rec s5-1 owner))) + ) + (t9-10 a0-29 a1-9 a2-5 a3-3 t0-3 t1-0 (if v1-123 + (-> v1-123 name) + ) + ) + ) + ) + (dotimes (s5-2 2) + (let ((t9-11 format) + (a0-30 *stdcon*) + (a1-10 "buf ~d ~C ~S ~D ~A ~A~%") + (a2-6 s5-2) + (a3-4 (if (-> obj buffer s5-2 locked?) + 108 + 32 + ) + ) + (t0-4 (-> obj buffer s5-2 pending-load-file)) + (t1-1 (-> obj buffer s5-2 pending-load-file-part)) + (t2-5 (-> obj buffer s5-2 status)) + (v1-144 + (handle->process (-> obj buffer s5-2 pending-load-file-owner)) + ) + ) + (t9-11 a0-30 a1-10 a2-6 a3-4 t0-4 t1-1 t2-5 (if v1-144 + (-> v1-144 name) + ) + ) + ) + ) + (format *stdcon* " a: ~S~%" (-> obj active-stream)) + (let ((t9-13 format) + (a0-32 *stdcon*) + (a1-12 " p: ~S ~A~%") + (a2-8 (-> obj preload-stream name)) + (v1-149 (handle->process (-> obj preload-stream owner))) + ) + (t9-13 a0-32 a1-12 a2-8 (if v1-149 + (-> v1-149 name) + ) + ) + ) + (let ((t9-14 format) + (a0-33 *stdcon*) + (a1-13 " q: ~S ~A~%") + (a2-9 (-> obj last-preload-stream name)) + (v1-152 (handle->process (-> obj last-preload-stream owner))) + ) + (t9-14 a0-33 a1-13 a2-9 (if v1-152 + (-> v1-152 name) + ) + ) + ) + ) + 0 + ) + +;; definition for method 15 of type external-art-control +(defmethod none-reserved? external-art-control ((obj external-art-control)) + (zero? (-> obj reserve-buffer-count)) + ) + +;; definition for method 13 of type external-art-control +(defmethod reserve-alloc external-art-control ((obj external-art-control)) + (set! (-> obj reserve-buffer-count) 1) + (if (-> obj reserve-buffer) + (-> obj reserve-buffer heap) + ) + ) + +;; definition for method 14 of type external-art-control +(defmethod + reserve-free + external-art-control + ((obj external-art-control) (arg0 kheap)) + (cond + ((zero? (-> obj reserve-buffer-count)) + (format + 0 + "ERROR: illegal attempt to free a buffer #x~X which had not been reserved (none reserved).~%" + arg0 + ) + ) + ((not (-> obj reserve-buffer)) + (set! (-> obj reserve-buffer-count) 0) + 0 + ) + ((= (-> obj reserve-buffer heap) arg0) + (want-file + (-> obj reserve-buffer) + (the-as string #f) + -1 + (the-as handle #f) + 100000000.0 + ) + (update (-> obj reserve-buffer)) + (set! (-> obj reserve-buffer-count) 0) + 0 + ) + (else + (format + 0 + "ERROR: illegal attempt to free a buffer #x~X which had not been reserved (buffer unknown).~%" + arg0 + ) + ) + ) + 0 + ) + +;; definition for method 10 of type external-art-control +(defmethod clear-rec external-art-control ((obj external-art-control)) + (cond + ((!= *master-mode* 'game) + (dotimes (s5-0 3) + (when (name= (-> obj rec s5-0 name) "reserved") + (let ((v1-5 s5-0)) + (cond + ((zero? v1-5) + (mem-copy! + (&+ (the-as pointer (-> obj rec)) -4) + (&-> (-> obj rec 1) type) + 44 + ) + (mem-copy! (&-> (-> obj rec 1) type) (&-> (-> obj rec 2) type) 44) + ) + ((= v1-5 1) + (mem-copy! (&-> (-> obj rec 1) type) (&-> (-> obj rec 2) type) 44) + ) + ) + ) + (set! (-> obj rec 2 type) spool-anim) + (set! (-> obj rec 2 name) #f) + (set! (-> obj rec 2 priority) 100000000.0) + (set! (-> obj rec 2 owner) (the-as handle #f)) + ) + ) + ) + (else + (dotimes (v1-19 3) + (set! (-> obj rec v1-19 type) spool-anim) + (set! (-> obj rec v1-19 name) #f) + (set! (-> obj rec v1-19 priority) 100000000.0) + (set! (-> obj rec v1-19 owner) (the-as handle #f)) + ) + (set! (-> obj preload-stream type) spool-anim) + (set! (-> obj preload-stream name) #f) + (set! (-> obj preload-stream priority) 100000000.0) + (set! (-> obj preload-stream owner) (the-as handle #f)) + ) + ) + 0 + ) + +;; definition for method 16 of type external-art-control +(defmethod + try-preload-stream + external-art-control + ((obj external-art-control) + (arg0 string) + (arg1 int) + (arg2 process) + (arg3 float) + ) + (when (and (= arg3 -99.0) arg2) + (let ((a0-2 (target-pos 0))) + (set! + arg3 + (vector-vector-distance + a0-2 + (-> (the-as process-drawable arg2) root trans) + ) + ) + ) + ) + (when + (not + (and + (-> obj preload-stream name) + (>= arg3 (-> obj preload-stream priority)) + ) + ) + (set! (-> obj preload-stream name) arg0) + (set! (-> obj preload-stream parts) arg1) + (set! (-> obj preload-stream priority) arg3) + (let ((v1-8 (if arg2 + (-> arg2 ppointer) + ) + ) + ) + (set! + (-> obj preload-stream owner) + (new 'static 'handle + :process v1-8 + :pid (-> (the-as process (-> v1-8 0)) pid) + ) + ) + ) + ) + 0 + ) + +;; definition for method 11 of type external-art-control +(defmethod + spool-push + external-art-control + ((obj external-art-control) + (arg0 string) + (arg1 int) + (arg2 process) + (arg3 float) + ) + (when (and (= arg3 -99.0) arg2) + (let ((a0-2 (target-pos 0))) + (set! + arg3 + (vector-vector-distance + a0-2 + (-> (the-as process-drawable arg2) root trans) + ) + ) + ) + ) + (cond + ((and (= arg1 (-> obj rec 0 parts)) (name= arg0 (-> obj rec 0 name))) + (if (>= arg3 (-> obj rec 0 priority)) + (return (the-as int #f)) + ) + (mem-copy! (&-> (-> obj rec) 0 type) (&-> (-> obj rec 1) type) 44) + (mem-copy! (&-> (-> obj rec 1) type) (&-> (-> obj rec 2) type) 44) + (set! (-> obj rec 2 name) #f) + (set! (-> obj rec 2 owner) (the-as handle #f)) + ) + ((and (= arg1 (-> obj rec 1 parts)) (name= arg0 (-> obj rec 1 name))) + (if (>= arg3 (-> obj rec 1 priority)) + (return (the-as int #f)) + ) + (mem-copy! (&-> (-> obj rec 1) type) (&-> (-> obj rec 2) type) 44) + (set! (-> obj rec 2 name) #f) + (set! (-> obj rec 2 owner) (the-as handle #f)) + ) + ((and (= arg1 (-> obj rec 2 parts)) (name= arg0 (-> obj rec 2 name))) + (if (>= arg3 (-> obj rec 2 priority)) + (return (the-as int #f)) + ) + (set! (-> obj rec 2 name) #f) + (set! (-> obj rec 2 owner) (the-as handle #f)) + ) + ) + (cond + ((< arg3 (-> obj rec 0 priority)) + (mem-copy! (&-> (-> obj rec 2) type) (&-> (-> obj rec 1) type) 44) + (mem-copy! (&-> (-> obj rec 1) type) (&-> (-> obj rec) 0 type) 44) + (set! (-> obj rec 0 name) arg0) + (set! (-> obj rec 0 parts) arg1) + (set! (-> obj rec 0 priority) arg3) + (let ((v1-34 (if arg2 + (-> arg2 ppointer) + ) + ) + ) + (set! + (-> obj rec 0 owner) + (new 'static 'handle + :process v1-34 + :pid (-> (the-as process (-> v1-34 0)) pid) + ) + ) + ) + ) + ((< arg3 (-> obj rec 1 priority)) + (mem-copy! (&-> (-> obj rec 2) type) (&-> (-> obj rec 1) type) 44) + (set! (-> obj rec 1 name) arg0) + (set! (-> obj rec 1 parts) arg1) + (set! (-> obj rec 1 priority) arg3) + (let* ((a0-18 arg2) + (v1-40 (if a0-18 + (-> a0-18 ppointer) + ) + ) + ) + (set! + (-> obj rec 1 owner) + (new 'static 'handle + :process v1-40 + :pid (-> (the-as process (-> v1-40 0)) pid) + ) + ) + ) + ) + ((< arg3 (-> obj rec 2 priority)) + (set! (-> obj rec 2 name) arg0) + (set! (-> obj rec 2 parts) arg1) + (set! (-> obj rec 2 priority) arg3) + (let* ((a0-22 arg2) + (v1-44 (if a0-22 + (-> a0-22 ppointer) + ) + ) + ) + (set! + (-> obj rec 2 owner) + (new 'static 'handle + :process v1-44 + :pid (-> (the-as process (-> v1-44 0)) pid) + ) + ) + ) + ) + ) + 0 + ) + +;; definition for function ja-play-spooled-anim +;; WARN: Stack slot offset 24 signed mismatch +;; WARN: Stack slot offset 24 signed mismatch +;; WARN: Stack slot offset 24 signed mismatch +;; WARN: Stack slot offset 24 signed mismatch +;; WARN: Stack slot offset 24 signed mismatch +(defbehavior + ja-play-spooled-anim process-drawable + ((arg0 spool-anim) + (arg1 art-joint-anim) + (arg2 art-joint-anim) + (arg3 (function process-drawable symbol)) + ) + (local-vars + (spool-part int) + (sv-24 float) + (old-skel-status uint) + (sv-32 int) + (sv-40 int) + (sv-48 int) + (sv-56 int) + (spool-sound sound-id) + (sv-72 int) + ) + (set! spool-part 0) + (set! sv-24 -17.0) + (set! old-skel-status (-> self skel status)) + (set! sv-32 -2) + (set! sv-40 0) + (set! sv-48 0) + (set! sv-56 0) + (set! spool-sound (new-sound-id)) + (dummy-17 *load-state* (-> arg0 command-list)) + (let* ((a0-2 *setting-control*) + (t9-2 (method-of-object a0-2 set-setting!)) + (a1-2 self) + (a2-1 'spooling) + (v1-6 self) + ) + (t9-2 a0-2 a1-2 a2-1 (the-as symbol (if v1-6 + (-> v1-6 ppointer) + ) + ) + 0.0 0 + ) + ) + (set! (-> self skel status) (logior (-> self skel status) 7)) + (kill-current-level-hint '() '() 'die) + (level-hint-surpress!) + (copy-settings-from-target! *setting-control*) + (when + (or (handle->process (-> *art-control* spool-lock)) (!= *master-mode* 'game)) + (cond + (arg1 + (when (!= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + arg1 + ) + (ja-channel-push! 1 15) + (let ((s2-0 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! s2-0 arg1 num-func-identity) + (set! (-> s2-0 frame-num) 0.0) + ) + ) + ) + (else + (ja-channel-set! 0) + ) + ) + (while + (or + (handle->process (-> *art-control* spool-lock)) + (!= *master-mode* 'game) + ) + (format #t "WARNING: ---------------------> loader stall on lock~%") + (if (arg3 self) + (goto cfg-88) + ) + (let* ((a0-16 *art-control*) + (t9-11 (method-of-object a0-16 spool-push)) + (a1-8 (-> arg0 name)) + (a2-4 spool-part) + (t0-1 -9.0) + ) + (t9-11 a0-16 a1-8 a2-4 self t0-1) + ) + (suspend) + (when arg1 + (let ((a0-17 (-> self skel root-channel 0))) + (set! (-> a0-17 param 0) 1.0) + (joint-control-channel-group-eval! + a0-17 + (the-as art-joint-anim #f) + num-func-loop! + ) + ) + ) + ) + ) + (let ((v1-46 (if self + (-> self ppointer) + ) + ) + ) + (set! + (-> *art-control* spool-lock) + (new 'static 'handle + :process v1-46 + :pid (-> (the-as process (-> v1-46 0)) pid) + ) + ) + ) + (set! sv-48 (the-as int (-> *display* base-frame-counter))) + (while (< spool-part (-> arg0 parts)) + (let* ((a0-27 *art-control*) + (t9-13 (method-of-object a0-27 spool-push)) + (a1-11 (-> arg0 name)) + (a2-6 spool-part) + (t0-2 -20.0) + ) + (t9-13 a0-27 a1-11 a2-6 self t0-2) + ) + (update *art-control* #f) + (let* ((a0-29 *art-control*) + (t9-15 (method-of-object a0-29 spool-push)) + (a1-13 (-> arg0 name)) + (a2-7 spool-part) + (t0-3 -20.0) + ) + (t9-15 a0-29 a1-13 a2-7 self t0-3) + ) + (when (!= (file-status *art-control* (-> arg0 name) spool-part) 'active) + (cond + (arg1 + (when (!= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + arg1 + ) + (ja-channel-set! 1) + (let ((s2-2 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! s2-2 arg1 num-func-identity) + (set! (-> s2-2 frame-num) 0.0) + ) + ) + ) + (else + (ja-channel-set! 0) + ) + ) + (while (!= (file-status *art-control* (-> arg0 name) spool-part) 'active) + (if (arg3 self) + (goto cfg-88) + ) + (let* ((a0-35 *art-control*) + (t9-21 (method-of-object a0-35 spool-push)) + (a1-16 (-> arg0 name)) + (a2-10 spool-part) + (t0-4 -20.0) + ) + (t9-21 a0-35 a1-16 a2-10 self t0-4) + ) + (format + #t + "WARNING: ---------------------> loader stall on art ~S ~D~%" + (-> arg0 name) + spool-part + ) + (suspend) + (when arg1 + (let ((a0-37 (-> self skel root-channel 0))) + (set! (-> a0-37 param 0) 1.0) + (joint-control-channel-group-eval! + a0-37 + (the-as art-joint-anim #f) + num-func-loop! + ) + ) + ) + ) + ) + (let* ((a0-39 *art-control*) + (t9-25 (method-of-object a0-39 spool-push)) + (a1-20 (-> arg0 name)) + (a2-14 spool-part) + (t0-5 -20.0) + ) + (t9-25 a0-39 a1-20 a2-14 self t0-5) + ) + (let + ((s2-4 + (the-as + art-joint-anim + (dummy-10 (-> self draw art-group) (-> arg0 name) art-joint-anim) + ) + ) + ) + (cond + (s2-4 + (ja-channel-set! 1) + (let ((a0-42 (-> self skel root-channel 0))) + (set! (-> a0-42 frame-group) s2-4) + (set! (-> a0-42 param 0) (the float (+ (-> s2-4 data 0 length) -1))) + (set! (-> a0-42 param 1) 1.0) + (set! (-> a0-42 frame-num) 0.0) + (joint-control-channel-group! a0-42 s2-4 num-func-seek!) + ) + (when (zero? spool-part) + (str-play-async (-> arg0 name) spool-sound) + (set! (-> *art-control* active-stream) (-> arg0 name)) + ) + (let* ((f30-0 (* 0.05859375 (-> s2-4 speed))) + (f28-0 + (+ sv-24 (/ (the float (+ (-> s2-4 data 0 length) -1)) f30-0)) + ) + ) + (set! sv-72 (current-str-pos spool-sound)) + (set! sv-40 (the-as int (-> *display* base-frame-counter))) + (until (begin + (let* ((a0-55 *art-control*) + (t9-32 (method-of-object a0-55 spool-push)) + (a1-24 (-> arg0 name)) + (a2-17 spool-part) + (t0-6 -20.0) + ) + (t9-32 a0-55 a1-24 a2-17 self t0-6) + ) + (cond + ((< (+ spool-part 1) (-> arg0 parts)) + (let* ((a0-57 *art-control*) + (t9-33 (method-of-object a0-57 spool-push)) + (a1-25 (-> arg0 name)) + (a2-18 (+ spool-part 1)) + (t0-7 -10.0) + ) + (t9-33 a0-57 a1-25 a2-18 self t0-7) + ) + ) + (else + (set! + (-> self skel status) + (logand -5 (the-as int (-> self skel status))) + ) + ) + ) + (dummy-16 *load-state* (ja-aframe-num 0)) + (cond + ((and (< sv-32 sv-72) (= (current-str-id) spool-sound)) + (set! + sv-56 + (+ + sv-56 + (the-as + int + (- + (-> *display* base-frame-counter) + (-> *display* old-base-frame-counter) + ) + ) + ) + ) + (set! sv-40 (the-as int (-> *display* base-frame-counter))) + ) + (else + 0 + ) + ) + (set! sv-32 sv-72) + (set! sv-48 (the-as int (-> *display* base-frame-counter))) + (suspend) + (let + ((f0-14 + (* (- (the float (current-str-pos spool-sound)) sv-24) f30-0) + ) + (a0-69 (-> self skel root-channel 0)) + ) + (set! + (-> a0-69 param 0) + (the float (+ (-> a0-69 frame-group data 0 length) -1)) + ) + (set! (-> a0-69 param 1) 1.0) + (set! (-> a0-69 frame-num) f0-14) + (joint-control-channel-group! + a0-69 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + (let ((v0-39 (current-str-pos spool-sound))) + (set! sv-72 v0-39) + (>= (the float v0-39) f28-0) + ) + ) + (if (= (-> self skel root-channel 0) (-> self skel channel)) + (set! (-> self skel status) (logior (-> self skel status) 32)) + ) + (if + (or + (arg3 self) + (and + (<= sv-72 0) + (>= (the-as int (- (-> *display* base-frame-counter) sv-40)) 1200) + ) + (and (< 300 sv-56) (<= sv-72 0)) + ) + (goto cfg-88) + ) + ) + (set! sv-24 f28-0) + ) + (set! + (-> self skel status) + (logand -33 (the-as int (-> self skel status))) + ) + ) + (else + (format + 0 + "ERROR: ~A in spool anim loop for ~A ~D, but not loaded.~" + self + (-> arg0 name) + spool-part + ) + (goto cfg-88) + ) + ) + ) + (set! spool-part (+ spool-part 1)) + ) + (set! spool-part (+ spool-part -1)) + (label cfg-88) + (ja-abort-spooled-anim arg0 arg2 spool-part) + 0 + ) + +;; definition for function ja-abort-spooled-anim +(defbehavior + ja-abort-spooled-anim process-drawable + ((arg0 spool-anim) (arg1 art-joint-anim) (arg2 int)) + (dummy-18 *load-state*) + (str-play-stop (-> arg0 name)) + (set! (-> *art-control* active-stream) #f) + (set! (-> self skel status) (logand -7 (the-as int (-> self skel status)))) + (if (zero? (logand (-> self skel status) 1)) + (set! (-> self skel status) (logand -2 (the-as int (-> self skel status)))) + ) + (clear-pending-settings-from-process *setting-control* self 'spooling) + (cond + ((and arg1 (>= arg2 0)) + (ja-channel-push! 1 30) + (set! (-> self skel root-channel 0 frame-group) arg1) + (while (!= (-> self skel root-channel 0) (-> self skel channel)) + (let* ((a0-11 *art-control*) + (t9-4 (method-of-object a0-11 spool-push)) + (a1-3 (-> arg0 name)) + (a2-2 arg2) + (t0-0 -20.0) + ) + (t9-4 a0-11 a1-3 a2-2 self t0-0) + ) + (suspend) + (let ((a0-12 (-> self skel root-channel 0))) + (set! + (-> a0-12 param 0) + (the float (+ (-> a0-12 frame-group data 0 length) -1)) + ) + (set! (-> a0-12 param 1) 1.0) + (joint-control-channel-group-eval! + a0-12 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + (else + (ja-channel-set! 0) + ) + ) + (set! (-> *art-control* spool-lock) (the-as handle #f)) + 0 + ) + +;; failed to figure out what this is: +(if (zero? *art-control*) + (set! *art-control* (new 'global 'external-art-control)) + ) diff --git a/test/decompiler/reference/engine/sound/gsound_REF.gc b/test/decompiler/reference/engine/sound/gsound_REF.gc index b740b9e99a..276015164c 100644 --- a/test/decompiler/reference/engine/sound/gsound_REF.gc +++ b/test/decompiler/reference/engine/sound/gsound_REF.gc @@ -20,20 +20,20 @@ ;; definition of type sound-iop-info (deftype sound-iop-info (basic) - ((frame uint32 :offset 16) - (strpos int32 :offset-assert 20) - (str-id uint32 :offset-assert 24) - (str-id-sign int32 :offset 24) - (freemem uint32 :offset-assert 28) - (chinfo uint8 48 :offset-assert 32) - (freemem2 uint32 :offset-assert 80) - (nocd uint32 :offset-assert 84) - (dirtycd uint32 :offset-assert 88) - (diskspeed uint32 2 :offset-assert 92) - (lastspeed uint32 :offset-assert 100) - (dupseg int32 :offset-assert 104) - (times uint32 41 :offset-assert 108) - (times-seq uint32 :offset-assert 272) + ((frame uint32 :offset 16) + (strpos int32 :offset-assert 20) + (str-id sound-id :offset-assert 24) + (str-id-sign int32 :offset 24) + (freemem uint32 :offset-assert 28) + (chinfo uint8 48 :offset-assert 32) + (freemem2 uint32 :offset-assert 80) + (nocd uint32 :offset-assert 84) + (dirtycd uint32 :offset-assert 88) + (diskspeed uint32 2 :offset-assert 92) + (lastspeed uint32 :offset-assert 100) + (dupseg int32 :offset-assert 104) + (times uint32 41 :offset-assert 108) + (times-seq uint32 :offset-assert 272) ) :method-count-assert 9 :size-assert #x114 @@ -69,12 +69,13 @@ ) ;; definition for function current-str-id +;; INFO: Return type mismatch int vs sound-id. (defun current-str-id () - (-> *sound-iop-info* str-id-sign) + (the-as sound-id (-> *sound-iop-info* str-id-sign)) ) ;; definition for function current-str-pos -(defun current-str-pos ((arg0 int)) +(defun current-str-pos ((arg0 sound-id)) (let ((v0-0 -1)) (if (= arg0 (-> *sound-iop-info* str-id)) (set! v0-0 (-> *sound-iop-info* strpos)) diff --git a/test/decompiler/reference/engine/target/target-h_REF.gc b/test/decompiler/reference/engine/target/target-h_REF.gc index 5903a04d3f..a6adf61f1b 100644 --- a/test/decompiler/reference/engine/target/target-h_REF.gc +++ b/test/decompiler/reference/engine/target/target-h_REF.gc @@ -80,7 +80,7 @@ (deftype sidekick (process-drawable) ((control control-info :offset 112) (anim-seed uint64 :offset 192) - (shadow-in-movie? basic :offset-assert 200) + (shadow-in-movie? symbol :offset-assert 200) ) :heap-base #x60 :method-count-assert 20 diff --git a/test/decompiler/reference/kernel/gkernel-h_REF.gc b/test/decompiler/reference/kernel/gkernel-h_REF.gc index 469dc48f19..57535c360b 100644 --- a/test/decompiler/reference/kernel/gkernel-h_REF.gc +++ b/test/decompiler/reference/kernel/gkernel-h_REF.gc @@ -8,12 +8,12 @@ (allow-to-run process-mask :offset-assert 12) (next-pid int32 :offset-assert 16) (fast-stack-top pointer :offset-assert 20) - (current-process basic :offset-assert 24) + (current-process process :offset-assert 24) (relocating-process basic :offset-assert 28) (relocating-min int32 :offset-assert 32) (relocating-max int32 :offset-assert 36) (relocating-offset int32 :offset-assert 40) - (low-memory-message basic :offset-assert 44) + (low-memory-message symbol :offset-assert 44) ) :method-count-assert 9 :size-assert #x30 @@ -304,13 +304,13 @@ (trans (function object) :offset-assert 20) (post function :offset-assert 24) (enter (function object object object object object object object) :offset-assert 28) - (event (function basic int basic event-message-block object) :offset-assert 32) + (event (function process int symbol event-message-block object) :offset-assert 32) ) :method-count-assert 9 :size-assert #x24 :flag-assert #x900000024 (:methods - (new (symbol type basic function (function object) (function object object object object object object object) (function object) (function basic int basic event-message-block object)) _type_ 0) + (new (symbol type basic function (function object) (function object object object object object object object) (function object) (function process int symbol event-message-block object)) _type_ 0) ) ) @@ -330,11 +330,11 @@ ;; definition of type event-message-block (deftype event-message-block (structure) - ((to basic :offset-assert 0) - (from basic :offset-assert 4) - (num-params int32 :offset-assert 8) - (message basic :offset-assert 12) - (param uint64 7 :offset-assert 16) + ((to process :offset-assert 0) + (from process :offset-assert 4) + (num-params int32 :offset-assert 8) + (message symbol :offset-assert 12) + (param uint64 7 :offset-assert 16) ) :method-count-assert 9 :size-assert #x48 diff --git a/test/decompiler/reference/kernel/gstate_REF.gc b/test/decompiler/reference/kernel/gstate_REF.gc index 0215c62611..2f193edaf3 100644 --- a/test/decompiler/reference/kernel/gstate_REF.gc +++ b/test/decompiler/reference/kernel/gstate_REF.gc @@ -12,7 +12,7 @@ (trans (function object)) (enter (function object object object object object object object)) (exit (function object)) - (event (function basic int basic event-message-block object)) + (event (function process int symbol event-message-block object)) ) (let ((obj diff --git a/test/goalc/source_templates/with_game/test-fancy-static-fields.gc b/test/goalc/source_templates/with_game/test-fancy-static-fields.gc index 10e92b07e5..7e7bb7e845 100644 --- a/test/goalc/source_templates/with_game/test-fancy-static-fields.gc +++ b/test/goalc/source_templates/with_game/test-fancy-static-fields.gc @@ -21,11 +21,11 @@ :name "name" :bf (new 'static 'basic-field-test-bitfield :f1 1 :f3 1) :kc (new 'static 'kernel-context :next-pid 12) - :kci (new 'static 'kernel-context :current-process 'asdf :relocating-min 33)))) + :kci (new 'static 'kernel-context :low-memory-message 'asdf :relocating-min 33)))) (format #t "~A ~D ~f ~A ~D" (-> obj name) (-> obj kc next-pid) (-> obj pos) (-> obj list) (-> obj bf)) (format #t " ~D ~D ~A ~A~%" (-> obj kci relocating-min) (logand 15 (the int (-> obj kci))) (-> obj kci type) - (-> obj kci current-process)) + (-> obj kci low-memory-message)) ) \ No newline at end of file diff --git a/test/offline/offline_test_main.cpp b/test/offline/offline_test_main.cpp index 882d3d931d..ebdc133878 100644 --- a/test/offline/offline_test_main.cpp +++ b/test/offline/offline_test_main.cpp @@ -151,7 +151,10 @@ const std::unordered_set g_functions_to_skip_compiling = { "get-task-status", // aligner - return-from-thread, currently not supported - "(method 9 align-control)"}; + "(method 9 align-control)", + + // loader - decompiler bug with detecting handle macros + "(method 10 external-art-buffer)"}; // default location for the data. It can be changed with a command line argument. std::string g_iso_data_path = ""; From 7632b90a17bbdfe4d006540d847c86228244259a Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 23 Jul 2021 22:32:11 +0000 Subject: [PATCH 29/63] Updated github pages site --- docs/gh-pages-proj/src/config/progress.json | 2 +- docs/index.html | 2 +- docs/js/about.1ae0a652.js | 2 ++ docs/js/about.1ae0a652.js.map | 1 + docs/js/about.3506395f.js | 2 -- docs/js/about.3506395f.js.map | 1 - docs/js/{app.a68fab1a.js => app.2883824b.js} | 4 ++-- docs/js/{app.a68fab1a.js.map => app.2883824b.js.map} | 2 +- .../{chunk-vendors.492c07dc.js => chunk-vendors.1146ead9.js} | 4 ++-- docs/js/chunk-vendors.1146ead9.js.map | 1 + docs/js/chunk-vendors.492c07dc.js.map | 1 - 11 files changed, 11 insertions(+), 11 deletions(-) create mode 100644 docs/js/about.1ae0a652.js create mode 100644 docs/js/about.1ae0a652.js.map delete mode 100644 docs/js/about.3506395f.js delete mode 100644 docs/js/about.3506395f.js.map rename docs/js/{app.a68fab1a.js => app.2883824b.js} (97%) rename docs/js/{app.a68fab1a.js.map => app.2883824b.js.map} (98%) rename docs/js/{chunk-vendors.492c07dc.js => chunk-vendors.1146ead9.js} (99%) create mode 100644 docs/js/chunk-vendors.1146ead9.js.map delete mode 100644 docs/js/chunk-vendors.492c07dc.js.map diff --git a/docs/gh-pages-proj/src/config/progress.json b/docs/gh-pages-proj/src/config/progress.json index dc88a446cd..d0ce812962 100644 --- a/docs/gh-pages-proj/src/config/progress.json +++ b/docs/gh-pages-proj/src/config/progress.json @@ -1,7 +1,7 @@ { "jak1": { "locPercentage": { - "value": 107272, + "value": 107859, "label": "Lines of Code" } } diff --git a/docs/index.html b/docs/index.html index c3cc716780..ee11c79843 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1 +1 @@ -OpenGOAL Tooling
\ No newline at end of file +OpenGOAL Tooling
\ No newline at end of file diff --git a/docs/js/about.1ae0a652.js b/docs/js/about.1ae0a652.js new file mode 100644 index 0000000000..f8020ff8dd --- /dev/null +++ b/docs/js/about.1ae0a652.js @@ -0,0 +1,2 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};c(y,a,(function(){return this}));var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){"object"===typeof globalThis?globalThis.regeneratorRuntime=i:Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":107859,"label":"Lines of Code"}}}')}}]); +//# sourceMappingURL=about.1ae0a652.js.map \ No newline at end of file diff --git a/docs/js/about.1ae0a652.js.map b/docs/js/about.1ae0a652.js.map new file mode 100644 index 0000000000..28a0fe012e --- /dev/null +++ b/docs/js/about.1ae0a652.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?4723","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","globalThis","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.1ae0a652.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/js/about.3506395f.js b/docs/js/about.3506395f.js deleted file mode 100644 index 216cdd5445..0000000000 --- a/docs/js/about.3506395f.js +++ /dev/null @@ -1,2 +0,0 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{"02e2":function(t,e,n){},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),a=n("7b0b"),s=n("50c4"),o=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=a(this),n=s(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:o(t)),i}})},"0bc6":function(t,e,n){},"14dc":function(t,e,n){"use strict";n("02e2")},"20f6":function(t,e,n){},"25a8":function(t,e,n){},"36a7":function(t,e,n){},4804:function(t,e,n){},"4b85":function(t,e,n){},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"615b":function(t,e,n){},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),a=n("e2cc"),s=n("0366"),o=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),d=n("f183").fastKey,f=n("69f3"),p=f.set,v=f.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){o(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],{that:t,AS_ENTRIES:n})})),f=v(e),g=function(t,e,n){var i,r,a=f(t),s=m(t,e);return s?s.value=n:(a.last=s={index:r=d(e,!0),key:e,value:n,previous:i=a.last,next:void 0,removed:!1},a.first||(a.first=s),i&&(i.next=s),h?a.size++:t.size++,"F"!==r&&(a.index[r]=s)),t},m=function(t,e){var n,i=f(t),r=d(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return a(u.prototype,{clear:function(){var t=this,e=f(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=f(e),i=m(e,t);if(i){var r=i.next,a=i.previous;delete n.index[i.index],i.removed=!0,a&&(a.next=r),r&&(r.previous=a),n.first==i&&(n.first=r),n.last==i&&(n.last=a),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=f(this),i=s(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!m(this,t)}}),a(u.prototype,n?{get:function(t){var e=m(this,t);return e&&e.value},set:function(t,e){return g(this,0===t?0:t,e)}}:{add:function(t){return g(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),a=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=a(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),a=n("94ca"),s=n("6eeb"),o=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),d=n("1c7e"),f=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),g=-1!==t.indexOf("Weak"),m=v?"set":"add",b=r[t],y=b&&b.prototype,x=b,_={},w=function(t){var e=y[t];s(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})},S=a(t,"function"!=typeof b||!(g||y.forEach&&!h((function(){(new b).entries().next()}))));if(S)x=n.getConstructor(e,t,v,m),o.REQUIRED=!0;else if(a(t,!0)){var j=new x,O=j[m](g?{}:-0,1)!=j,C=h((function(){j.has(1)})),k=d((function(t){new b(t)})),L=!g&&h((function(){var t=new b,e=5;while(e--)t[m](e,e);return!t.has(-0)}));k||(x=e((function(e,n){l(e,x,t);var i=p(new b,e,x);return void 0!=n&&c(n,i[m],{that:i,AS_ENTRIES:v}),i})),x.prototype=y,y.constructor=x),(C||L)&&(w("delete"),w("has"),v&&w("get")),(L||O)&&w(m),g&&y.clear&&delete y.clear}return _[t]=x,i({global:!0,forced:x!=b},_),f(x,t),g||n.setStrong(x,t,v),x}},"6ece":function(t,e,n){},7435:function(t,e,n){},"86cc":function(t,e,n){},"87cf":function(t,e,n){t.exports=n.p+"img/logo-text-colored.5cda006b.png"},"8a79":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,a=n("50c4"),s=n("5a34"),o=n("1d80"),c=n("ab13"),l=n("c430"),u="".endsWith,h=Math.min,d=c("endsWith"),f=!l&&!d&&!!function(){var t=r(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!f&&!d},{endsWith:function(t){var e=String(o(this));s(t);var n=arguments.length>1?arguments[1]:void 0,i=a(e.length),r=void 0===n?i:h(a(n),i),c=String(t);return u?u.call(e,c,r):e.slice(r-c.length,r)===c}})},"8d4f":function(t,e,n){},"8efc":function(t,e,n){},"96cf":function(t,e,n){var i=function(t){"use strict";var e,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch($){c=function(t,e,n){return t[e]=n}}function l(t,e,n,i){var r=e&&e.prototype instanceof g?e:g,a=Object.create(r.prototype),s=new B(i||[]);return a._invoke=O(t,n,s),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch($){return{type:"throw",arg:$}}}t.wrap=l;var h="suspendedStart",d="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function b(){}var y={};y[a]=function(){return this};var x=Object.getPrototypeOf,_=x&&x(x(E([])));_&&_!==n&&i.call(_,a)&&(y=_);var w=b.prototype=g.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function n(r,a,s,o){var c=u(t[r],t,a);if("throw"!==c.type){var l=c.arg,h=l.value;return h&&"object"===typeof h&&i.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,o)}),(function(t){n("throw",t,s,o)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,o)}))}o(c.arg)}var r;function a(t,i){function a(){return new e((function(e,r){n(t,i,e,r)}))}return r=r?r.then(a,a):a()}this._invoke=a}function O(t,e,n){var i=h;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return z()}n.method=r,n.arg=a;while(1){var s=n.delegate;if(s){var o=C(s,n);if(o){if(o===v)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===h)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var c=u(t,e,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function C(t,n){var i=t.iterator[n.method];if(i===e){if(n.delegate=null,"throw"===n.method){if(t.iterator["return"]&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=u(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var a=r.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function E(t){if(t){var n=t[a];if(n)return n.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var r=-1,s=function n(){while(++r=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),l=i.call(s,"finallyLoc");if(c&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,i){return this.delegate={iterator:E(t),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=i}catch(r){Function("r","regeneratorRuntime = r")(i)}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("link")},{link:function(t){return r(this,"a","href",t)}})},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),a=n("0366"),s=function(t,e,n,o,c,l,u,h){var d,f=c,p=0,v=!!u&&a(u,h,3);while(p0&&i(d))f=s(t,e,d,r(d.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[f]=d}f++}p++}return f};t.exports=s},bb51:function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{attrs:{fluid:""}},[i("v-row",{staticClass:"bg-img",attrs:{justify:"center",align:"center"}},[i("v-col",{attrs:{cols:"12",align:"center"}},[i("v-img",{attrs:{"max-height":"150","max-width":"250",src:n("87cf")}}),i("br"),i("h4",[t._v(" Reviving the Language that Brought us the Jak & Daxter Series ")]),i("br"),i("v-row",{attrs:{justify:"center"}},[i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"#project-status",rounded:"",color:"primary"}},[i("v-icon",[t._v("mdi-calendar-check")]),t._v(" Project Status ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{rounded:"",color:"secondary",href:"#recent-updates"}},[i("v-icon",[t._v("mdi-update")]),t._v(" Recent Updates ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"/jak-project/api-docs.html",target:"_blank",rounded:"",color:"deep-purple"}},[i("v-icon",[t._v("mdi-file-document")]),t._v(" Documentation ")],1)],1),i("v-col",{attrs:{cols:"auto"}},[i("v-btn",{attrs:{href:"https://github.com/water111/jak-project",target:"_blank",rounded:"",color:"accent"}},[i("v-icon",[t._v("mdi-git")]),t._v(" Contribute ")],1)],1)],1)],1)],1),i("v-row",[i("v-container",[i("v-row",{staticStyle:{"margin-top":"3em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"project-status"}},[t._v(" Project Status ")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h2",{staticClass:"orange--text text--lighten-3"},[t._v("Jak 1 - Black Label")])])],1),i("v-row",{attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{cols:"10"}},[i("v-subheader",[t._v("Decompilation")]),i("v-progress-linear",{attrs:{color:"teal","buffer-value":"0",value:t.jak1BlackLabelStatus.decompDone,stream:"",height:"25"}},[t._v(" "+t._s(t.jak1BlackLabelStatus.decompLabel)+" - "+t._s(t.jak1BlackLabelStatus.decompDone)+"% ")])],1)],1),i("v-row",{staticStyle:{"margin-top":"5em"},attrs:{align:"center",justify:"center"}},[i("v-col",{attrs:{align:"center"}},[i("h1",{staticClass:"orange--text text--darken-1",attrs:{id:"recent-updates"}},[t._v(" Recent Updates ")])])],1),i("v-row",{staticStyle:{"margin-bottom":"10em"},attrs:{justify:"center"}},t._l(t.recentPRs,(function(e,n){return i("v-col",{key:"pr"-n,attrs:{cols:"4"}},[i("v-card",[i("v-card-text",{staticStyle:{"overflow-y":"auto",height:"300px"}},[i("p",{staticClass:"text-h5 orange--text text--lighten-3"},[t._v(" "+t._s(e.title)+" ")]),i("p",[t._v(" "+t._s(e.user.login)+" ")]),i("div",{staticClass:"text--primary"},[i("pre",{staticClass:"wrapped-pre"},[t._v(t._s(e.body))])])]),i("v-card-actions",[i("v-btn",{attrs:{text:"",color:"accent",href:e.html_url,target:"_blank"}},[t._v(" View Change ")])],1)],1)],1)})),1)],1)],1)],1)},r=[];n("d3b7");function a(t,e,n,i,r,a,s){try{var o=t[a](s),c=o.value}catch(l){return void n(l)}o.done?e(c):Promise.resolve(c).then(i,r)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(i,r){var s=t.apply(e,n);function o(t){a(s,i,r,o,c,"next",t)}function c(t){a(s,i,r,o,c,"throw",t)}o(void 0)}))}}n("fb6a"),n("96cf");var o=n("f5f2"),c=o,l={name:"Home",components:{},data:function(){return{recentPRs:[],jak1BlackLabelStatus:{decompDone:c.jak1.locPercentage.value/75e4*100,decompLabel:c.jak1.locPercentage.label}}},mounted:function(){var t=s(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,this.loadRecentPRs();case 2:case"end":return t.stop()}}),t,this)})));function e(){return t.apply(this,arguments)}return e}(),methods:{truncateString:function(t,e){return t.length<=e?t:t.slice(0,e)+"..."},loadRecentPRs:function(){var t=s(regeneratorRuntime.mark((function t(){var e,n,i,r,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,fetch("https://api.github.com/search/issues?q=repo:water111/jak-project+is:pr+is:merged&sort=updated");case 2:return e=t.sent,t.next=5,e.json();case 5:for(n=t.sent,i=9,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(_["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(_["b"])("class must be an object",this),e):(Object(w["d"])(t)?e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(_["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(_["b"])("class must be an object",this),e;if(Object(w["d"])(t))e.style=Object(g["a"])(Object(g["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),i=Object(v["a"])(n,2),r=i[0],a=i[1];e.class=Object(g["a"])(Object(g["a"])({},e.class),{},Object(x["a"])({},r+"--text",!0)),a&&(e.class["text--"+a]=!0)}return e}}}),j=m["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(x["a"])({},"elevation-".concat(this.elevation),!0)}}}),O=n("80d2"),C=m["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(O["d"])(this.height),n=Object(O["d"])(this.minHeight),i=Object(O["d"])(this.minWidth),r=Object(O["d"])(this.maxHeight),a=Object(O["d"])(this.maxWidth),s=Object(O["d"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),i&&(t.minWidth=i),r&&(t.maxHeight=r),a&&(t.maxWidth=a),s&&(t.width=s),t}}}),k=(n("a4d3"),n("e01a"),n("d28b"),n("3ca3"),n("ddb0"),n("06c5"));function L(t,e){var n="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Object(k["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(o)throw a}}}}n("a15b");var B=m["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,i=e.split(" "),r=L(i);try{for(r.s();!(n=r.n()).done;){var a=n.value;t.push("rounded-".concat(a))}}catch(s){r.e(s)}finally{r.f()}}else e&&t.push("rounded");return t.length>0?Object(x["a"])({},t.join(" "),!0):{}}}}),E=n("7560"),z=n("58df"),$=Object(z["a"])(y,S,j,C,B,E["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}}),T=$;n("99af"),n("8d4f");function N(t,e){if("undefined"!==typeof window&&"IntersectionObserver"in window){var n=e.modifiers||{},i=e.value,r="object"===Object(p["a"])(i)?i:{handler:i,options:{}},a=r.handler,s=r.options,o=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){var r=e.some((function(t){return t.isIntersecting}));!a||n.quiet&&!t._observe.init||n.once&&!r&&t._observe.init||a(e,i,r),r&&n.once?P(t):t._observe.init=!0}}),s);t._observe={init:!1,observer:o},o.observe(t)}}function P(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var R={inserted:N,unbind:P},I=R,V=S.extend({name:"v-progress-circular",directives:{intersect:I},props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20,isVisible:!0}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--visible":this.isVisible,"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(O["d"])(this.calculatedSize),width:Object(O["d"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)},onObserve:function(t,e,n){this.isVisible=n}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),A=V;function W(t,e){return function(){return Object(_["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function D(t,e,n){var i=e&&n?{register:W(e,n),unregister:W(e,n)}:null;return m["a"].extend({name:"registrable-inject",inject:Object(x["a"])({},t,{default:i})})}function F(t,e,n){return D(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(x["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}})}F("itemGroup");function H(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return m["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(x["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(x["a"])(t,e,(function(t){this.isActive=!!t})),Object(x["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}H();var M={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function q(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return m["a"].extend({name:"positionable",props:t.length?Object(O["f"])(M,t):M})}var G=q(),J=(n("9911"),n("5319"),n("b0c0"),n("7435"),Symbol("rippleStop")),Y=80;function X(t,e){t.style.transform=e,t.style.webkitTransform=e}function U(t,e){t.style.opacity=e.toString()}function K(t){return"TouchEvent"===t.constructor.name}function Q(t){return"KeyboardEvent"===t.constructor.name}var Z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!Q(t)){var a=e.getBoundingClientRect(),s=K(t)?t.touches[t.touches.length-1]:t;i=s.clientX-a.left,r=s.clientY-a.top}var o=0,c=.3;e._ripple&&e._ripple.circle?(c=.15,o=e.clientWidth/2,o=n.center?o:o+Math.sqrt(Math.pow(i-o,2)+Math.pow(r-o,2))/4):o=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var l="".concat((e.clientWidth-2*o)/2,"px"),u="".concat((e.clientHeight-2*o)/2,"px"),h=n.center?l:"".concat(i-o,"px"),d=n.center?u:"".concat(r-o,"px");return{radius:o,scale:c,x:h,y:d,centerX:l,centerY:u}},tt={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var a=Z(t,e,n),s=a.radius,o=a.scale,c=a.x,l=a.y,u=a.centerX,h=a.centerY,d="".concat(2*s,"px");r.className="v-ripple__animation",r.style.width=d,r.style.height=d,e.appendChild(i);var f=window.getComputedStyle(e);f&&"static"===f.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),X(r,"translate(".concat(c,", ").concat(l,") scale3d(").concat(o,",").concat(o,",").concat(o,")")),U(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),X(r,"translate(".concat(u,", ").concat(h,") scale3d(1,1,1)")),U(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),U(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function et(t){return"undefined"===typeof t||!!t}function nt(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched&&!t[J]){if(t[J]=!0,K(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||Q(t),n._ripple.class&&(e.class=n._ripple.class),K(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){tt.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),Y)}else tt.show(t,n,e)}}function it(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){it(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),tt.hide(e)}}function rt(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var at=!1;function st(t){at||t.keyCode!==O["j"].enter&&t.keyCode!==O["j"].space||(at=!0,nt(t))}function ot(t){at=!1,it(t)}function ct(t){!0===at&&(at=!1,it(t))}function lt(t,e,n){var i=et(e.value);i||tt.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",nt,{passive:!0}),t.addEventListener("touchend",it,{passive:!0}),t.addEventListener("touchmove",rt,{passive:!0}),t.addEventListener("touchcancel",it),t.addEventListener("mousedown",nt),t.addEventListener("mouseup",it),t.addEventListener("mouseleave",it),t.addEventListener("keydown",st),t.addEventListener("keyup",ot),t.addEventListener("blur",ct),t.addEventListener("dragstart",it,{passive:!0})):!i&&n&&ut(t)}function ut(t){t.removeEventListener("mousedown",nt),t.removeEventListener("touchstart",nt),t.removeEventListener("touchend",it),t.removeEventListener("touchmove",rt),t.removeEventListener("touchcancel",it),t.removeEventListener("mouseup",it),t.removeEventListener("mouseleave",it),t.removeEventListener("keydown",st),t.removeEventListener("keyup",ot),t.removeEventListener("dragstart",it),t.removeEventListener("blur",ct)}function ht(t,e,n){lt(t,e,!1)}function dt(t){delete t._ripple,ut(t)}function ft(t,e){if(e.value!==e.oldValue){var n=et(e.oldValue);lt(t,e,n)}}var pt={bind:ht,unbind:dt,update:ft},vt=pt,gt=m["a"].extend({name:"routable",directives:{Ripple:vt},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactPath:Boolean,exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){var t;return null!=(t=this.ripple)?t:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,i=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(x["a"])(t,this.to?"nativeOn":"on",Object(g["a"])(Object(g["a"])({},this.$listeners),{},{click:this.click})),Object(x["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var r=this.activeClass,a=this.exactActiveClass||r;this.proxyClass&&(r="".concat(r," ").concat(this.proxyClass).trim(),a="".concat(a," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(i.props,{to:this.to,exact:n,exactPath:this.exactPath,activeClass:r,exactActiveClass:a,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(i.attrs.href=this.href);return this.target&&(i.attrs.target=this.target),{tag:e,data:i}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(O["h"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}}),mt=(n("c96a"),m["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})),bt=Object(z["a"])(T,gt,G,mt,F("btnToggle"),H("inputValue")),yt=bt.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,plain:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({"v-btn":!0},gt.options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--disabled":this.disabled,"v-btn--is-elevated":this.isElevated,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--has-bg":this.hasBg,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--plain":this.plain,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},computedElevation:function(){if(!this.disabled)return j.options.computed.computedElevation.call(this)},computedRipple:function(){var t,e=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=(t=this.ripple)?t:e)},hasBg:function(){return!this.text&&!this.plain&&!this.outlined&&!this.icon},isElevated:function(){return Boolean(!this.icon&&!this.text&&!this.outlined&&!this.depressed&&!this.disabled&&!this.plain&&(null==this.elevation||Number(this.elevation)>0))},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(g["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(v["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(_["a"])(i,r,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(A,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.generateRouteLink(),i=n.tag,r=n.data,a=this.hasBg?this.setBackgroundColor:this.setTextColor;return"button"===i&&(r.attrs.type=this.type,r.attrs.disabled=this.disabled),r.attrs.value=["string","number"].includes(Object(p["a"])(this.value))?this.value:JSON.stringify(this.value),t(i,this.disabled?r:a(this.color,r),e)}}),xt=(n("0481"),n("615b"),n("6ece"),n("b64b"),{styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/});function _t(t){var e,n={},i=L(t.split(xt.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,a=r.split(xt.styleProp),s=Object(v["a"])(a,2),o=s[0],c=s[1];o=o.trim(),o&&("string"===typeof c&&(c=c.trim()),n[Object(O["a"])(o)]=c)}}catch(l){i.e(l)}finally{i.f()}return n}function wt(){var t,e={},n=arguments.length;while(n--)for(var i=0,r=Object.keys(arguments[n]);i0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var i="transition".concat(n.props.group?"-group":""),r={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(r.on.leave=Ct(r.on.leave,(function(t){var e=t.offsetTop,n=t.offsetLeft,i=t.offsetWidth,r=t.offsetHeight;t._transitionInitialStyles={position:t.style.position,top:t.style.top,left:t.style.left,width:t.style.width,height:t.style.height},t.style.position="absolute",t.style.top=e+"px",t.style.left=n+"px",t.style.width=i+"px",t.style.height=r+"px"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){if(t&&t._transitionInitialStyles){var e=t._transitionInitialStyles,n=e.position,i=e.top,r=e.left,a=e.width,s=e.height;delete t._transitionInitialStyles,t.style.position=n||"",t.style.top=i||"",t.style.left=r||"",t.style.width=a||"",t.style.height=s||""}}))),n.props.hideOnLeave&&(r.on.leave=Ct(r.on.leave,(function(t){t._initialDisplay=t.style.display,t.style.display="none"})),r.on.afterLeave=Ct(r.on.afterLeave,(function(t){t&&(t.style.display=t._initialDisplay||"")}))),e(i,wt(n.data,r),n.children)}}}function Lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,i){return n("transition",wt(i.data,{props:{name:t},on:e}),i.children)}}}var Bt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(O["o"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(x["a"])({transition:t.style.transition,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle;e.style.setProperty("transition","none","important"),e.style.overflow="hidden";var a="".concat(e[i],"px");e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=a}))},afterEnter:a,enterCancelled:a,leave:function(t){t._initialStyle=Object(x["a"])({transition:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),a(e)}function a(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},Et=(kt("carousel-transition"),kt("carousel-reverse-transition"),kt("tab-transition"),kt("tab-reverse-transition"),kt("menu-transition"),kt("fab-transition","center center","out-in"),kt("dialog-transition"),kt("dialog-bottom-transition"),kt("dialog-top-transition"),kt("fade-transition")),zt=(kt("scale-transition"),kt("scroll-x-transition"),kt("scroll-x-reverse-transition"),kt("scroll-y-transition"),kt("scroll-y-reverse-transition"),kt("slide-x-transition"));kt("slide-x-reverse-transition"),kt("slide-y-transition"),kt("slide-y-reverse-transition"),Lt("expand-transition",Bt()),Lt("expand-x-transition",Bt("",!0));function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return m["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(x["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(x["a"])({},t,(function(t){this.internalLazyValue=t}))})}var Tt=$t(),Nt=Tt,Pt=Object(z["a"])(S,q(["absolute","fixed","top","bottom"]),Nt,E["a"]),Rt=Pt.extend({name:"v-progress-linear",directives:{intersect:I},props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0,isVisible:!0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(O["d"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(O["d"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(x["a"])(t,this.isReversed?"right":"left",Object(O["d"])(this.normalizedValue,"%")),Object(x["a"])(t,"width",Object(O["d"])(Math.max(0,this.normalizedBuffer-this.normalizedValue),"%")),t},classes:function(){return Object(g["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped,"v-progress-linear--visible":this.isVisible},this.themeClasses)},computedTransition:function(){return this.indeterminate?Et:zt},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(O["d"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(O["i"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(x["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},onObserve:function(t,e,n){this.isVisible=n},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,directives:[{name:"intersect",value:this.onObserve}],style:{bottom:this.bottom?0:void 0,height:this.active?Object(O["d"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),It=Rt,Vt=m["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(It,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}}),At=Object(z["a"])(Vt,gt,T).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(g["a"])(Object(g["a"])({"v-card":!0},gt.options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},T.options.computed.classes.call(this))},styles:function(){var t=Object(g["a"])({},T.options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=Vt.options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}}),Wt=Object(O["e"])("v-card__actions"),Dt=(Object(O["e"])("v-card__subtitle"),Object(O["e"])("v-card__text")),Ft=(Object(O["e"])("v-card__title"),n("4ec9"),n("159b"),n("2ca0"),n("4b85"),["sm","md","lg","xl"]),Ht=function(){return Ft.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),Mt=function(){return Ft.reduce((function(t,e){return t["offset"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),qt=function(){return Ft.reduce((function(t,e){return t["order"+Object(O["o"])(e)]={type:[String,Number],default:null},t}),{})}(),Gt={col:Object.keys(Ht),offset:Object.keys(Mt),order:Object.keys(qt)};function Jt(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var Yt=new Map,Xt=m["a"].extend({name:"v-col",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])(Object(g["a"])({cols:{type:[Boolean,String,Number],default:!1}},Ht),{},{offset:{type:[String,Number],default:null}},Mt),{},{order:{type:[String,Number],default:null}},qt),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,i=e.data,r=e.children,a=(e.parent,"");for(var s in n)a+=String(n[s]);var o=Yt.get(a);return o||function(){var t,e;for(e in o=[],Gt)Gt[e].forEach((function(t){var i=n[t],r=Jt(e,t,i);r&&o.push(r)}));var i=o.some((function(t){return t.startsWith("col-")}));o.push((t={col:!i||!n.cols},Object(x["a"])(t,"col-".concat(n.cols),n.cols),Object(x["a"])(t,"offset-".concat(n.offset),n.offset),Object(x["a"])(t,"order-".concat(n.order),n.order),Object(x["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),Yt.set(a,o)}(),t(n.tag,wt(i,{class:o}),r)}});n("4de4"),n("20f6");function Ut(t){return m["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,a=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var s=r.attrs;if(s){r.attrs={};var o=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));o.length&&(r.staticClass+=" ".concat(o.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,a)}})}var Kt,Qt=Ut("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,wt(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}});n("2532"),n("7db0"),n("4804");function Zt(t){return["fas","far","fal","fab","fad","fak"].some((function(e){return t.includes(e)}))}function te(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(Kt||(Kt={}));var ee=Object(z["a"])(y,S,mt,E["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(O["n"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(O["k"])(t).find((function(e){return t[e]}));return e&&Kt[e]||Object(O["d"])(this.size)},getDefaultData:function(){return{staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(g["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$}},getSvgWrapperData:function(){var t=this.getSize(),e=Object(g["a"])(Object(g["a"])({},this.getDefaultData()),{},{style:t?{fontSize:t,height:t,width:t}:void 0});return this.applyColors(e),e},applyColors:function(t){t.class=Object(g["a"])(Object(g["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",a=t.indexOf("-"),s=a<=-1;s?n.push(t):(r=t.slice(0,a),Zt(r)&&(r="")),i.class[r]=!0,i.class[t]=!s;var o=this.getSize();return o&&(i.style={fontSize:o}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n={class:"v-icon__svg",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":!0}},i=this.getSize();return i&&(n.style={fontSize:i,height:i,width:i}),e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e("svg",n,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n={class:{"v-icon__component":!0}},i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(this.hasClickListener?"button":"span",this.getSvgWrapperData(),[e(r,n)])}},render:function(t){var e=this.getIcon();return"string"===typeof e?te(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}}),ne=m["a"].extend({name:"v-icon",$_wrapperFor:ee,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(ee,n,r?[r]:i)}}),ie=(n("8a79"),n("8efc"),n("36a7"),Object(z["a"])(C).extend({name:"v-responsive",props:{aspectRatio:[String,Number],contentClass:String},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content",class:this.contentClass},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}})),re=ie,ae="undefined"!==typeof window&&"IntersectionObserver"in window,se=Object(z["a"])(re,E["a"]).extend({name:"v-img",directives:{intersect:I},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return this.src&&"object"===Object(p["a"])(this.src)?{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}:{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!ae||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src),this.image&&(this.normalisedSrc.src.endsWith(".svg")||this.normalisedSrc.src.startsWith("data:image/svg+xml"))&&(this.image.naturalHeight&&this.image.naturalWidth?(this.naturalWidth=this.image.naturalWidth,this.calculatedAspectRatio=this.image.naturalWidth/this.image.naturalHeight):this.calculatedAspectRatio=1)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(_["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),e.src=this.normalisedSrc.src,this.$emit("loadstart",this.normalisedSrc.src),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,a=t.naturalWidth;r||a?(e.naturalWidth=a,e.calculatedAspectRatio=a/r):t.complete||!e.isLoading||e.hasError||null==n||setTimeout(i,n)};i()},genContent:function(){var t=re.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=re.options.render.call(this,t),n=wt(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:ae?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}}),oe=["sm","md","lg","xl"],ce=["start","end","center"];function le(t,e){return oe.reduce((function(n,i){return n[t+Object(O["o"])(i)]=e(),n}),{})}var ue=function(t){return[].concat(ce,["baseline","stretch"]).includes(t)},he=le("align",(function(){return{type:String,default:null,validator:ue}})),de=function(t){return[].concat(ce,["space-between","space-around"]).includes(t)},fe=le("justify",(function(){return{type:String,default:null,validator:de}})),pe=function(t){return[].concat(ce,["space-between","space-around","stretch"]).includes(t)},ve=le("alignContent",(function(){return{type:String,default:null,validator:pe}})),ge={align:Object.keys(he),justify:Object.keys(fe),alignContent:Object.keys(ve)},me={align:"align",justify:"justify",alignContent:"align-content"};function be(t,e,n){var i=me[t];if(null!=n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return i+="-".concat(n),i.toLowerCase()}}var ye=new Map,xe=m["a"].extend({name:"v-row",functional:!0,props:Object(g["a"])(Object(g["a"])(Object(g["a"])({tag:{type:String,default:"div"},dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:ue}},he),{},{justify:{type:String,default:null,validator:de}},fe),{},{alignContent:{type:String,default:null,validator:pe}},ve),render:function(t,e){var n=e.props,i=e.data,r=e.children,a="";for(var s in n)a+=String(n[s]);var o=ye.get(a);return o||function(){var t,e;for(e in o=[],ge)ge[e].forEach((function(t){var i=n[t],r=be(e,t,i);r&&o.push(r)}));o.push((t={"no-gutters":n.noGutters,"row--dense":n.dense},Object(x["a"])(t,"align-".concat(n.align),n.align),Object(x["a"])(t,"justify-".concat(n.justify),n.justify),Object(x["a"])(t,"align-content-".concat(n.alignContent),n.alignContent),t)),ye.set(a,o)}(),t(n.tag,wt(i,{staticClass:"row",class:o}),r)}}),_e=(n("0bc6"),Object(z["a"])(E["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(g["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),we=Object(h["a"])(u,i,r,!1,null,"7ed77054",null);e["default"]=we.exports;f()(we,{VBtn:yt,VCard:At,VCardActions:Wt,VCardText:Dt,VCol:Xt,VContainer:Qt,VIcon:ne,VImg:se,VProgressLinear:Rt,VRow:xe,VSubheader:_e})},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return r(this,"tt","","")}})},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),a=n("af03");i({target:"String",proto:!0,forced:a("small")},{small:function(){return r(this,"small","","")}})},f5f2:function(t){t.exports=JSON.parse('{"jak1":{"locPercentage":{"value":107272,"label":"Lines of Code"}}}')}}]); -//# sourceMappingURL=about.3506395f.js.map \ No newline at end of file diff --git a/docs/js/about.3506395f.js.map b/docs/js/about.3506395f.js.map deleted file mode 100644 index f427544fff..0000000000 --- a/docs/js/about.3506395f.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/Home.vue?7177","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/assets/img/logo-text-colored.png","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/Home.vue?963a","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/progress.js","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?493c","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/Home.vue?1dce","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.small.js"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","collection","collectionStrong","module","exports","init","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","type","index","first","last","size","AS_ENTRIES","getInternalState","define","key","value","previous","state","entry","getEntry","next","removed","prototype","clear","data","prev","forEach","callbackfn","boundFunction","has","get","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","indexOf","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","getOwnPropertyDescriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","$endsWith","endsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","writable","searchString","endPosition","len","end","search","slice","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","obj","enumerable","configurable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","createHTML","forcedStringHTMLMethod","link","url","isArray","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticStyle","jak1BlackLabelStatus","decompDone","_s","decompLabel","_l","pr","title","user","login","body","html_url","staticRenderFns","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","projectProgress","require","components","recentPRs","mounted","methods","truncateString","str","num","loadRecentPRs","makeWatcher","$data","val","attrs$","listeners$","created","immediate","props","color","setBackgroundColor","console","setTextColor","colorName","elevation","Number","computed","computedElevation","elevationClasses","parseInt","height","maxHeight","maxWidth","minHeight","minWidth","width","measurableStyles","styles","_createForOfIteratorHelper","o","allowArrayLike","it","Array","unsupportedIterableToArray","F","s","n","e","_e","normalCompletion","didErr","step","_e2","rounded","Boolean","tile","roundedClasses","composite","mixins","outlined","shaped","tag","default","classes","render","class","style","on","h","$slots","inserted","window","modifiers","binding","handler","options","observer","IntersectionObserver","el","isIntersecting","unbind","observe","Intersect","directives","intersect","button","indeterminate","rotate","radius","isVisible","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","beforeDestroy","toggle","factory","prop","event","model","required","watch","$emit","availableProps","absolute","bottom","fixed","left","right","top","selected","rippleStop","DELAY_RIPPLE","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","document","animation","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","passive","removeListeners","directive","update","wasEnabled","Ripple","append","exact","exactPath","exactActiveClass","href","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","click","generateRouteLink","tabindex","path","onRouteChange","$refs","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","plain","retainFocusOnClick","text","defaultRipple","circle","hasBg","isElevated","isRound","breakingProps","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","pattern","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","dest","mergeTransitions","origin","functional","group","hideOnLeave","leaveAbsolute","mode","beforeEnter","offsetHeight","position","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","createJavascriptTransition","internalLazyValue","internalValue","Proxyable","active","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","loaderHeight","genProgress","progress","hover","img","raised","VCardActions","VCardText","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cache","cols","alignSelf","validator","cacheKey","classList","hasColClasses","id","fluid","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","hasClickListener","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","d","renderSvgIconComponent","component","$_wrapperFor","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","startsWith","naturalHeight","onError","getSrc","pollForSize","timeout","poll","content","__genPlaceholder","placeholder","appear","node","once","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","inset","VBtn","VCard","VCol","VContainer","VIcon","VImg","VProgressLinear","VRow","VSubheader"],"mappings":"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","file":"js/about.3506395f.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","module.exports = __webpack_public_path__ + \"img/logo-text-colored.5cda006b.png\";","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"bg-img\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"align\":\"center\"}},[_c('v-img',{attrs:{\"max-height\":\"150\",\"max-width\":\"250\",\"src\":require(\"@/assets/img/logo-text-colored.png\")}}),_c('br'),_c('h4',[_vm._v(\" Reviving the Language that Brought us the Jak & Daxter Series \")]),_c('br'),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"#project-status\",\"rounded\":\"\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"mdi-calendar-check\")]),_vm._v(\" Project Status \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"rounded\":\"\",\"color\":\"secondary\",\"href\":\"#recent-updates\"}},[_c('v-icon',[_vm._v(\"mdi-update\")]),_vm._v(\" Recent Updates \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"/jak-project/api-docs.html\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"deep-purple\"}},[_c('v-icon',[_vm._v(\"mdi-file-document\")]),_vm._v(\" Documentation \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"href\":\"https://github.com/water111/jak-project\",\"target\":\"_blank\",\"rounded\":\"\",\"color\":\"accent\"}},[_c('v-icon',[_vm._v(\"mdi-git\")]),_vm._v(\" Contribute \")],1)],1)],1)],1)],1),_c('v-row',[_c('v-container',[_c('v-row',{staticStyle:{\"margin-top\":\"3em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"project-status\"}},[_vm._v(\" Project Status \")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h2',{staticClass:\"orange--text text--lighten-3\"},[_vm._v(\"Jak 1 - Black Label\")])])],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-subheader',[_vm._v(\"Decompilation\")]),_c('v-progress-linear',{attrs:{\"color\":\"teal\",\"buffer-value\":\"0\",\"value\":_vm.jak1BlackLabelStatus.decompDone,\"stream\":\"\",\"height\":\"25\"}},[_vm._v(\" \"+_vm._s(_vm.jak1BlackLabelStatus.decompLabel)+\" - \"+_vm._s(_vm.jak1BlackLabelStatus.decompDone)+\"% \")])],1)],1),_c('v-row',{staticStyle:{\"margin-top\":\"5em\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\"}},[_c('h1',{staticClass:\"orange--text text--darken-1\",attrs:{\"id\":\"recent-updates\"}},[_vm._v(\" Recent Updates \")])])],1),_c('v-row',{staticStyle:{\"margin-bottom\":\"10em\"},attrs:{\"justify\":\"center\"}},_vm._l((_vm.recentPRs),function(pr,index){return _c('v-col',{key:'pr' - index,attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-card-text',{staticStyle:{\"overflow-y\":\"auto\",\"height\":\"300px\"}},[_c('p',{staticClass:\"text-h5 orange--text text--lighten-3\"},[_vm._v(\" \"+_vm._s(pr.title)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(pr.user.login)+\" \")]),_c('div',{staticClass:\"text--primary\"},[_c('pre',{staticClass:\"wrapped-pre\"},[_vm._v(_vm._s(pr.body))])])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"accent\",\"href\":pr.html_url,\"target\":\"_blank\"}},[_vm._v(\" View Change \")])],1)],1)],1)}),1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const projectProgress = require('./config/progress.json')\n\nexport default projectProgress\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & WatchHandler {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el)\n else el._observe.init = true\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n (el as any)._initialDisplay = el.style.display\n el.style.display = 'none'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el) el.style.display = (el as any)._initialDisplay || ''\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=7ed77054&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=7ed77054&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed77054\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VIcon,VImg,VProgressLinear,VRow,VSubheader})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/js/app.a68fab1a.js b/docs/js/app.2883824b.js similarity index 97% rename from docs/js/app.a68fab1a.js rename to docs/js/app.2883824b.js index 779982dd10..28ed443f9a 100644 --- a/docs/js/app.a68fab1a.js +++ b/docs/js/app.2883824b.js @@ -1,2 +1,2 @@ -(function(e){function t(t){for(var n,o,i=t[0],c=t[1],l=t[2],s=0,p=[];s\n \n \n \n \n \n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?4cd3","webpack:///src/App.vue","webpack:///./src/App.vue?1160","webpack:///./src/App.vue","webpack:///./src/plugins/vuetify.js","webpack:///./src/router/index.js","webpack:///./src/main.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_h","$createElement","_c","_self","staticRenderFns","components","component","VApp","VMain","Vue","use","Vuetify","theme","dark","VueRouter","routes","path","router","base","process","config","productionTip","vuetify","render","h","App","$mount"],"mappings":"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","file":"js/app.2883824b.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"1ae0a652\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"about\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"8d0e9591\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/jak-project/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[_c('v-main',[_c('router-view')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=78a82666&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: { dark: true },\n})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/Home.vue')\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify';\nimport router from './router'\n\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n router,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/js/chunk-vendors.492c07dc.js b/docs/js/chunk-vendors.1146ead9.js similarity index 99% rename from docs/js/chunk-vendors.492c07dc.js rename to docs/js/chunk-vendors.1146ead9.js index abc4300405..3748e81823 100644 --- a/docs/js/chunk-vendors.492c07dc.js +++ b/docs/js/chunk-vendors.1146ead9.js @@ -9,5 +9,5 @@ var n=Object.freeze({});function r(t){return void 0===t||null===t}function o(t){ * vue-router v3.5.2 * (c) 2021 Evan You * @license MIT - */function r(t,e){0}function o(t,e){for(var n in e)t[n]=e[n];return t}var i=/[!'()*]/g,a=function(t){return"%"+t.charCodeAt(0).toString(16)},c=/%2C/g,s=function(t){return encodeURIComponent(t).replace(i,a).replace(c,",")};function u(t){try{return decodeURIComponent(t)}catch(e){0}return t}function f(t,e,n){void 0===e&&(e={});var r,o=n||p;try{r=o(t||"")}catch(c){r={}}for(var i in e){var a=e[i];r[i]=Array.isArray(a)?a.map(l):l(a)}return r}var l=function(t){return null==t||"object"===typeof t?t:String(t)};function p(t){var e={};return t=t.trim().replace(/^(\?|#|&)/,""),t?(t.split("&").forEach((function(t){var n=t.replace(/\+/g," ").split("="),r=u(n.shift()),o=n.length>0?u(n.join("=")):null;void 0===e[r]?e[r]=o:Array.isArray(e[r])?e[r].push(o):e[r]=[e[r],o]})),e):e}function d(t){var e=t?Object.keys(t).map((function(e){var n=t[e];if(void 0===n)return"";if(null===n)return s(e);if(Array.isArray(n)){var r=[];return n.forEach((function(t){void 0!==t&&(null===t?r.push(s(e)):r.push(s(e)+"="+s(t)))})),r.join("&")}return s(e)+"="+s(n)})).filter((function(t){return t.length>0})).join("&"):null;return e?"?"+e:""}var h=/\/?$/;function v(t,e,n,r){var o=r&&r.options.stringifyQuery,i=e.query||{};try{i=y(i)}catch(c){}var a={name:e.name||t&&t.name,meta:t&&t.meta||{},path:e.path||"/",hash:e.hash||"",query:i,params:e.params||{},fullPath:b(e,o),matched:t?g(t):[]};return n&&(a.redirectedFrom=b(n,o)),Object.freeze(a)}function y(t){if(Array.isArray(t))return t.map(y);if(t&&"object"===typeof t){var e={};for(var n in t)e[n]=y(t[n]);return e}return t}var m=v(null,{path:"/"});function g(t){var e=[];while(t)e.unshift(t),t=t.parent;return e}function b(t,e){var n=t.path,r=t.query;void 0===r&&(r={});var o=t.hash;void 0===o&&(o="");var i=e||d;return(n||"/")+i(r)+o}function w(t,e,n){return e===m?t===e:!!e&&(t.path&&e.path?t.path.replace(h,"")===e.path.replace(h,"")&&(n||t.hash===e.hash&&x(t.query,e.query)):!(!t.name||!e.name)&&(t.name===e.name&&(n||t.hash===e.hash&&x(t.query,e.query)&&x(t.params,e.params))))}function x(t,e){if(void 0===t&&(t={}),void 0===e&&(e={}),!t||!e)return t===e;var n=Object.keys(t).sort(),r=Object.keys(e).sort();return n.length===r.length&&n.every((function(n,o){var i=t[n],a=r[o];if(a!==n)return!1;var c=e[n];return null==i||null==c?i===c:"object"===typeof i&&"object"===typeof c?x(i,c):String(i)===String(c)}))}function _(t,e){return 0===t.path.replace(h,"/").indexOf(e.path.replace(h,"/"))&&(!e.hash||t.hash===e.hash)&&O(t.query,e.query)}function O(t,e){for(var n in e)if(!(n in t))return!1;return!0}function k(t){for(var e=0;e=0&&(e=t.slice(r),t=t.slice(0,r));var o=t.indexOf("?");return o>=0&&(n=t.slice(o+1),t=t.slice(0,o)),{path:t,query:n,hash:e}}function E(t){return t.replace(/\/\//g,"/")}var $=Array.isArray||function(t){return"[object Array]"==Object.prototype.toString.call(t)},T=Y,M=D,P=F,I=B,R=Q,N=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function D(t,e){var n,r=[],o=0,i=0,a="",c=e&&e.delimiter||"/";while(null!=(n=N.exec(t))){var s=n[0],u=n[1],f=n.index;if(a+=t.slice(i,f),i=f+s.length,u)a+=u[1];else{var l=t[i],p=n[2],d=n[3],h=n[4],v=n[5],y=n[6],m=n[7];a&&(r.push(a),a="");var g=null!=p&&null!=l&&l!==p,b="+"===y||"*"===y,w="?"===y||"*"===y,x=n[2]||c,_=h||v;r.push({name:d||o++,prefix:p||"",delimiter:x,optional:w,repeat:b,partial:g,asterisk:!!m,pattern:_?z(_):m?".*":"[^"+U(x)+"]+?"})}}return i1||!k.length)return 0===k.length?t():t("span",{},k)}if("a"===this.tag)O.on=x,O.attrs={href:s,"aria-current":g};else{var C=ct(this.$slots.default);if(C){C.isStatic=!1;var S=C.data=o({},C.data);for(var A in S.on=S.on||{},S.on){var L=S.on[A];A in x&&(S.on[A]=Array.isArray(L)?L:[L])}for(var j in x)j in S.on?S.on[j].push(x[j]):S.on[j]=b;var E=C.data.attrs=o({},C.data.attrs);E.href=s,E["aria-current"]=g}else O.on=x}return t(this.tag,O,this.$slots.default)}};function at(t){if(!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)&&!t.defaultPrevented&&(void 0===t.button||0===t.button)){if(t.currentTarget&&t.currentTarget.getAttribute){var e=t.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(e))return}return t.preventDefault&&t.preventDefault(),!0}}function ct(t){if(t)for(var e,n=0;n-1&&(c.params[l]=n.params[l]);return c.path=J(u.path,c.params,'named route "'+s+'"'),p(u,c,a)}if(c.path){c.params={};for(var d=0;d=t.length?n():t[o]?e(t[o],(function(){r(o+1)})):r(o+1)};r(0)}var Ft={redirected:2,aborted:4,cancelled:8,duplicated:16};function Vt(t,e){return zt(t,e,Ft.redirected,'Redirected when going from "'+t.fullPath+'" to "'+Wt(e)+'" via a navigation guard.')}function Ht(t,e){var n=zt(t,e,Ft.duplicated,'Avoided redundant navigation to current location: "'+t.fullPath+'".');return n.name="NavigationDuplicated",n}function Bt(t,e){return zt(t,e,Ft.cancelled,'Navigation cancelled from "'+t.fullPath+'" to "'+e.fullPath+'" with a new navigation.')}function Ut(t,e){return zt(t,e,Ft.aborted,'Navigation aborted from "'+t.fullPath+'" to "'+e.fullPath+'" via a navigation guard.')}function zt(t,e,n,r){var o=new Error(r);return o._isRouter=!0,o.from=t,o.to=e,o.type=n,o}var qt=["params","query","hash"];function Wt(t){if("string"===typeof t)return t;if("path"in t)return t.path;var e={};return qt.forEach((function(n){n in t&&(e[n]=t[n])})),JSON.stringify(e,null,2)}function Zt(t){return Object.prototype.toString.call(t).indexOf("Error")>-1}function Gt(t,e){return Zt(t)&&t._isRouter&&(null==e||t.type===e)}function Kt(t){return function(e,n,r){var o=!1,i=0,a=null;Qt(t,(function(t,e,n,c){if("function"===typeof t&&void 0===t.cid){o=!0,i++;var s,u=te((function(e){Jt(e)&&(e=e.default),t.resolved="function"===typeof e?e:et.extend(e),n.components[c]=e,i--,i<=0&&r()})),f=te((function(t){var e="Failed to resolve async component "+c+": "+t;a||(a=Zt(t)?t:new Error(e),r(a))}));try{s=t(u,f)}catch(p){f(p)}if(s)if("function"===typeof s.then)s.then(u,f);else{var l=s.component;l&&"function"===typeof l.then&&l.then(u,f)}}})),o||r()}}function Qt(t,e){return Yt(t.map((function(t){return Object.keys(t.components).map((function(n){return e(t.components[n],t.instances[n],t,n)}))})))}function Yt(t){return Array.prototype.concat.apply([],t)}var Xt="function"===typeof Symbol&&"symbol"===typeof Symbol.toStringTag;function Jt(t){return t.__esModule||Xt&&"Module"===t[Symbol.toStringTag]}function te(t){var e=!1;return function(){var n=[],r=arguments.length;while(r--)n[r]=arguments[r];if(!e)return e=!0,t.apply(this,n)}}var ee=function(t,e){this.router=t,this.base=ne(e),this.current=m,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function ne(t){if(!t)if(ut){var e=document.querySelector("base");t=e&&e.getAttribute("href")||"/",t=t.replace(/^https?:\/\/[^\/]+/,"")}else t="/";return"/"!==t.charAt(0)&&(t="/"+t),t.replace(/\/$/,"")}function re(t,e){var n,r=Math.max(t.length,e.length);for(n=0;n0)){var e=this.router,n=e.options.scrollBehavior,r=It&&n;r&&this.listeners.push(Ot());var o=function(){var n=t.current,o=pe(t.base);t.current===m&&o===t._startLocation||t.transitionTo(o,(function(t){r&&kt(e,t,n,!0)}))};window.addEventListener("popstate",o),this.listeners.push((function(){window.removeEventListener("popstate",o)}))}},e.prototype.go=function(t){window.history.go(t)},e.prototype.push=function(t,e,n){var r=this,o=this,i=o.current;this.transitionTo(t,(function(t){Rt(E(r.base+t.fullPath)),kt(r.router,t,i,!1),e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this,o=this,i=o.current;this.transitionTo(t,(function(t){Nt(E(r.base+t.fullPath)),kt(r.router,t,i,!1),e&&e(t)}),n)},e.prototype.ensureURL=function(t){if(pe(this.base)!==this.current.fullPath){var e=E(this.base+this.current.fullPath);t?Rt(e):Nt(e)}},e.prototype.getCurrentLocation=function(){return pe(this.base)},e}(ee);function pe(t){var e=window.location.pathname,n=e.toLowerCase(),r=t.toLowerCase();return!t||n!==r&&0!==n.indexOf(E(r+"/"))||(e=e.slice(t.length)),(e||"/")+window.location.search+window.location.hash}var de=function(t){function e(e,n,r){t.call(this,e,n),r&&he(this.base)||ve()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setupListeners=function(){var t=this;if(!(this.listeners.length>0)){var e=this.router,n=e.options.scrollBehavior,r=It&&n;r&&this.listeners.push(Ot());var o=function(){var e=t.current;ve()&&t.transitionTo(ye(),(function(n){r&&kt(t.router,n,e,!0),It||be(n.fullPath)}))},i=It?"popstate":"hashchange";window.addEventListener(i,o),this.listeners.push((function(){window.removeEventListener(i,o)}))}},e.prototype.push=function(t,e,n){var r=this,o=this,i=o.current;this.transitionTo(t,(function(t){ge(t.fullPath),kt(r.router,t,i,!1),e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this,o=this,i=o.current;this.transitionTo(t,(function(t){be(t.fullPath),kt(r.router,t,i,!1),e&&e(t)}),n)},e.prototype.go=function(t){window.history.go(t)},e.prototype.ensureURL=function(t){var e=this.current.fullPath;ye()!==e&&(t?ge(e):be(e))},e.prototype.getCurrentLocation=function(){return ye()},e}(ee);function he(t){var e=pe(t);if(!/^\/#/.test(e))return window.location.replace(E(t+"/#"+e)),!0}function ve(){var t=ye();return"/"===t.charAt(0)||(be("/"+t),!1)}function ye(){var t=window.location.href,e=t.indexOf("#");return e<0?"":(t=t.slice(e+1),t)}function me(t){var e=window.location.href,n=e.indexOf("#"),r=n>=0?e.slice(0,n):e;return r+"#"+t}function ge(t){It?Rt(me(t)):window.location.hash=t}function be(t){It?Nt(me(t)):window.location.replace(me(t))}var we=function(t){function e(e,n){t.call(this,e,n),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,n){var r=this;this.transitionTo(t,(function(t){r.stack=r.stack.slice(0,r.index+1).concat(t),r.index++,e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this;this.transitionTo(t,(function(t){r.stack=r.stack.slice(0,r.index).concat(t),e&&e(t)}),n)},e.prototype.go=function(t){var e=this,n=this.index+t;if(!(n<0||n>=this.stack.length)){var r=this.stack[n];this.confirmTransition(r,(function(){var t=e.current;e.index=n,e.updateRoute(r),e.router.afterHooks.forEach((function(e){e&&e(r,t)}))}),(function(t){Gt(t,Ft.duplicated)&&(e.index=n)}))}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(ee),xe=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=ht(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!It&&!1!==t.fallback,this.fallback&&(e="hash"),ut||(e="abstract"),this.mode=e,e){case"history":this.history=new le(this,t.base);break;case"hash":this.history=new de(this,t.base,this.fallback);break;case"abstract":this.history=new we(this,t.base);break;default:0}},_e={currentRoute:{configurable:!0}};function Oe(t,e){return t.push(e),function(){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}function ke(t,e,n){var r="hash"===n?"#"+e:e;return t?E(t+"/"+r):r}xe.prototype.match=function(t,e,n){return this.matcher.match(t,e,n)},_e.currentRoute.get=function(){return this.history&&this.history.current},xe.prototype.init=function(t){var e=this;if(this.apps.push(t),t.$once("hook:destroyed",(function(){var n=e.apps.indexOf(t);n>-1&&e.apps.splice(n,1),e.app===t&&(e.app=e.apps[0]||null),e.app||e.history.teardown()})),!this.app){this.app=t;var n=this.history;if(n instanceof le||n instanceof de){var r=function(t){var r=n.current,o=e.options.scrollBehavior,i=It&&o;i&&"fullPath"in t&&kt(e,t,r,!1)},o=function(t){n.setupListeners(),r(t)};n.transitionTo(n.getCurrentLocation(),o,o)}n.listen((function(t){e.apps.forEach((function(e){e._route=t}))}))}},xe.prototype.beforeEach=function(t){return Oe(this.beforeHooks,t)},xe.prototype.beforeResolve=function(t){return Oe(this.resolveHooks,t)},xe.prototype.afterEach=function(t){return Oe(this.afterHooks,t)},xe.prototype.onReady=function(t,e){this.history.onReady(t,e)},xe.prototype.onError=function(t){this.history.onError(t)},xe.prototype.push=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!==typeof Promise)return new Promise((function(e,n){r.history.push(t,e,n)}));this.history.push(t,e,n)},xe.prototype.replace=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!==typeof Promise)return new Promise((function(e,n){r.history.replace(t,e,n)}));this.history.replace(t,e,n)},xe.prototype.go=function(t){this.history.go(t)},xe.prototype.back=function(){this.go(-1)},xe.prototype.forward=function(){this.go(1)},xe.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map((function(t){return Object.keys(t.components).map((function(e){return t.components[e]}))}))):[]},xe.prototype.resolve=function(t,e,n){e=e||this.history.current;var r=tt(t,e,n,this),o=this.match(r,e),i=o.redirectedFrom||o.fullPath,a=this.history.base,c=ke(a,i,this.mode);return{location:r,route:o,href:c,normalizedTo:r,resolved:o}},xe.prototype.getRoutes=function(){return this.matcher.getRoutes()},xe.prototype.addRoute=function(t,e){this.matcher.addRoute(t,e),this.history.current!==m&&this.history.transitionTo(this.history.getCurrentLocation())},xe.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==m&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(xe.prototype,_e),xe.install=st,xe.version="3.5.2",xe.isNavigationFailure=Gt,xe.NavigationFailureType=Ft,xe.START_LOCATION=m,ut&&window.Vue&&window.Vue.use(xe),e["a"]=xe},"8da5":function(t,e,n){"use strict";n.d(e,"a",(function(){return s})),n.d(e,"b",(function(){return u}));var r=n("80d2"),o=[[3.2406,-1.5372,-.4986],[-.9689,1.8758,.0415],[.0557,-.204,1.057]],i=function(t){return t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055},a=[[.4124,.3576,.1805],[.2126,.7152,.0722],[.0193,.1192,.9505]],c=function(t){return t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)};function s(t){for(var e=Array(3),n=i,a=o,c=0;c<3;++c)e[c]=Math.round(255*Object(r["c"])(n(a[c][0]*t[0]+a[c][1]*t[1]+a[c][2]*t[2])));return(e[0]<<16)+(e[1]<<8)+(e[2]<<0)}function u(t){for(var e=[0,0,0],n=c,r=a,o=n((t>>16&255)/255),i=n((t>>8&255)/255),s=n((t>>0&255)/255),u=0;u<3;++u)e[u]=r[u][0]*o+r[u][1]*i+r[u][2]*s;return e}},"90e3":function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol("+String(void 0===t?"":t)+")_"+(++n+r).toString(36)}},9112:function(t,e,n){var r=n("83ab"),o=n("9bf2"),i=n("5c6c");t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},9263:function(t,e,n){"use strict";var r=n("ad6d"),o=n("9f7f"),i=n("5692"),a=n("7c73"),c=n("69f3").get,s=n("fce3"),u=n("107c"),f=RegExp.prototype.exec,l=i("native-string-replace",String.prototype.replace),p=f,d=function(){var t=/a/,e=/b*/g;return f.call(t,"a"),f.call(e,"a"),0!==t.lastIndex||0!==e.lastIndex}(),h=o.UNSUPPORTED_Y||o.BROKEN_CARET,v=void 0!==/()??/.exec("")[1],y=d||v||h||s||u;y&&(p=function(t){var e,n,o,i,s,u,y,m=this,g=c(m),b=g.raw;if(b)return b.lastIndex=m.lastIndex,e=p.call(b,t),m.lastIndex=b.lastIndex,e;var w=g.groups,x=h&&m.sticky,_=r.call(m),O=m.source,k=0,C=t;if(x&&(_=_.replace("y",""),-1===_.indexOf("g")&&(_+="g"),C=String(t).slice(m.lastIndex),m.lastIndex>0&&(!m.multiline||m.multiline&&"\n"!==t[m.lastIndex-1])&&(O="(?: "+O+")",C=" "+C,k++),n=new RegExp("^(?:"+O+")",_)),v&&(n=new RegExp("^"+O+"$(?!\\s)",_)),d&&(o=m.lastIndex),i=f.call(x?n:m,C),x?i?(i.input=i.input.slice(k),i[0]=i[0].slice(k),i.index=m.lastIndex,m.lastIndex+=i[0].length):m.lastIndex=0:d&&i&&(m.lastIndex=m.global?i.index+i[0].length:o),v&&i&&i.length>1&&l.call(i[0],n,(function(){for(s=1;s=51||!o((function(){var t=[];return t[h]=!1,t.concat()[0]!==t})),g=l("concat"),b=function(t){if(!a(t))return!1;var e=t[h];return void 0!==e?!!e:i(t)},w=!m||!g;r({target:"Array",proto:!0,forced:w},{concat:function(t){var e,n,r,o,i,a=c(this),l=f(a,0),p=0;for(e=-1,r=arguments.length;ev)throw TypeError(y);for(n=0;n=v)throw TypeError(y);u(l,p++,i)}return l.length=p,l}})},"9bdd":function(t,e,n){var r=n("825a"),o=n("2a62");t.exports=function(t,e,n,i){try{return i?e(r(n)[0],n[1]):e(n)}catch(a){throw o(t),a}}},"9bf2":function(t,e,n){var r=n("83ab"),o=n("0cfb"),i=n("825a"),a=n("c04e"),c=Object.defineProperty;e.f=r?c:function(t,e,n){if(i(t),e=a(e,!0),i(n),o)try{return c(t,e,n)}catch(r){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(t[e]=n.value),t}},"9ed3":function(t,e,n){"use strict";var r=n("ae93").IteratorPrototype,o=n("7c73"),i=n("5c6c"),a=n("d44e"),c=n("3f8c"),s=function(){return this};t.exports=function(t,e,n){var u=e+" Iterator";return t.prototype=o(r,{next:i(1,n)}),a(t,u,!1,!0),c[u]=s,t}},"9f7f":function(t,e,n){var r=n("d039"),o=function(t,e){return RegExp(t,e)};e.UNSUPPORTED_Y=r((function(){var t=o("a","y");return t.lastIndex=2,null!=t.exec("abcd")})),e.BROKEN_CARET=r((function(){var t=o("^r","gy");return t.lastIndex=2,null!=t.exec("str")}))},a15b:function(t,e,n){"use strict";var r=n("23e7"),o=n("44ad"),i=n("fc6a"),a=n("a640"),c=[].join,s=o!=Object,u=a("join",",");r({target:"Array",proto:!0,forced:s||!u},{join:function(t){return c.call(i(this),void 0===t?",":t)}})},a4b4:function(t,e,n){var r=n("342f");t.exports=/web0s(?!.*chrome)/i.test(r)},a4d3:function(t,e,n){"use strict";var r=n("23e7"),o=n("da84"),i=n("d066"),a=n("c430"),c=n("83ab"),s=n("4930"),u=n("fdbf"),f=n("d039"),l=n("5135"),p=n("e8b5"),d=n("861d"),h=n("825a"),v=n("7b0b"),y=n("fc6a"),m=n("c04e"),g=n("5c6c"),b=n("7c73"),w=n("df75"),x=n("241c"),_=n("057f"),O=n("7418"),k=n("06cf"),C=n("9bf2"),S=n("d1e7"),A=n("9112"),L=n("6eeb"),j=n("5692"),E=n("f772"),$=n("d012"),T=n("90e3"),M=n("b622"),P=n("e538"),I=n("746f"),R=n("d44e"),N=n("69f3"),D=n("b727").forEach,F=E("hidden"),V="Symbol",H="prototype",B=M("toPrimitive"),U=N.set,z=N.getterFor(V),q=Object[H],W=o.Symbol,Z=i("JSON","stringify"),G=k.f,K=C.f,Q=_.f,Y=S.f,X=j("symbols"),J=j("op-symbols"),tt=j("string-to-symbol-registry"),et=j("symbol-to-string-registry"),nt=j("wks"),rt=o.QObject,ot=!rt||!rt[H]||!rt[H].findChild,it=c&&f((function(){return 7!=b(K({},"a",{get:function(){return K(this,"a",{value:7}).a}})).a}))?function(t,e,n){var r=G(q,e);r&&delete q[e],K(t,e,n),r&&t!==q&&K(q,e,r)}:K,at=function(t,e){var n=X[t]=b(W[H]);return U(n,{type:V,tag:t,description:e}),c||(n.description=e),n},ct=u?function(t){return"symbol"==typeof t}:function(t){return Object(t)instanceof W},st=function(t,e,n){t===q&&st(J,e,n),h(t);var r=m(e,!0);return h(n),l(X,r)?(n.enumerable?(l(t,F)&&t[F][r]&&(t[F][r]=!1),n=b(n,{enumerable:g(0,!1)})):(l(t,F)||K(t,F,g(1,{})),t[F][r]=!0),it(t,r,n)):K(t,r,n)},ut=function(t,e){h(t);var n=y(e),r=w(n).concat(ht(n));return D(r,(function(e){c&&!lt.call(n,e)||st(t,e,n[e])})),t},ft=function(t,e){return void 0===e?b(t):ut(b(t),e)},lt=function(t){var e=m(t,!0),n=Y.call(this,e);return!(this===q&&l(X,e)&&!l(J,e))&&(!(n||!l(this,e)||!l(X,e)||l(this,F)&&this[F][e])||n)},pt=function(t,e){var n=y(t),r=m(e,!0);if(n!==q||!l(X,r)||l(J,r)){var o=G(n,r);return!o||!l(X,r)||l(n,F)&&n[F][r]||(o.enumerable=!0),o}},dt=function(t){var e=Q(y(t)),n=[];return D(e,(function(t){l(X,t)||l($,t)||n.push(t)})),n},ht=function(t){var e=t===q,n=Q(e?J:y(t)),r=[];return D(n,(function(t){!l(X,t)||e&&!l(q,t)||r.push(X[t])})),r};if(s||(W=function(){if(this instanceof W)throw TypeError("Symbol is not a constructor");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=T(t),n=function(t){this===q&&n.call(J,t),l(this,F)&&l(this[F],e)&&(this[F][e]=!1),it(this,e,g(1,t))};return c&&ot&&it(q,e,{configurable:!0,set:n}),at(e,t)},L(W[H],"toString",(function(){return z(this).tag})),L(W,"withoutSetter",(function(t){return at(T(t),t)})),S.f=lt,C.f=st,k.f=pt,x.f=_.f=dt,O.f=ht,P.f=function(t){return at(M(t),t)},c&&(K(W[H],"description",{configurable:!0,get:function(){return z(this).description}}),a||L(q,"propertyIsEnumerable",lt,{unsafe:!0}))),r({global:!0,wrap:!0,forced:!s,sham:!s},{Symbol:W}),D(w(nt),(function(t){I(t)})),r({target:V,stat:!0,forced:!s},{for:function(t){var e=String(t);if(l(tt,e))return tt[e];var n=W(e);return tt[e]=n,et[n]=e,n},keyFor:function(t){if(!ct(t))throw TypeError(t+" is not a symbol");if(l(et,t))return et[t]},useSetter:function(){ot=!0},useSimple:function(){ot=!1}}),r({target:"Object",stat:!0,forced:!s,sham:!c},{create:ft,defineProperty:st,defineProperties:ut,getOwnPropertyDescriptor:pt}),r({target:"Object",stat:!0,forced:!s},{getOwnPropertyNames:dt,getOwnPropertySymbols:ht}),r({target:"Object",stat:!0,forced:f((function(){O.f(1)}))},{getOwnPropertySymbols:function(t){return O.f(v(t))}}),Z){var vt=!s||f((function(){var t=W();return"[null]"!=Z([t])||"{}"!=Z({a:t})||"{}"!=Z(Object(t))}));r({target:"JSON",stat:!0,forced:vt},{stringify:function(t,e,n){var r,o=[t],i=1;while(arguments.length>i)o.push(arguments[i++]);if(r=e,(d(e)||void 0!==t)&&!ct(t))return p(e)||(e=function(t,e){if("function"==typeof r&&(e=r.call(this,t,e)),!ct(e))return e}),o[1]=e,Z.apply(null,o)}})}W[H][B]||A(W[H],B,W[H].valueOf),R(W,V),$[F]=!0},a630:function(t,e,n){var r=n("23e7"),o=n("4df4"),i=n("1c7e"),a=!i((function(t){Array.from(t)}));r({target:"Array",stat:!0,forced:a},{from:o})},a640:function(t,e,n){"use strict";var r=n("d039");t.exports=function(t,e){var n=[][t];return!!n&&r((function(){n.call(null,e||function(){throw 1},1)}))}},a691:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},a79d:function(t,e,n){"use strict";var r=n("23e7"),o=n("c430"),i=n("fea9"),a=n("d039"),c=n("d066"),s=n("4840"),u=n("cdf9"),f=n("6eeb"),l=!!i&&a((function(){i.prototype["finally"].call({then:function(){}},(function(){}))}));if(r({target:"Promise",proto:!0,real:!0,forced:l},{finally:function(t){var e=s(this,c("Promise")),n="function"==typeof t;return this.then(n?function(n){return u(e,t()).then((function(){return n}))}:t,n?function(n){return u(e,t()).then((function(){throw n}))}:t)}}),!o&&"function"==typeof i){var p=c("Promise").prototype["finally"];i.prototype["finally"]!==p&&f(i.prototype,"finally",p,{unsafe:!0})}},a9e3:function(t,e,n){"use strict";var r=n("83ab"),o=n("da84"),i=n("94ca"),a=n("6eeb"),c=n("5135"),s=n("c6b6"),u=n("7156"),f=n("c04e"),l=n("d039"),p=n("7c73"),d=n("241c").f,h=n("06cf").f,v=n("9bf2").f,y=n("58a8").trim,m="Number",g=o[m],b=g.prototype,w=s(p(b))==m,x=function(t){var e,n,r,o,i,a,c,s,u=f(t,!1);if("string"==typeof u&&u.length>2)if(u=y(u),e=u.charCodeAt(0),43===e||45===e){if(n=u.charCodeAt(2),88===n||120===n)return NaN}else if(48===e){switch(u.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+u}for(i=u.slice(2),a=i.length,c=0;co)return NaN;return parseInt(i,r)}return+u};if(i(m,!g(" 0o1")||!g("0b1")||g("+0x1"))){for(var _,O=function(t){var e=arguments.length<1?0:t,n=this;return n instanceof O&&(w?l((function(){b.valueOf.call(n)})):s(n)!=m)?u(new g(x(e)),n,O):x(e)},k=r?d(g):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,fromString,range".split(","),C=0;k.length>C;C++)c(g,_=k[C])&&!c(O,_)&&v(O,_,h(g,_));O.prototype=b,b.constructor=O,a(o,m,O)}},ab13:function(t,e,n){var r=n("b622"),o=r("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[o]=!1,"/./"[t](e)}catch(r){}}return!1}},ac1f:function(t,e,n){"use strict";var r=n("23e7"),o=n("9263");r({target:"RegExp",proto:!0,forced:/./.exec!==o},{exec:o})},ad6d:function(t,e,n){"use strict";var r=n("825a");t.exports=function(){var t=r(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},addb:function(t,e){var n=Math.floor,r=function(t,e){var a=t.length,c=n(a/2);return a<8?o(t,e):i(r(t.slice(0,c),e),r(t.slice(c),e),e)},o=function(t,e){var n,r,o=t.length,i=1;while(i0)t[r]=t[--r];r!==i++&&(t[r]=n)}return t},i=function(t,e,n){var r=t.length,o=e.length,i=0,a=0,c=[];while(i3}))}},b041:function(t,e,n){"use strict";var r=n("00ee"),o=n("f5df");t.exports=r?{}.toString:function(){return"[object "+o(this)+"]"}},b0c0:function(t,e,n){var r=n("83ab"),o=n("9bf2").f,i=Function.prototype,a=i.toString,c=/^\s*function ([^ (]*)/,s="name";r&&!(s in i)&&o(i,s,{configurable:!0,get:function(){try{return a.call(this).match(c)[1]}catch(t){return""}}})},b575:function(t,e,n){var r,o,i,a,c,s,u,f,l=n("da84"),p=n("06cf").f,d=n("2cf4").set,h=n("1cdc"),v=n("a4b4"),y=n("605d"),m=l.MutationObserver||l.WebKitMutationObserver,g=l.document,b=l.process,w=l.Promise,x=p(l,"queueMicrotask"),_=x&&x.value;_||(r=function(){var t,e;y&&(t=b.domain)&&t.exit();while(o){e=o.fn,o=o.next;try{e()}catch(n){throw o?a():i=void 0,n}}i=void 0,t&&t.enter()},h||y||v||!m||!g?w&&w.resolve?(u=w.resolve(void 0),u.constructor=w,f=u.then,a=function(){f.call(u,r)}):a=y?function(){b.nextTick(r)}:function(){d.call(l,r)}:(c=!0,s=g.createTextNode(""),new m(r).observe(s,{characterData:!0}),a=function(){s.data=c=!c})),t.exports=_||function(t){var e={fn:t,next:void 0};i&&(i.next=e),o||(o=e,a()),i=e}},b622:function(t,e,n){var r=n("da84"),o=n("5692"),i=n("5135"),a=n("90e3"),c=n("4930"),s=n("fdbf"),u=o("wks"),f=r.Symbol,l=s?f:f&&f.withoutSetter||a;t.exports=function(t){return i(u,t)&&(c||"string"==typeof u[t])||(c&&i(f,t)?u[t]=f[t]:u[t]=l("Symbol."+t)),u[t]}},b64b:function(t,e,n){var r=n("23e7"),o=n("7b0b"),i=n("df75"),a=n("d039"),c=a((function(){i(1)}));r({target:"Object",stat:!0,forced:c},{keys:function(t){return i(o(t))}})},b680:function(t,e,n){"use strict";var r=n("23e7"),o=n("a691"),i=n("408a"),a=n("1148"),c=n("d039"),s=1..toFixed,u=Math.floor,f=function(t,e,n){return 0===e?n:e%2===1?f(t,e-1,n*t):f(t*t,e/2,n)},l=function(t){var e=0,n=t;while(n>=4096)e+=12,n/=4096;while(n>=2)e+=1,n/=2;return e},p=function(t,e,n){var r=-1,o=n;while(++r<6)o+=e*t[r],t[r]=o%1e7,o=u(o/1e7)},d=function(t,e){var n=6,r=0;while(--n>=0)r+=t[n],t[n]=u(r/e),r=r%e*1e7},h=function(t){var e=6,n="";while(--e>=0)if(""!==n||0===e||0!==t[e]){var r=String(t[e]);n=""===n?r:n+a.call("0",7-r.length)+r}return n},v=s&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!c((function(){s.call({})}));r({target:"Number",proto:!0,forced:v},{toFixed:function(t){var e,n,r,c,s=i(this),u=o(t),v=[0,0,0,0,0,0],y="",m="0";if(u<0||u>20)throw RangeError("Incorrect fraction digits");if(s!=s)return"NaN";if(s<=-1e21||s>=1e21)return String(s);if(s<0&&(y="-",s=-s),s>1e-21)if(e=l(s*f(2,69,1))-69,n=e<0?s*f(2,-e,1):s/f(2,e,1),n*=4503599627370496,e=52-e,e>0){p(v,0,n),r=u;while(r>=7)p(v,1e7,0),r-=7;p(v,f(10,r,1),0),r=e-1;while(r>=23)d(v,1<<23),r-=23;d(v,1<0?(c=m.length,m=y+(c<=u?"0."+a.call("0",u-c)+m:m.slice(0,c-u)+"."+m.slice(c-u))):m=y+m,m}})},b727:function(t,e,n){var r=n("0366"),o=n("44ad"),i=n("7b0b"),a=n("50c4"),c=n("65f0"),s=[].push,u=function(t){var e=1==t,n=2==t,u=3==t,f=4==t,l=6==t,p=7==t,d=5==t||l;return function(h,v,y,m){for(var g,b,w=i(h),x=o(w),_=r(v,y,3),O=a(x.length),k=0,C=m||c,S=e?C(h,O):n||p?C(h,0):void 0;O>k;k++)if((d||k in x)&&(g=x[k],b=_(g,k,w),t))if(e)S[k]=b;else if(b)switch(t){case 3:return!0;case 5:return g;case 6:return k;case 2:s.call(S,g)}else switch(t){case 4:return!1;case 7:s.call(S,g)}return l?-1:u||f?f:S}};t.exports={forEach:u(0),map:u(1),filter:u(2),some:u(3),every:u(4),find:u(5),findIndex:u(6),filterOut:u(7)}},bb2f:function(t,e,n){var r=n("d039");t.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},bd0c:function(t,e,n){},c04e:function(t,e,n){var r=n("861d");t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},c430:function(t,e){t.exports=!1},c6b6:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},c6cd:function(t,e,n){var r=n("da84"),o=n("ce4e"),i="__core-js_shared__",a=r[i]||o(i,{});t.exports=a},c8ba:function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(r){"object"===typeof window&&(n=window)}t.exports=n},c8d2:function(t,e,n){var r=n("d039"),o=n("5899"),i="​…᠎";t.exports=function(t){return r((function(){return!!o[t]()||i[t]()!=i||o[t].name!==t}))}},ca84:function(t,e,n){var r=n("5135"),o=n("fc6a"),i=n("4d64").indexOf,a=n("d012");t.exports=function(t,e){var n,c=o(t),s=0,u=[];for(n in c)!r(a,n)&&r(c,n)&&u.push(n);while(e.length>s)r(c,n=e[s++])&&(~i(u,n)||u.push(n));return u}},caad:function(t,e,n){"use strict";var r=n("23e7"),o=n("4d64").includes,i=n("44d2");r({target:"Array",proto:!0},{includes:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i("includes")},cb29:function(t,e,n){var r=n("23e7"),o=n("81d5"),i=n("44d2");r({target:"Array",proto:!0},{fill:o}),i("fill")},cc12:function(t,e,n){var r=n("da84"),o=n("861d"),i=r.document,a=o(i)&&o(i.createElement);t.exports=function(t){return a?i.createElement(t):{}}},cca6:function(t,e,n){var r=n("23e7"),o=n("60da");r({target:"Object",stat:!0,forced:Object.assign!==o},{assign:o})},cdf9:function(t,e,n){var r=n("825a"),o=n("861d"),i=n("f069");t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t),a=n.resolve;return a(e),n.promise}},ce4e:function(t,e,n){var r=n("da84"),o=n("9112");t.exports=function(t,e){try{o(r,t,e)}catch(n){r[t]=e}return e}},d012:function(t,e){t.exports={}},d039:function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},d066:function(t,e,n){var r=n("428f"),o=n("da84"),i=function(t){return"function"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t])||i(o[t]):r[t]&&r[t][e]||o[t]&&o[t][e]}},d1e7:function(t,e,n){"use strict";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);e.f=i?function(t){var e=o(this,t);return!!e&&e.enumerable}:r},d28b:function(t,e,n){var r=n("746f");r("iterator")},d2bb:function(t,e,n){var r=n("825a"),o=n("3bbe");t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{t=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set,t.call(n,[]),e=n instanceof Array}catch(i){}return function(n,i){return r(n),o(i),e?t.call(n,i):n.__proto__=i,n}}():void 0)},d3b7:function(t,e,n){var r=n("00ee"),o=n("6eeb"),i=n("b041");r||o(Object.prototype,"toString",i,{unsafe:!0})},d44e:function(t,e,n){var r=n("9bf2").f,o=n("5135"),i=n("b622"),a=i("toStringTag");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,a)&&r(t,a,{configurable:!0,value:e})}},d784:function(t,e,n){"use strict";n("ac1f");var r=n("6eeb"),o=n("9263"),i=n("d039"),a=n("b622"),c=n("9112"),s=a("species"),u=RegExp.prototype;t.exports=function(t,e,n,f){var l=a(t),p=!i((function(){var e={};return e[l]=function(){return 7},7!=""[t](e)})),d=p&&!i((function(){var e=!1,n=/a/;return"split"===t&&(n={},n.constructor={},n.constructor[s]=function(){return n},n.flags="",n[l]=/./[l]),n.exec=function(){return e=!0,null},n[l](""),!e}));if(!p||!d||n){var h=/./[l],v=e(l,""[t],(function(t,e,n,r,i){var a=e.exec;return a===o||a===u.exec?p&&!i?{done:!0,value:h.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}));r(String.prototype,t,v[0]),r(u,l,v[1])}f&&c(u[l],"sham",!0)}},d81d:function(t,e,n){"use strict";var r=n("23e7"),o=n("b727").map,i=n("1dde"),a=i("map");r({target:"Array",proto:!0,forced:!a},{map:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},d998:function(t,e,n){var r=n("342f");t.exports=/MSIE|Trident/.test(r)},d9bd:function(t,e,n){"use strict";n.d(e,"c",(function(){return i})),n.d(e,"b",(function(){return a})),n.d(e,"a",(function(){return c}));n("caad"),n("2532"),n("99af"),n("ac1f"),n("5319"),n("b0c0"),n("466d"),n("a15b"),n("d81d"),n("38cf");var r=n("f309");function o(t,e,n){if(!r["a"].config.silent){if(n&&(e={_isVue:!0,$parent:n,$options:e}),e){if(e.$_alreadyWarned=e.$_alreadyWarned||[],e.$_alreadyWarned.includes(t))return;e.$_alreadyWarned.push(t)}return"[Vuetify] ".concat(t)+(e?l(e):"")}}function i(t,e,n){var r=o(t,e,n);null!=r&&console.warn(r)}function a(t,e,n){var r=o(t,e,n);null!=r&&console.error(r)}function c(t,e,n,r){a("[BREAKING] '".concat(t,"' has been removed, use '").concat(e,"' instead. For more information, see the upgrade guide https://github.com/vuetifyjs/vuetify/releases/tag/v2.0.0#user-content-upgrade-guide"),n,r)}var s=/(?:^|[-_])(\w)/g,u=function(t){return t.replace(s,(function(t){return t.toUpperCase()})).replace(/[-_]/g,"")};function f(t,e){if(t.$root===t)return"";var n="function"===typeof t&&null!=t.cid?t.options:t._isVue?t.$options||t.constructor.options:t||{},r=n.name||n._componentTag,o=n.__file;if(!r&&o){var i=o.match(/([^/\\]+)\.vue$/);r=i&&i[1]}return(r?"<".concat(u(r),">"):"")+(o&&!1!==e?" at ".concat(o):"")}function l(t){if(t._isVue&&t.$parent){var e=[],n=0;while(t){if(e.length>0){var r=e[e.length-1];if(r.constructor===t.constructor){n++,t=t.$parent;continue}n>0&&(e[e.length-1]=[r,n],n=0)}e.push(t),t=t.$parent}return"\n\nfound in\n\n"+e.map((function(t,e){return"".concat(0===e?"---\x3e ":" ".repeat(5+2*e)).concat(Array.isArray(t)?"".concat(f(t[0]),"... (").concat(t[1]," recursive calls)"):f(t))})).join("\n")}return"\n\n(found in ".concat(f(t),")")}},da84:function(t,e,n){(function(e){var n=function(t){return t&&t.Math==Math&&t};t.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof e&&e)||function(){return this}()||Function("return this")()}).call(this,n("c8ba"))},dbb4:function(t,e,n){var r=n("23e7"),o=n("83ab"),i=n("56ef"),a=n("fc6a"),c=n("06cf"),s=n("8418");r({target:"Object",stat:!0,sham:!o},{getOwnPropertyDescriptors:function(t){var e,n,r=a(t),o=c.f,u=i(r),f={},l=0;while(u.length>l)n=o(r,e=u[l++]),void 0!==n&&s(f,e,n);return f}})},dca8:function(t,e,n){var r=n("23e7"),o=n("bb2f"),i=n("d039"),a=n("861d"),c=n("f183").onFreeze,s=Object.freeze,u=i((function(){s(1)}));r({target:"Object",stat:!0,forced:u,sham:!o},{freeze:function(t){return s&&a(t)?s(c(t)):t}})},ddb0:function(t,e,n){var r=n("da84"),o=n("fdbc"),i=n("e260"),a=n("9112"),c=n("b622"),s=c("iterator"),u=c("toStringTag"),f=i.values;for(var l in o){var p=r[l],d=p&&p.prototype;if(d){if(d[s]!==f)try{a(d,s,f)}catch(v){d[s]=f}if(d[u]||a(d,u,l),o[l])for(var h in i)if(d[h]!==i[h])try{a(d,h,i[h])}catch(v){d[h]=i[h]}}}},df75:function(t,e,n){var r=n("ca84"),o=n("7839");t.exports=Object.keys||function(t){return r(t,o)}},df86:function(t,e,n){},e01a:function(t,e,n){"use strict";var r=n("23e7"),o=n("83ab"),i=n("da84"),a=n("5135"),c=n("861d"),s=n("9bf2").f,u=n("e893"),f=i.Symbol;if(o&&"function"==typeof f&&(!("description"in f.prototype)||void 0!==f().description)){var l={},p=function(){var t=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),e=this instanceof p?new f(t):void 0===t?f():f(t);return""===t&&(l[e]=!0),e};u(p,f);var d=p.prototype=f.prototype;d.constructor=p;var h=d.toString,v="Symbol(test)"==String(f("test")),y=/^Symbol\((.*)\)[^)]+$/;s(d,"description",{configurable:!0,get:function(){var t=c(this)?this.valueOf():this,e=h.call(t);if(a(l,t))return"";var n=v?e.slice(7,-1):e.replace(y,"$1");return""===n?void 0:n}}),r({global:!0,forced:!0},{Symbol:p})}},e163:function(t,e,n){var r=n("5135"),o=n("7b0b"),i=n("f772"),a=n("e177"),c=i("IE_PROTO"),s=Object.prototype;t.exports=a?Object.getPrototypeOf:function(t){return t=o(t),r(t,c)?t[c]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?s:null}},e177:function(t,e,n){var r=n("d039");t.exports=!r((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},e260:function(t,e,n){"use strict";var r=n("fc6a"),o=n("44d2"),i=n("3f8c"),a=n("69f3"),c=n("7dd0"),s="Array Iterator",u=a.set,f=a.getterFor(s);t.exports=c(Array,"Array",(function(t,e){u(this,{type:s,target:r(t),index:0,kind:e})}),(function(){var t=f(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,{value:void 0,done:!0}):"keys"==n?{value:r,done:!1}:"values"==n?{value:e[r],done:!1}:{value:[r,e[r]],done:!1}}),"values"),i.Arguments=i.Array,o("keys"),o("values"),o("entries")},e2cc:function(t,e,n){var r=n("6eeb");t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},e439:function(t,e,n){var r=n("23e7"),o=n("d039"),i=n("fc6a"),a=n("06cf").f,c=n("83ab"),s=o((function(){a(1)})),u=!c||s;r({target:"Object",stat:!0,forced:u,sham:!c},{getOwnPropertyDescriptor:function(t,e){return a(i(t),e)}})},e538:function(t,e,n){var r=n("b622");e.f=r},e667:function(t,e){t.exports=function(t){try{return{error:!1,value:t()}}catch(e){return{error:!0,value:e}}}},e6cf:function(t,e,n){"use strict";var r,o,i,a,c=n("23e7"),s=n("c430"),u=n("da84"),f=n("d066"),l=n("fea9"),p=n("6eeb"),d=n("e2cc"),h=n("d2bb"),v=n("d44e"),y=n("2626"),m=n("861d"),g=n("1c0b"),b=n("19aa"),w=n("8925"),x=n("2266"),_=n("1c7e"),O=n("4840"),k=n("2cf4").set,C=n("b575"),S=n("cdf9"),A=n("44de"),L=n("f069"),j=n("e667"),E=n("69f3"),$=n("94ca"),T=n("b622"),M=n("6069"),P=n("605d"),I=n("2d00"),R=T("species"),N="Promise",D=E.get,F=E.set,V=E.getterFor(N),H=l&&l.prototype,B=l,U=H,z=u.TypeError,q=u.document,W=u.process,Z=L.f,G=Z,K=!!(q&&q.createEvent&&u.dispatchEvent),Q="function"==typeof PromiseRejectionEvent,Y="unhandledrejection",X="rejectionhandled",J=0,tt=1,et=2,nt=1,rt=2,ot=!1,it=$(N,(function(){var t=w(B),e=t!==String(B);if(!e&&66===I)return!0;if(s&&!U["finally"])return!0;if(I>=51&&/native code/.test(t))return!1;var n=new B((function(t){t(1)})),r=function(t){t((function(){}),(function(){}))},o=n.constructor={};return o[R]=r,ot=n.then((function(){}))instanceof r,!ot||!e&&M&&!Q})),at=it||!_((function(t){B.all(t)["catch"]((function(){}))})),ct=function(t){var e;return!(!m(t)||"function"!=typeof(e=t.then))&&e},st=function(t,e){if(!t.notified){t.notified=!0;var n=t.reactions;C((function(){var r=t.value,o=t.state==tt,i=0;while(n.length>i){var a,c,s,u=n[i++],f=o?u.ok:u.fail,l=u.resolve,p=u.reject,d=u.domain;try{f?(o||(t.rejection===rt&&pt(t),t.rejection=nt),!0===f?a=r:(d&&d.enter(),a=f(r),d&&(d.exit(),s=!0)),a===u.promise?p(z("Promise-chain cycle")):(c=ct(a))?c.call(a,l,p):l(a)):p(r)}catch(h){d&&!s&&d.exit(),p(h)}}t.reactions=[],t.notified=!1,e&&!t.rejection&&ft(t)}))}},ut=function(t,e,n){var r,o;K?(r=q.createEvent("Event"),r.promise=e,r.reason=n,r.initEvent(t,!1,!0),u.dispatchEvent(r)):r={promise:e,reason:n},!Q&&(o=u["on"+t])?o(r):t===Y&&A("Unhandled promise rejection",n)},ft=function(t){k.call(u,(function(){var e,n=t.facade,r=t.value,o=lt(t);if(o&&(e=j((function(){P?W.emit("unhandledRejection",r,n):ut(Y,n,r)})),t.rejection=P||lt(t)?rt:nt,e.error))throw e.value}))},lt=function(t){return t.rejection!==nt&&!t.parent},pt=function(t){k.call(u,(function(){var e=t.facade;P?W.emit("rejectionHandled",e):ut(X,e,t.value)}))},dt=function(t,e,n){return function(r){t(e,r,n)}},ht=function(t,e,n){t.done||(t.done=!0,n&&(t=n),t.value=e,t.state=et,st(t,!0))},vt=function(t,e,n){if(!t.done){t.done=!0,n&&(t=n);try{if(t.facade===e)throw z("Promise can't be resolved itself");var r=ct(e);r?C((function(){var n={done:!1};try{r.call(e,dt(vt,n,t),dt(ht,n,t))}catch(o){ht(n,o,t)}})):(t.value=e,t.state=tt,st(t,!1))}catch(o){ht({done:!1},o,t)}}};if(it&&(B=function(t){b(this,B,N),g(t),r.call(this);var e=D(this);try{t(dt(vt,e),dt(ht,e))}catch(n){ht(e,n)}},U=B.prototype,r=function(t){F(this,{type:N,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:J,value:void 0})},r.prototype=d(U,{then:function(t,e){var n=V(this),r=Z(O(this,B));return r.ok="function"!=typeof t||t,r.fail="function"==typeof e&&e,r.domain=P?W.domain:void 0,n.parent=!0,n.reactions.push(r),n.state!=J&&st(n,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new r,e=D(t);this.promise=t,this.resolve=dt(vt,e),this.reject=dt(ht,e)},L.f=Z=function(t){return t===B||t===i?new o(t):G(t)},!s&&"function"==typeof l&&H!==Object.prototype)){a=H.then,ot||(p(H,"then",(function(t,e){var n=this;return new B((function(t,e){a.call(n,t,e)})).then(t,e)}),{unsafe:!0}),p(H,"catch",U["catch"],{unsafe:!0}));try{delete H.constructor}catch(yt){}h&&h(H,U)}c({global:!0,wrap:!0,forced:it},{Promise:B}),v(B,N,!1,!0),y(N),i=f(N),c({target:N,stat:!0,forced:it},{reject:function(t){var e=Z(this);return e.reject.call(void 0,t),e.promise}}),c({target:N,stat:!0,forced:s||it},{resolve:function(t){return S(s&&this===i?B:this,t)}}),c({target:N,stat:!0,forced:at},{all:function(t){var e=this,n=Z(e),r=n.resolve,o=n.reject,i=j((function(){var n=g(e.resolve),i=[],a=0,c=1;x(t,(function(t){var s=a++,u=!1;i.push(void 0),c++,n.call(e,t).then((function(t){u||(u=!0,i[s]=t,--c||r(i))}),o)})),--c||r(i)}));return i.error&&o(i.value),n.promise},race:function(t){var e=this,n=Z(e),r=n.reject,o=j((function(){var o=g(e.resolve);x(t,(function(t){o.call(e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}})},e893:function(t,e,n){var r=n("5135"),o=n("56ef"),i=n("06cf"),a=n("9bf2");t.exports=function(t,e){for(var n=o(e),c=a.f,s=i.f,u=0;u1&&void 0!==arguments[1]?arguments[1]:{};if(!u.installed){u.installed=!0,c["a"]!==t&&Object(s["b"])("Multiple instances of Vue detected\nSee https://github.com/vuetifyjs/vuetify/issues/4068\n\nIf you're seeing \"$attrs is readonly\", it's caused by this");var n=e.components||{},r=e.directives||{};for(var o in r){var i=r[o];t.directive(o,i)}(function e(n){if(n){for(var r in n){var o=n[r];o&&!e(o.$_vuetify_subcomponents)&&t.component(r,o)}return!0}return!1})(n),t.$_vuetify_installed||(t.$_vuetify_installed=!0,t.mixin({beforeCreate:function(){var e=this.$options;e.vuetify?(e.vuetify.init(this,this.$ssrContext),this.$vuetify=t.observable(e.vuetify.framework)):this.$vuetify=e.parent&&e.parent.$vuetify||this},beforeMount:function(){this.$options.vuetify&&this.$el&&this.$el.hasAttribute("data-server-rendered")&&(this.$vuetify.isHydrating=!0,this.$vuetify.breakpoint.update(!0))},mounted:function(){this.$options.vuetify&&this.$vuetify.isHydrating&&(this.$vuetify.isHydrating=!1,this.$vuetify.breakpoint.update())}}))}}n("a4d3"),n("b64b");function f(t,e){if(null==t)return{};var n,r,o={},i=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}function l(t,e){if(null==t)return{};var n,r,o=f(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function p(t,e){return p=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},p(t,e)}function d(t,e){if("function"!==typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&p(t,e)}n("4ae1"),n("3410");function h(t){return h=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},h(t)}function v(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}var y=n("7037"),m=n.n(y);function g(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function b(t,e){return!e||"object"!==m()(e)&&"function"!==typeof e?g(t):e}function w(t){var e=v();return function(){var n,r=h(t);if(e){var o=h(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return b(this,n)}}n("95ed");var x={badge:"Badge",close:"Close",dataIterator:{noResultsText:"No matching records found",loadingText:"Loading items..."},dataTable:{itemsPerPageText:"Rows per page:",ariaLabel:{sortDescending:"Sorted descending.",sortAscending:"Sorted ascending.",sortNone:"Not sorted.",activateNone:"Activate to remove sorting.",activateDescending:"Activate to sort descending.",activateAscending:"Activate to sort ascending."},sortBy:"Sort by"},dataFooter:{itemsPerPageText:"Items per page:",itemsPerPageAll:"All",nextPage:"Next page",prevPage:"Previous page",firstPage:"First page",lastPage:"Last page",pageText:"{0}-{1} of {2}"},datePicker:{itemsSelected:"{0} selected",nextMonthAriaLabel:"Next month",nextYearAriaLabel:"Next year",prevMonthAriaLabel:"Previous month",prevYearAriaLabel:"Previous year"},noDataText:"No data available",carousel:{prev:"Previous visual",next:"Next visual",ariaLabel:{delimiter:"Carousel slide {0} of {1}"}},calendar:{moreEvents:"{0} more"},fileInput:{counter:"{0} files",counterSize:"{0} files ({1} in total)"},timePicker:{am:"AM",pm:"PM"},pagination:{ariaLabel:{wrapper:"Pagination Navigation",next:"Next page",previous:"Previous page",page:"Goto Page {0}",currentPage:"Current Page, Page {0}"}},rating:{ariaLabel:{icon:"Rating {0} of {1}"}}},_={breakpoint:{mobileBreakpoint:1264,scrollBarWidth:16,thresholds:{xs:600,sm:960,md:1280,lg:1920}},icons:{iconfont:"mdi",values:{}},lang:{current:"en",locales:{en:x},t:void 0},rtl:!1,theme:{dark:!1,default:"light",disable:!1,options:{cspNonce:void 0,customProperties:void 0,minifyTheme:void 0,themeCache:void 0,variations:!0},themes:{light:{primary:"#1976D2",secondary:"#424242",accent:"#82B1FF",error:"#FF5252",info:"#2196F3",success:"#4CAF50",warning:"#FB8C00"},dark:{primary:"#2196F3",secondary:"#424242",accent:"#FF4081",error:"#FF5252",info:"#2196F3",success:"#4CAF50",warning:"#FB8C00"}}}},O=n("80d2"),k=function(){function t(){o(this,t),this.framework={}}return a(t,[{key:"init",value:function(t,e){}}]),t}(),C=["preset"],S=function(t){d(n,t);var e=w(n);function n(t,r){var i;o(this,n),i=e.call(this);var a=Object(O["l"])({},_),c=r.userPreset,u=c.preset,f=void 0===u?{}:u,p=l(c,C);return null!=f.preset&&Object(s["c"])("Global presets do not support the **preset** option, it can be safely omitted"),r.preset=Object(O["l"])(Object(O["l"])(a,f),p),i}return n}(k);S.property="presets";var A=n("ade3"),L=(n("07ac"),function(t){d(n,t);var e=w(n);function n(){var t;return o(this,n),t=e.apply(this,arguments),t.bar=0,t.top=0,t.left=0,t.insetFooter=0,t.right=0,t.bottom=0,t.footer=0,t.application={bar:{},top:{},left:{},insetFooter:{},right:{},bottom:{},footer:{}},t}return a(n,[{key:"register",value:function(t,e,n){this.application[e]=Object(A["a"])({},t,n),this.update(e)}},{key:"unregister",value:function(t,e){null!=this.application[e][t]&&(delete this.application[e][t],this.update(e))}},{key:"update",value:function(t){this[t]=Object.values(this.application[t]).reduce((function(t,e){return t+e}),0)}}]),n}(k));L.property="application";n("b0c0");var j=function(t){d(n,t);var e=w(n);function n(t){var r;o(this,n),r=e.call(this),r.xs=!1,r.sm=!1,r.md=!1,r.lg=!1,r.xl=!1,r.xsOnly=!1,r.smOnly=!1,r.smAndDown=!1,r.smAndUp=!1,r.mdOnly=!1,r.mdAndDown=!1,r.mdAndUp=!1,r.lgOnly=!1,r.lgAndDown=!1,r.lgAndUp=!1,r.xlOnly=!1,r.name="xs",r.height=0,r.width=0,r.mobile=!0,r.resizeTimeout=0;var i=t[n.property],a=i.mobileBreakpoint,c=i.scrollBarWidth,s=i.thresholds;return r.mobileBreakpoint=a,r.scrollBarWidth=c,r.thresholds=s,r}return a(n,[{key:"init",value:function(){this.update(),"undefined"!==typeof window&&window.addEventListener("resize",this.onResize.bind(this),{passive:!0})}},{key:"update",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=t?0:this.getClientHeight(),n=t?0:this.getClientWidth(),r=n=this.thresholds.lg-this.scrollBarWidth;switch(this.height=e,this.width=n,this.xs=r,this.sm=o,this.md=i,this.lg=a,this.xl=c,this.xsOnly=r,this.smOnly=o,this.smAndDown=(r||o)&&!(i||a||c),this.smAndUp=!r&&(o||i||a||c),this.mdOnly=i,this.mdAndDown=(r||o||i)&&!(a||c),this.mdAndUp=!(r||o)&&(i||a||c),this.lgOnly=a,this.lgAndDown=(r||o||i||a)&&!c,this.lgAndUp=!(r||o||i)&&(a||c),this.xlOnly=c,!0){case r:this.name="xs";break;case o:this.name="sm";break;case i:this.name="md";break;case a:this.name="lg";break;default:this.name="xl";break}if("number"!==typeof this.mobileBreakpoint){var s={xs:0,sm:1,md:2,lg:3,xl:4},u=s[this.name],f=s[this.mobileBreakpoint];this.mobile=u<=f}else this.mobile=n1&&void 0!==arguments[1]?arguments[1]:{},n=Object(E["a"])({container:document.scrollingElement||document.body||document.documentElement,duration:500,offset:0,easing:"easeInOutCubic",appOffset:!0},e),o=q(n.container);if(n.appOffset&&G.framework.application){var i=o.classList.contains("v-navigation-drawer"),a=o.classList.contains("v-navigation-drawer--clipped"),c=G.framework.application,s=c.bar,u=c.top;n.offset+=s,i&&!a||(n.offset+=u)}var f,l=performance.now();f="number"===typeof t?z(t)-n.offset:z(t)-z(o)-n.offset;var p=o.scrollTop;if(f===p)return Promise.resolve(f);var d="function"===typeof n.easing?n.easing:r[n.easing];if(!d)throw new TypeError('Easing function "'.concat(n.easing,'" not found.'));return new Promise((function(t){return requestAnimationFrame((function e(r){var i=r-l,a=Math.abs(n.duration?Math.min(i/n.duration,1):1);o.scrollTop=Math.floor(p+(f-p)*d(a));var c=o===document.body?document.documentElement.clientHeight:o.clientHeight;if(1===a||c+o.scrollTop===o.scrollHeight)return t(f);requestAnimationFrame(e)}))}))}G.framework={},G.init=function(){};var K=function(t){d(n,t);var e=w(n);function n(){var t;return o(this,n),t=e.call(this),b(t,G)}return n}(k);K.property="goTo";n("ddb0"),n("dca8");var Q={complete:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z",cancel:"M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z",close:"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z",delete:"M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z",clear:"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z",success:"M12,2C17.52,2 22,6.48 22,12C22,17.52 17.52,22 12,22C6.48,22 2,17.52 2,12C2,6.48 6.48,2 12,2M11,16.5L18,9.5L16.59,8.09L11,13.67L7.91,10.59L6.5,12L11,16.5Z",info:"M13,9H11V7H13M13,17H11V11H13M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z",warning:"M11,4.5H13V15.5H11V4.5M13,17.5V19.5H11V17.5H13Z",error:"M13,14H11V10H13M13,18H11V16H13M1,21H23L12,2L1,21Z",prev:"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z",next:"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z",checkboxOn:"M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3Z",checkboxOff:"M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3M19,5V19H5V5H19Z",checkboxIndeterminate:"M17,13H7V11H17M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3Z",delimiter:"M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z",sort:"M13,20H11V8L5.5,13.5L4.08,12.08L12,4.16L19.92,12.08L18.5,13.5L13,8V20Z",expand:"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z",menu:"M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z",subgroup:"M7,10L12,15L17,10H7Z",dropdown:"M7,10L12,15L17,10H7Z",radioOn:"M12,20C7.58,20 4,16.42 4,12C4,7.58 7.58,4 12,4C16.42,4 20,7.58 20,12C20,16.42 16.42,20 12,20M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2M12,7C9.24,7 7,9.24 7,12C7,14.76 9.24,17 12,17C14.76,17 17,14.76 17,12C17,9.24 14.76,7 12,7Z",radioOff:"M12,20C7.58,20 4,16.42 4,12C4,7.58 7.58,4 12,4C16.42,4 20,7.58 20,12C20,16.42 16.42,20 12,20M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z",edit:"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z",ratingEmpty:"M12,15.39L8.24,17.66L9.23,13.38L5.91,10.5L10.29,10.13L12,6.09L13.71,10.13L18.09,10.5L14.77,13.38L15.76,17.66M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z",ratingFull:"M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z",ratingHalf:"M12,15.4V6.1L13.71,10.13L18.09,10.5L14.77,13.39L15.76,17.67M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z",loading:"M19,8L15,12H18C18,15.31 15.31,18 12,18C11,18 10.03,17.75 9.2,17.3L7.74,18.76C8.97,19.54 10.43,20 12,20C16.42,20 20,16.42 20,12H23M6,12C6,8.69 8.69,6 12,6C13,6 13.97,6.25 14.8,6.7L16.26,5.24C15.03,4.46 13.57,4 12,4C7.58,4 4,7.58 4,12H1L5,16L9,12",first:"M18.41,16.59L13.82,12L18.41,7.41L17,6L11,12L17,18L18.41,16.59M6,6H8V18H6V6Z",last:"M5.59,7.41L10.18,12L5.59,16.59L7,18L13,12L7,6L5.59,7.41M16,6H18V18H16V6Z",unfold:"M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z",file:"M16.5,6V17.5C16.5,19.71 14.71,21.5 12.5,21.5C10.29,21.5 8.5,19.71 8.5,17.5V5C8.5,3.62 9.62,2.5 11,2.5C12.38,2.5 13.5,3.62 13.5,5V15.5C13.5,16.05 13.05,16.5 12.5,16.5C11.95,16.5 11.5,16.05 11.5,15.5V6H10V15.5C10,16.88 11.12,18 12.5,18C13.88,18 15,16.88 15,15.5V5C15,2.79 13.21,1 11,1C8.79,1 7,2.79 7,5V17.5C7,20.54 9.46,23 12.5,23C15.54,23 18,20.54 18,17.5V6H16.5Z",plus:"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z",minus:"M19,13H5V11H19V13Z"},Y=Q,X={complete:"check",cancel:"cancel",close:"close",delete:"cancel",clear:"clear",success:"check_circle",info:"info",warning:"priority_high",error:"warning",prev:"chevron_left",next:"chevron_right",checkboxOn:"check_box",checkboxOff:"check_box_outline_blank",checkboxIndeterminate:"indeterminate_check_box",delimiter:"fiber_manual_record",sort:"arrow_upward",expand:"keyboard_arrow_down",menu:"menu",subgroup:"arrow_drop_down",dropdown:"arrow_drop_down",radioOn:"radio_button_checked",radioOff:"radio_button_unchecked",edit:"edit",ratingEmpty:"star_border",ratingFull:"star",ratingHalf:"star_half",loading:"cached",first:"first_page",last:"last_page",unfold:"unfold_more",file:"attach_file",plus:"add",minus:"remove"},J=X,tt={complete:"mdi-check",cancel:"mdi-close-circle",close:"mdi-close",delete:"mdi-close-circle",clear:"mdi-close",success:"mdi-check-circle",info:"mdi-information",warning:"mdi-exclamation",error:"mdi-alert",prev:"mdi-chevron-left",next:"mdi-chevron-right",checkboxOn:"mdi-checkbox-marked",checkboxOff:"mdi-checkbox-blank-outline",checkboxIndeterminate:"mdi-minus-box",delimiter:"mdi-circle",sort:"mdi-arrow-up",expand:"mdi-chevron-down",menu:"mdi-menu",subgroup:"mdi-menu-down",dropdown:"mdi-menu-down",radioOn:"mdi-radiobox-marked",radioOff:"mdi-radiobox-blank",edit:"mdi-pencil",ratingEmpty:"mdi-star-outline",ratingFull:"mdi-star",ratingHalf:"mdi-star-half-full",loading:"mdi-cached",first:"mdi-page-first",last:"mdi-page-last",unfold:"mdi-unfold-more-horizontal",file:"mdi-paperclip",plus:"mdi-plus",minus:"mdi-minus"},et=tt,nt={complete:"fas fa-check",cancel:"fas fa-times-circle",close:"fas fa-times",delete:"fas fa-times-circle",clear:"fas fa-times-circle",success:"fas fa-check-circle",info:"fas fa-info-circle",warning:"fas fa-exclamation",error:"fas fa-exclamation-triangle",prev:"fas fa-chevron-left",next:"fas fa-chevron-right",checkboxOn:"fas fa-check-square",checkboxOff:"far fa-square",checkboxIndeterminate:"fas fa-minus-square",delimiter:"fas fa-circle",sort:"fas fa-sort-up",expand:"fas fa-chevron-down",menu:"fas fa-bars",subgroup:"fas fa-caret-down",dropdown:"fas fa-caret-down",radioOn:"far fa-dot-circle",radioOff:"far fa-circle",edit:"fas fa-edit",ratingEmpty:"far fa-star",ratingFull:"fas fa-star",ratingHalf:"fas fa-star-half",loading:"fas fa-sync",first:"fas fa-step-backward",last:"fas fa-step-forward",unfold:"fas fa-arrows-alt-v",file:"fas fa-paperclip",plus:"fas fa-plus",minus:"fas fa-minus"},rt=nt,ot={complete:"fa fa-check",cancel:"fa fa-times-circle",close:"fa fa-times",delete:"fa fa-times-circle",clear:"fa fa-times-circle",success:"fa fa-check-circle",info:"fa fa-info-circle",warning:"fa fa-exclamation",error:"fa fa-exclamation-triangle",prev:"fa fa-chevron-left",next:"fa fa-chevron-right",checkboxOn:"fa fa-check-square",checkboxOff:"fa fa-square-o",checkboxIndeterminate:"fa fa-minus-square",delimiter:"fa fa-circle",sort:"fa fa-sort-up",expand:"fa fa-chevron-down",menu:"fa fa-bars",subgroup:"fa fa-caret-down",dropdown:"fa fa-caret-down",radioOn:"fa fa-dot-circle-o",radioOff:"fa fa-circle-o",edit:"fa fa-pencil",ratingEmpty:"fa fa-star-o",ratingFull:"fa fa-star",ratingHalf:"fa fa-star-half-o",loading:"fa fa-refresh",first:"fa fa-step-backward",last:"fa fa-step-forward",unfold:"fa fa-angle-double-down",file:"fa fa-paperclip",plus:"fa fa-plus",minus:"fa fa-minus"},it=ot;n("ac1f"),n("1276");function at(t,e){var n={};for(var r in e)n[r]={component:t,props:{icon:e[r].split(" fa-")}};return n}var ct=at("font-awesome-icon",rt),st=Object.freeze({mdiSvg:Y,md:J,mdi:et,fa:rt,fa4:it,faSvg:ct}),ut=function(t){d(n,t);var e=w(n);function n(t){var r;o(this,n),r=e.call(this);var i=t[n.property],a=i.iconfont,c=i.values,s=i.component;return r.component=s,r.iconfont=a,r.values=Object(O["l"])(st[a],c),r}return n}(k);ut.property="icons";n("e01a"),n("5319"),n("2ca0"),n("99af");var ft="$vuetify.",lt=Symbol("Lang fallback");function pt(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3?arguments[3]:void 0,o=e.replace(ft,""),i=Object(O["h"])(t,o,lt);return i===lt&&(n?(Object(s["b"])('Translation key "'.concat(o,'" not found in fallback')),i=e):(Object(s["c"])('Translation key "'.concat(o,'" not found, falling back to default')),i=pt(r,e,!0,r))),i}var dt=function(t){d(n,t);var e=w(n);function n(t){var r;o(this,n),r=e.call(this),r.defaultLocale="en";var i=t[n.property],a=i.current,c=i.locales,s=i.t;return r.current=a,r.locales=c,r.translator=s||r.defaultTranslator,r}return a(n,[{key:"currentLocale",value:function(t){var e=this.locales[this.current],n=this.locales[this.defaultLocale];return pt(e,t,!1,n)}},{key:"t",value:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r1?e-1:0),r=1;rMath.pow(gt,3)?Math.cbrt(t):t/(3*Math.pow(gt,2))+4/29},wt=function(t){return t>gt?Math.pow(t,3):3*Math.pow(gt,2)*(t-4/29)};function xt(t){var e=bt,n=e(t[1]);return[116*n-16,500*(e(t[0]/.95047)-n),200*(n-e(t[2]/1.08883))]}function _t(t){var e=wt,n=(t[0]+16)/116;return[.95047*e(n+t[1]/500),e(n),1.08883*e(n-t[2]/200)]}var Ot=["anchor"],kt=["anchor"];function Ct(t){for(var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=t.anchor,o=l(t,Ot),i=Object.keys(o),a={},c=0;c1&&void 0!==arguments[1]?arguments[1]:"base";return"--v-".concat(t,"-").concat(e)},jt=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"base";return"var(".concat(Lt(t,e),")")};function Et(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.anchor,r=l(t,kt),o=Object.keys(r);if(!o.length)return"";var i="",a="",c=e?jt("anchor"):n;a+=".v-application a { color: ".concat(c,"; }"),e&&(i+=" ".concat(Lt("anchor"),": ").concat(n,";\n"));for(var s=0;s0;--r)n["lighten".concat(r)]=Object(yt["c"])(Tt(e,r));for(var o=1;o<=4;++o)n["darken".concat(o)]=Object(yt["c"])(Mt(e,o));return n}function Tt(t,e){var n=xt(mt["b"](t));return n[0]=n[0]+10*e,mt["a"](_t(n))}function Mt(t,e){var n=xt(mt["b"](t));return n[0]=n[0]-10*e,mt["a"](_t(n))}var Pt=function(t){d(n,t);var e=w(n);function n(t){var r;o(this,n),r=e.call(this),r.disabled=!1,r.isDark=null,r.unwatch=null,r.vueMeta=null;var i=t[n.property],a=i.dark,c=i.disable,s=i.options,u=i.themes;return r.dark=Boolean(a),r.defaults=r.themes=u,r.options=s,c?(r.disabled=!0,b(r)):(r.themes={dark:r.fillVariant(u.dark,!0),light:r.fillVariant(u.light,!1)},r)}return a(n,[{key:"css",set:function(t){this.vueMeta?this.isVueMeta23&&this.applyVueMeta23():this.checkOrCreateStyleElement()&&(this.styleEl.innerHTML=t)}},{key:"dark",get:function(){return Boolean(this.isDark)},set:function(t){var e=this.isDark;this.isDark=t,null!=e&&this.applyTheme()}},{key:"applyTheme",value:function(){if(this.disabled)return this.clearCss();this.css=this.generatedStyles}},{key:"clearCss",value:function(){this.css=""}},{key:"init",value:function(t,e){this.disabled||(t.$meta?this.initVueMeta(t):e&&this.initSSR(e),this.initTheme(t))}},{key:"setTheme",value:function(t,e){this.themes[t]=Object.assign(this.themes[t],e),this.applyTheme()}},{key:"resetThemes",value:function(){this.themes.light=Object.assign({},this.defaults.light),this.themes.dark=Object.assign({},this.defaults.dark),this.applyTheme()}},{key:"checkOrCreateStyleElement",value:function(){return this.styleEl=document.getElementById("vuetify-theme-stylesheet"),!!this.styleEl||(this.genStyleElement(),Boolean(this.styleEl))}},{key:"fillVariant",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,n=this.themes[e?"dark":"light"];return Object.assign({},n,t)}},{key:"genStyleElement",value:function(){"undefined"!==typeof document&&(this.styleEl=document.createElement("style"),this.styleEl.type="text/css",this.styleEl.id="vuetify-theme-stylesheet",this.options.cspNonce&&this.styleEl.setAttribute("nonce",this.options.cspNonce),document.head.appendChild(this.styleEl))}},{key:"initVueMeta",value:function(t){var e=this;if(this.vueMeta=t.$meta(),this.isVueMeta23)t.$nextTick((function(){e.applyVueMeta23()}));else{var n="function"===typeof this.vueMeta.getOptions?this.vueMeta.getOptions().keyName:"metaInfo",r=t.$options[n]||{};t.$options[n]=function(){r.style=r.style||[];var t=r.style.find((function(t){return"vuetify-theme-stylesheet"===t.id}));return t?t.cssText=e.generatedStyles:r.style.push({cssText:e.generatedStyles,type:"text/css",id:"vuetify-theme-stylesheet",nonce:(e.options||{}).cspNonce}),r}}}},{key:"applyVueMeta23",value:function(){var t=this.vueMeta.addApp("vuetify"),e=t.set;e({style:[{cssText:this.generatedStyles,type:"text/css",id:"vuetify-theme-stylesheet",nonce:this.options.cspNonce}]})}},{key:"initSSR",value:function(t){var e=this.options.cspNonce?' nonce="'.concat(this.options.cspNonce,'"'):"";t.head=t.head||"",t.head+='")}},{key:"initTheme",value:function(t){var e=this;"undefined"!==typeof document&&(this.unwatch&&(this.unwatch(),this.unwatch=null),t.$once("hook:created",(function(){var n=c["a"].observable({themes:e.themes});e.unwatch=t.$watch((function(){return n.themes}),(function(){return e.applyTheme()}),{deep:!0})})),this.applyTheme())}},{key:"currentTheme",get:function(){var t=this.dark?"dark":"light";return this.themes[t]}},{key:"generatedStyles",get:function(){var t,e=this.parsedTheme,n=this.options||{};return null!=n.themeCache&&(t=n.themeCache.get(e),null!=t)||(t=Et(e,n.customProperties),null!=n.minifyTheme&&(t=n.minifyTheme(t)),null!=n.themeCache&&n.themeCache.set(e,t)),t}},{key:"parsedTheme",get:function(){return Ct(this.currentTheme||{},void 0,Object(O["g"])(this.options,["variations"],!0))}},{key:"isVueMeta23",get:function(){return"function"===typeof this.vueMeta.addApp}}]),n}(k);Pt.property="theme";var It=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};o(this,t),this.framework={isHydrating:!1},this.installed=[],this.preset={},this.userPreset={},this.userPreset=e,this.use(S),this.use(L),this.use(j),this.use(K),this.use(ut),this.use(dt),this.use(Pt)}return a(t,[{key:"init",value:function(t,e){var n=this;this.installed.forEach((function(r){var o=n.framework[r];o.framework=n.framework,o.init(t,e)})),this.framework.rtl=Boolean(this.preset.rtl)}},{key:"use",value:function(t){var e=t.property;this.installed.includes(e)||(this.framework[e]=new t(this.preset,this),this.installed.push(e))}}]),t}();It.install=u,It.installed=!1,It.version="2.5.6",It.config={silent:!1}},f5df:function(t,e,n){var r=n("00ee"),o=n("c6b6"),i=n("b622"),a=i("toStringTag"),c="Arguments"==o(function(){return arguments}()),s=function(t,e){try{return t[e]}catch(n){}};t.exports=r?o:function(t){var e,n,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=s(e=Object(t),a))?n:c?o(e):"Object"==(r=o(e))&&"function"==typeof e.callee?"Arguments":r}},f6c4:function(t,e,n){"use strict";n("bd0c");var r=n("2b0e"),o=r["a"].extend({name:"ssr-bootable",data:function(){return{isBooted:!1}},mounted:function(){var t=this;window.requestAnimationFrame((function(){t.$el.setAttribute("data-booted","true"),t.isBooted=!0}))}});e["a"]=o.extend({name:"v-main",props:{tag:{type:String,default:"main"}},computed:{styles:function(){var t=this.$vuetify.application,e=t.bar,n=t.top,r=t.right,o=t.footer,i=t.insetFooter,a=t.bottom,c=t.left;return{paddingTop:"".concat(n+e,"px"),paddingRight:"".concat(r,"px"),paddingBottom:"".concat(o+i+a,"px"),paddingLeft:"".concat(c,"px")}}},render:function(t){var e={staticClass:"v-main",style:this.styles,ref:"main"};return t(this.tag,e,[t("div",{staticClass:"v-main__wrap"},this.$slots.default)])}})},f748:function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},f772:function(t,e,n){var r=n("5692"),o=n("90e3"),i=r("keys");t.exports=function(t){return i[t]||(i[t]=o(t))}},fb6a:function(t,e,n){"use strict";var r=n("23e7"),o=n("861d"),i=n("e8b5"),a=n("23cb"),c=n("50c4"),s=n("fc6a"),u=n("8418"),f=n("b622"),l=n("1dde"),p=l("slice"),d=f("species"),h=[].slice,v=Math.max;r({target:"Array",proto:!0,forced:!p},{slice:function(t,e){var n,r,f,l=s(this),p=c(l.length),y=a(t,p),m=a(void 0===e?p:e,p);if(i(l)&&(n=l.constructor,"function"!=typeof n||n!==Array&&!i(n.prototype)?o(n)&&(n=n[d],null===n&&(n=void 0)):n=void 0,n===Array||void 0===n))return h.call(l,y,m);for(r=new(void 0===n?Array:n)(v(m-y,0)),f=0;y=0&&(e=t.slice(r),t=t.slice(0,r));var o=t.indexOf("?");return o>=0&&(n=t.slice(o+1),t=t.slice(0,o)),{path:t,query:n,hash:e}}function E(t){return t.replace(/\/\//g,"/")}var $=Array.isArray||function(t){return"[object Array]"==Object.prototype.toString.call(t)},T=Y,M=D,P=F,I=B,R=Q,N=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function D(t,e){var n,r=[],o=0,i=0,a="",c=e&&e.delimiter||"/";while(null!=(n=N.exec(t))){var s=n[0],u=n[1],f=n.index;if(a+=t.slice(i,f),i=f+s.length,u)a+=u[1];else{var l=t[i],p=n[2],d=n[3],h=n[4],v=n[5],y=n[6],m=n[7];a&&(r.push(a),a="");var g=null!=p&&null!=l&&l!==p,b="+"===y||"*"===y,w="?"===y||"*"===y,x=n[2]||c,_=h||v;r.push({name:d||o++,prefix:p||"",delimiter:x,optional:w,repeat:b,partial:g,asterisk:!!m,pattern:_?z(_):m?".*":"[^"+U(x)+"]+?"})}}return i1||!k.length)return 0===k.length?t():t("span",{},k)}if("a"===this.tag)O.on=x,O.attrs={href:s,"aria-current":g};else{var C=ct(this.$slots.default);if(C){C.isStatic=!1;var S=C.data=o({},C.data);for(var A in S.on=S.on||{},S.on){var L=S.on[A];A in x&&(S.on[A]=Array.isArray(L)?L:[L])}for(var j in x)j in S.on?S.on[j].push(x[j]):S.on[j]=b;var E=C.data.attrs=o({},C.data.attrs);E.href=s,E["aria-current"]=g}else O.on=x}return t(this.tag,O,this.$slots.default)}};function at(t){if(!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)&&!t.defaultPrevented&&(void 0===t.button||0===t.button)){if(t.currentTarget&&t.currentTarget.getAttribute){var e=t.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(e))return}return t.preventDefault&&t.preventDefault(),!0}}function ct(t){if(t)for(var e,n=0;n-1&&(c.params[l]=n.params[l]);return c.path=J(u.path,c.params,'named route "'+s+'"'),p(u,c,a)}if(c.path){c.params={};for(var d=0;d=t.length?n():t[o]?e(t[o],(function(){r(o+1)})):r(o+1)};r(0)}var Ft={redirected:2,aborted:4,cancelled:8,duplicated:16};function Vt(t,e){return zt(t,e,Ft.redirected,'Redirected when going from "'+t.fullPath+'" to "'+Wt(e)+'" via a navigation guard.')}function Ht(t,e){var n=zt(t,e,Ft.duplicated,'Avoided redundant navigation to current location: "'+t.fullPath+'".');return n.name="NavigationDuplicated",n}function Bt(t,e){return zt(t,e,Ft.cancelled,'Navigation cancelled from "'+t.fullPath+'" to "'+e.fullPath+'" with a new navigation.')}function Ut(t,e){return zt(t,e,Ft.aborted,'Navigation aborted from "'+t.fullPath+'" to "'+e.fullPath+'" via a navigation guard.')}function zt(t,e,n,r){var o=new Error(r);return o._isRouter=!0,o.from=t,o.to=e,o.type=n,o}var qt=["params","query","hash"];function Wt(t){if("string"===typeof t)return t;if("path"in t)return t.path;var e={};return qt.forEach((function(n){n in t&&(e[n]=t[n])})),JSON.stringify(e,null,2)}function Zt(t){return Object.prototype.toString.call(t).indexOf("Error")>-1}function Gt(t,e){return Zt(t)&&t._isRouter&&(null==e||t.type===e)}function Kt(t){return function(e,n,r){var o=!1,i=0,a=null;Qt(t,(function(t,e,n,c){if("function"===typeof t&&void 0===t.cid){o=!0,i++;var s,u=te((function(e){Jt(e)&&(e=e.default),t.resolved="function"===typeof e?e:et.extend(e),n.components[c]=e,i--,i<=0&&r()})),f=te((function(t){var e="Failed to resolve async component "+c+": "+t;a||(a=Zt(t)?t:new Error(e),r(a))}));try{s=t(u,f)}catch(p){f(p)}if(s)if("function"===typeof s.then)s.then(u,f);else{var l=s.component;l&&"function"===typeof l.then&&l.then(u,f)}}})),o||r()}}function Qt(t,e){return Yt(t.map((function(t){return Object.keys(t.components).map((function(n){return e(t.components[n],t.instances[n],t,n)}))})))}function Yt(t){return Array.prototype.concat.apply([],t)}var Xt="function"===typeof Symbol&&"symbol"===typeof Symbol.toStringTag;function Jt(t){return t.__esModule||Xt&&"Module"===t[Symbol.toStringTag]}function te(t){var e=!1;return function(){var n=[],r=arguments.length;while(r--)n[r]=arguments[r];if(!e)return e=!0,t.apply(this,n)}}var ee=function(t,e){this.router=t,this.base=ne(e),this.current=m,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function ne(t){if(!t)if(ut){var e=document.querySelector("base");t=e&&e.getAttribute("href")||"/",t=t.replace(/^https?:\/\/[^\/]+/,"")}else t="/";return"/"!==t.charAt(0)&&(t="/"+t),t.replace(/\/$/,"")}function re(t,e){var n,r=Math.max(t.length,e.length);for(n=0;n0)){var e=this.router,n=e.options.scrollBehavior,r=It&&n;r&&this.listeners.push(Ot());var o=function(){var n=t.current,o=pe(t.base);t.current===m&&o===t._startLocation||t.transitionTo(o,(function(t){r&&kt(e,t,n,!0)}))};window.addEventListener("popstate",o),this.listeners.push((function(){window.removeEventListener("popstate",o)}))}},e.prototype.go=function(t){window.history.go(t)},e.prototype.push=function(t,e,n){var r=this,o=this,i=o.current;this.transitionTo(t,(function(t){Rt(E(r.base+t.fullPath)),kt(r.router,t,i,!1),e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this,o=this,i=o.current;this.transitionTo(t,(function(t){Nt(E(r.base+t.fullPath)),kt(r.router,t,i,!1),e&&e(t)}),n)},e.prototype.ensureURL=function(t){if(pe(this.base)!==this.current.fullPath){var e=E(this.base+this.current.fullPath);t?Rt(e):Nt(e)}},e.prototype.getCurrentLocation=function(){return pe(this.base)},e}(ee);function pe(t){var e=window.location.pathname,n=e.toLowerCase(),r=t.toLowerCase();return!t||n!==r&&0!==n.indexOf(E(r+"/"))||(e=e.slice(t.length)),(e||"/")+window.location.search+window.location.hash}var de=function(t){function e(e,n,r){t.call(this,e,n),r&&he(this.base)||ve()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setupListeners=function(){var t=this;if(!(this.listeners.length>0)){var e=this.router,n=e.options.scrollBehavior,r=It&&n;r&&this.listeners.push(Ot());var o=function(){var e=t.current;ve()&&t.transitionTo(ye(),(function(n){r&&kt(t.router,n,e,!0),It||be(n.fullPath)}))},i=It?"popstate":"hashchange";window.addEventListener(i,o),this.listeners.push((function(){window.removeEventListener(i,o)}))}},e.prototype.push=function(t,e,n){var r=this,o=this,i=o.current;this.transitionTo(t,(function(t){ge(t.fullPath),kt(r.router,t,i,!1),e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this,o=this,i=o.current;this.transitionTo(t,(function(t){be(t.fullPath),kt(r.router,t,i,!1),e&&e(t)}),n)},e.prototype.go=function(t){window.history.go(t)},e.prototype.ensureURL=function(t){var e=this.current.fullPath;ye()!==e&&(t?ge(e):be(e))},e.prototype.getCurrentLocation=function(){return ye()},e}(ee);function he(t){var e=pe(t);if(!/^\/#/.test(e))return window.location.replace(E(t+"/#"+e)),!0}function ve(){var t=ye();return"/"===t.charAt(0)||(be("/"+t),!1)}function ye(){var t=window.location.href,e=t.indexOf("#");return e<0?"":(t=t.slice(e+1),t)}function me(t){var e=window.location.href,n=e.indexOf("#"),r=n>=0?e.slice(0,n):e;return r+"#"+t}function ge(t){It?Rt(me(t)):window.location.hash=t}function be(t){It?Nt(me(t)):window.location.replace(me(t))}var we=function(t){function e(e,n){t.call(this,e,n),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,n){var r=this;this.transitionTo(t,(function(t){r.stack=r.stack.slice(0,r.index+1).concat(t),r.index++,e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this;this.transitionTo(t,(function(t){r.stack=r.stack.slice(0,r.index).concat(t),e&&e(t)}),n)},e.prototype.go=function(t){var e=this,n=this.index+t;if(!(n<0||n>=this.stack.length)){var r=this.stack[n];this.confirmTransition(r,(function(){var t=e.current;e.index=n,e.updateRoute(r),e.router.afterHooks.forEach((function(e){e&&e(r,t)}))}),(function(t){Gt(t,Ft.duplicated)&&(e.index=n)}))}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(ee),xe=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=ht(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!It&&!1!==t.fallback,this.fallback&&(e="hash"),ut||(e="abstract"),this.mode=e,e){case"history":this.history=new le(this,t.base);break;case"hash":this.history=new de(this,t.base,this.fallback);break;case"abstract":this.history=new we(this,t.base);break;default:0}},_e={currentRoute:{configurable:!0}};function Oe(t,e){return t.push(e),function(){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}function ke(t,e,n){var r="hash"===n?"#"+e:e;return t?E(t+"/"+r):r}xe.prototype.match=function(t,e,n){return this.matcher.match(t,e,n)},_e.currentRoute.get=function(){return this.history&&this.history.current},xe.prototype.init=function(t){var e=this;if(this.apps.push(t),t.$once("hook:destroyed",(function(){var n=e.apps.indexOf(t);n>-1&&e.apps.splice(n,1),e.app===t&&(e.app=e.apps[0]||null),e.app||e.history.teardown()})),!this.app){this.app=t;var n=this.history;if(n instanceof le||n instanceof de){var r=function(t){var r=n.current,o=e.options.scrollBehavior,i=It&&o;i&&"fullPath"in t&&kt(e,t,r,!1)},o=function(t){n.setupListeners(),r(t)};n.transitionTo(n.getCurrentLocation(),o,o)}n.listen((function(t){e.apps.forEach((function(e){e._route=t}))}))}},xe.prototype.beforeEach=function(t){return Oe(this.beforeHooks,t)},xe.prototype.beforeResolve=function(t){return Oe(this.resolveHooks,t)},xe.prototype.afterEach=function(t){return Oe(this.afterHooks,t)},xe.prototype.onReady=function(t,e){this.history.onReady(t,e)},xe.prototype.onError=function(t){this.history.onError(t)},xe.prototype.push=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!==typeof Promise)return new Promise((function(e,n){r.history.push(t,e,n)}));this.history.push(t,e,n)},xe.prototype.replace=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!==typeof Promise)return new Promise((function(e,n){r.history.replace(t,e,n)}));this.history.replace(t,e,n)},xe.prototype.go=function(t){this.history.go(t)},xe.prototype.back=function(){this.go(-1)},xe.prototype.forward=function(){this.go(1)},xe.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map((function(t){return Object.keys(t.components).map((function(e){return t.components[e]}))}))):[]},xe.prototype.resolve=function(t,e,n){e=e||this.history.current;var r=tt(t,e,n,this),o=this.match(r,e),i=o.redirectedFrom||o.fullPath,a=this.history.base,c=ke(a,i,this.mode);return{location:r,route:o,href:c,normalizedTo:r,resolved:o}},xe.prototype.getRoutes=function(){return this.matcher.getRoutes()},xe.prototype.addRoute=function(t,e){this.matcher.addRoute(t,e),this.history.current!==m&&this.history.transitionTo(this.history.getCurrentLocation())},xe.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==m&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(xe.prototype,_e),xe.install=st,xe.version="3.5.2",xe.isNavigationFailure=Gt,xe.NavigationFailureType=Ft,xe.START_LOCATION=m,ut&&window.Vue&&window.Vue.use(xe),e["a"]=xe},"8da5":function(t,e,n){"use strict";n.d(e,"a",(function(){return s})),n.d(e,"b",(function(){return u}));var r=n("80d2"),o=[[3.2406,-1.5372,-.4986],[-.9689,1.8758,.0415],[.0557,-.204,1.057]],i=function(t){return t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055},a=[[.4124,.3576,.1805],[.2126,.7152,.0722],[.0193,.1192,.9505]],c=function(t){return t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)};function s(t){for(var e=Array(3),n=i,a=o,c=0;c<3;++c)e[c]=Math.round(255*Object(r["c"])(n(a[c][0]*t[0]+a[c][1]*t[1]+a[c][2]*t[2])));return(e[0]<<16)+(e[1]<<8)+(e[2]<<0)}function u(t){for(var e=[0,0,0],n=c,r=a,o=n((t>>16&255)/255),i=n((t>>8&255)/255),s=n((t>>0&255)/255),u=0;u<3;++u)e[u]=r[u][0]*o+r[u][1]*i+r[u][2]*s;return e}},"90e3":function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol("+String(void 0===t?"":t)+")_"+(++n+r).toString(36)}},9112:function(t,e,n){var r=n("83ab"),o=n("9bf2"),i=n("5c6c");t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},9263:function(t,e,n){"use strict";var r=n("ad6d"),o=n("9f7f"),i=n("5692"),a=n("7c73"),c=n("69f3").get,s=n("fce3"),u=n("107c"),f=RegExp.prototype.exec,l=i("native-string-replace",String.prototype.replace),p=f,d=function(){var t=/a/,e=/b*/g;return f.call(t,"a"),f.call(e,"a"),0!==t.lastIndex||0!==e.lastIndex}(),h=o.UNSUPPORTED_Y||o.BROKEN_CARET,v=void 0!==/()??/.exec("")[1],y=d||v||h||s||u;y&&(p=function(t){var e,n,o,i,s,u,y,m=this,g=c(m),b=g.raw;if(b)return b.lastIndex=m.lastIndex,e=p.call(b,t),m.lastIndex=b.lastIndex,e;var w=g.groups,x=h&&m.sticky,_=r.call(m),O=m.source,k=0,C=t;if(x&&(_=_.replace("y",""),-1===_.indexOf("g")&&(_+="g"),C=String(t).slice(m.lastIndex),m.lastIndex>0&&(!m.multiline||m.multiline&&"\n"!==t[m.lastIndex-1])&&(O="(?: "+O+")",C=" "+C,k++),n=new RegExp("^(?:"+O+")",_)),v&&(n=new RegExp("^"+O+"$(?!\\s)",_)),d&&(o=m.lastIndex),i=f.call(x?n:m,C),x?i?(i.input=i.input.slice(k),i[0]=i[0].slice(k),i.index=m.lastIndex,m.lastIndex+=i[0].length):m.lastIndex=0:d&&i&&(m.lastIndex=m.global?i.index+i[0].length:o),v&&i&&i.length>1&&l.call(i[0],n,(function(){for(s=1;s=51||!o((function(){var t=[];return t[h]=!1,t.concat()[0]!==t})),g=l("concat"),b=function(t){if(!a(t))return!1;var e=t[h];return void 0!==e?!!e:i(t)},w=!m||!g;r({target:"Array",proto:!0,forced:w},{concat:function(t){var e,n,r,o,i,a=c(this),l=f(a,0),p=0;for(e=-1,r=arguments.length;ev)throw TypeError(y);for(n=0;n=v)throw TypeError(y);u(l,p++,i)}return l.length=p,l}})},"9bdd":function(t,e,n){var r=n("825a"),o=n("2a62");t.exports=function(t,e,n,i){try{return i?e(r(n)[0],n[1]):e(n)}catch(a){throw o(t),a}}},"9bf2":function(t,e,n){var r=n("83ab"),o=n("0cfb"),i=n("825a"),a=n("c04e"),c=Object.defineProperty;e.f=r?c:function(t,e,n){if(i(t),e=a(e,!0),i(n),o)try{return c(t,e,n)}catch(r){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(t[e]=n.value),t}},"9ed3":function(t,e,n){"use strict";var r=n("ae93").IteratorPrototype,o=n("7c73"),i=n("5c6c"),a=n("d44e"),c=n("3f8c"),s=function(){return this};t.exports=function(t,e,n){var u=e+" Iterator";return t.prototype=o(r,{next:i(1,n)}),a(t,u,!1,!0),c[u]=s,t}},"9f7f":function(t,e,n){var r=n("d039"),o=function(t,e){return RegExp(t,e)};e.UNSUPPORTED_Y=r((function(){var t=o("a","y");return t.lastIndex=2,null!=t.exec("abcd")})),e.BROKEN_CARET=r((function(){var t=o("^r","gy");return t.lastIndex=2,null!=t.exec("str")}))},a15b:function(t,e,n){"use strict";var r=n("23e7"),o=n("44ad"),i=n("fc6a"),a=n("a640"),c=[].join,s=o!=Object,u=a("join",",");r({target:"Array",proto:!0,forced:s||!u},{join:function(t){return c.call(i(this),void 0===t?",":t)}})},a4b4:function(t,e,n){var r=n("342f");t.exports=/web0s(?!.*chrome)/i.test(r)},a4d3:function(t,e,n){"use strict";var r=n("23e7"),o=n("da84"),i=n("d066"),a=n("c430"),c=n("83ab"),s=n("4930"),u=n("fdbf"),f=n("d039"),l=n("5135"),p=n("e8b5"),d=n("861d"),h=n("825a"),v=n("7b0b"),y=n("fc6a"),m=n("c04e"),g=n("5c6c"),b=n("7c73"),w=n("df75"),x=n("241c"),_=n("057f"),O=n("7418"),k=n("06cf"),C=n("9bf2"),S=n("d1e7"),A=n("9112"),L=n("6eeb"),j=n("5692"),E=n("f772"),$=n("d012"),T=n("90e3"),M=n("b622"),P=n("e538"),I=n("746f"),R=n("d44e"),N=n("69f3"),D=n("b727").forEach,F=E("hidden"),V="Symbol",H="prototype",B=M("toPrimitive"),U=N.set,z=N.getterFor(V),q=Object[H],W=o.Symbol,Z=i("JSON","stringify"),G=k.f,K=C.f,Q=_.f,Y=S.f,X=j("symbols"),J=j("op-symbols"),tt=j("string-to-symbol-registry"),et=j("symbol-to-string-registry"),nt=j("wks"),rt=o.QObject,ot=!rt||!rt[H]||!rt[H].findChild,it=c&&f((function(){return 7!=b(K({},"a",{get:function(){return K(this,"a",{value:7}).a}})).a}))?function(t,e,n){var r=G(q,e);r&&delete q[e],K(t,e,n),r&&t!==q&&K(q,e,r)}:K,at=function(t,e){var n=X[t]=b(W[H]);return U(n,{type:V,tag:t,description:e}),c||(n.description=e),n},ct=u?function(t){return"symbol"==typeof t}:function(t){return Object(t)instanceof W},st=function(t,e,n){t===q&&st(J,e,n),h(t);var r=m(e,!0);return h(n),l(X,r)?(n.enumerable?(l(t,F)&&t[F][r]&&(t[F][r]=!1),n=b(n,{enumerable:g(0,!1)})):(l(t,F)||K(t,F,g(1,{})),t[F][r]=!0),it(t,r,n)):K(t,r,n)},ut=function(t,e){h(t);var n=y(e),r=w(n).concat(ht(n));return D(r,(function(e){c&&!lt.call(n,e)||st(t,e,n[e])})),t},ft=function(t,e){return void 0===e?b(t):ut(b(t),e)},lt=function(t){var e=m(t,!0),n=Y.call(this,e);return!(this===q&&l(X,e)&&!l(J,e))&&(!(n||!l(this,e)||!l(X,e)||l(this,F)&&this[F][e])||n)},pt=function(t,e){var n=y(t),r=m(e,!0);if(n!==q||!l(X,r)||l(J,r)){var o=G(n,r);return!o||!l(X,r)||l(n,F)&&n[F][r]||(o.enumerable=!0),o}},dt=function(t){var e=Q(y(t)),n=[];return D(e,(function(t){l(X,t)||l($,t)||n.push(t)})),n},ht=function(t){var e=t===q,n=Q(e?J:y(t)),r=[];return D(n,(function(t){!l(X,t)||e&&!l(q,t)||r.push(X[t])})),r};if(s||(W=function(){if(this instanceof W)throw TypeError("Symbol is not a constructor");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=T(t),n=function(t){this===q&&n.call(J,t),l(this,F)&&l(this[F],e)&&(this[F][e]=!1),it(this,e,g(1,t))};return c&&ot&&it(q,e,{configurable:!0,set:n}),at(e,t)},L(W[H],"toString",(function(){return z(this).tag})),L(W,"withoutSetter",(function(t){return at(T(t),t)})),S.f=lt,C.f=st,k.f=pt,x.f=_.f=dt,O.f=ht,P.f=function(t){return at(M(t),t)},c&&(K(W[H],"description",{configurable:!0,get:function(){return z(this).description}}),a||L(q,"propertyIsEnumerable",lt,{unsafe:!0}))),r({global:!0,wrap:!0,forced:!s,sham:!s},{Symbol:W}),D(w(nt),(function(t){I(t)})),r({target:V,stat:!0,forced:!s},{for:function(t){var e=String(t);if(l(tt,e))return tt[e];var n=W(e);return tt[e]=n,et[n]=e,n},keyFor:function(t){if(!ct(t))throw TypeError(t+" is not a symbol");if(l(et,t))return et[t]},useSetter:function(){ot=!0},useSimple:function(){ot=!1}}),r({target:"Object",stat:!0,forced:!s,sham:!c},{create:ft,defineProperty:st,defineProperties:ut,getOwnPropertyDescriptor:pt}),r({target:"Object",stat:!0,forced:!s},{getOwnPropertyNames:dt,getOwnPropertySymbols:ht}),r({target:"Object",stat:!0,forced:f((function(){O.f(1)}))},{getOwnPropertySymbols:function(t){return O.f(v(t))}}),Z){var vt=!s||f((function(){var t=W();return"[null]"!=Z([t])||"{}"!=Z({a:t})||"{}"!=Z(Object(t))}));r({target:"JSON",stat:!0,forced:vt},{stringify:function(t,e,n){var r,o=[t],i=1;while(arguments.length>i)o.push(arguments[i++]);if(r=e,(d(e)||void 0!==t)&&!ct(t))return p(e)||(e=function(t,e){if("function"==typeof r&&(e=r.call(this,t,e)),!ct(e))return e}),o[1]=e,Z.apply(null,o)}})}W[H][B]||A(W[H],B,W[H].valueOf),R(W,V),$[F]=!0},a630:function(t,e,n){var r=n("23e7"),o=n("4df4"),i=n("1c7e"),a=!i((function(t){Array.from(t)}));r({target:"Array",stat:!0,forced:a},{from:o})},a640:function(t,e,n){"use strict";var r=n("d039");t.exports=function(t,e){var n=[][t];return!!n&&r((function(){n.call(null,e||function(){throw 1},1)}))}},a691:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},a79d:function(t,e,n){"use strict";var r=n("23e7"),o=n("c430"),i=n("fea9"),a=n("d039"),c=n("d066"),s=n("4840"),u=n("cdf9"),f=n("6eeb"),l=!!i&&a((function(){i.prototype["finally"].call({then:function(){}},(function(){}))}));if(r({target:"Promise",proto:!0,real:!0,forced:l},{finally:function(t){var e=s(this,c("Promise")),n="function"==typeof t;return this.then(n?function(n){return u(e,t()).then((function(){return n}))}:t,n?function(n){return u(e,t()).then((function(){throw n}))}:t)}}),!o&&"function"==typeof i){var p=c("Promise").prototype["finally"];i.prototype["finally"]!==p&&f(i.prototype,"finally",p,{unsafe:!0})}},a9e3:function(t,e,n){"use strict";var r=n("83ab"),o=n("da84"),i=n("94ca"),a=n("6eeb"),c=n("5135"),s=n("c6b6"),u=n("7156"),f=n("c04e"),l=n("d039"),p=n("7c73"),d=n("241c").f,h=n("06cf").f,v=n("9bf2").f,y=n("58a8").trim,m="Number",g=o[m],b=g.prototype,w=s(p(b))==m,x=function(t){var e,n,r,o,i,a,c,s,u=f(t,!1);if("string"==typeof u&&u.length>2)if(u=y(u),e=u.charCodeAt(0),43===e||45===e){if(n=u.charCodeAt(2),88===n||120===n)return NaN}else if(48===e){switch(u.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+u}for(i=u.slice(2),a=i.length,c=0;co)return NaN;return parseInt(i,r)}return+u};if(i(m,!g(" 0o1")||!g("0b1")||g("+0x1"))){for(var _,O=function(t){var e=arguments.length<1?0:t,n=this;return n instanceof O&&(w?l((function(){b.valueOf.call(n)})):s(n)!=m)?u(new g(x(e)),n,O):x(e)},k=r?d(g):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,fromString,range".split(","),C=0;k.length>C;C++)c(g,_=k[C])&&!c(O,_)&&v(O,_,h(g,_));O.prototype=b,b.constructor=O,a(o,m,O)}},ab13:function(t,e,n){var r=n("b622"),o=r("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[o]=!1,"/./"[t](e)}catch(r){}}return!1}},ac1f:function(t,e,n){"use strict";var r=n("23e7"),o=n("9263");r({target:"RegExp",proto:!0,forced:/./.exec!==o},{exec:o})},ad6d:function(t,e,n){"use strict";var r=n("825a");t.exports=function(){var t=r(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},addb:function(t,e){var n=Math.floor,r=function(t,e){var a=t.length,c=n(a/2);return a<8?o(t,e):i(r(t.slice(0,c),e),r(t.slice(c),e),e)},o=function(t,e){var n,r,o=t.length,i=1;while(i0)t[r]=t[--r];r!==i++&&(t[r]=n)}return t},i=function(t,e,n){var r=t.length,o=e.length,i=0,a=0,c=[];while(i3}))}},b041:function(t,e,n){"use strict";var r=n("00ee"),o=n("f5df");t.exports=r?{}.toString:function(){return"[object "+o(this)+"]"}},b0c0:function(t,e,n){var r=n("83ab"),o=n("9bf2").f,i=Function.prototype,a=i.toString,c=/^\s*function ([^ (]*)/,s="name";r&&!(s in i)&&o(i,s,{configurable:!0,get:function(){try{return a.call(this).match(c)[1]}catch(t){return""}}})},b575:function(t,e,n){var r,o,i,a,c,s,u,f,l=n("da84"),p=n("06cf").f,d=n("2cf4").set,h=n("1cdc"),v=n("a4b4"),y=n("605d"),m=l.MutationObserver||l.WebKitMutationObserver,g=l.document,b=l.process,w=l.Promise,x=p(l,"queueMicrotask"),_=x&&x.value;_||(r=function(){var t,e;y&&(t=b.domain)&&t.exit();while(o){e=o.fn,o=o.next;try{e()}catch(n){throw o?a():i=void 0,n}}i=void 0,t&&t.enter()},h||y||v||!m||!g?w&&w.resolve?(u=w.resolve(void 0),u.constructor=w,f=u.then,a=function(){f.call(u,r)}):a=y?function(){b.nextTick(r)}:function(){d.call(l,r)}:(c=!0,s=g.createTextNode(""),new m(r).observe(s,{characterData:!0}),a=function(){s.data=c=!c})),t.exports=_||function(t){var e={fn:t,next:void 0};i&&(i.next=e),o||(o=e,a()),i=e}},b622:function(t,e,n){var r=n("da84"),o=n("5692"),i=n("5135"),a=n("90e3"),c=n("4930"),s=n("fdbf"),u=o("wks"),f=r.Symbol,l=s?f:f&&f.withoutSetter||a;t.exports=function(t){return i(u,t)&&(c||"string"==typeof u[t])||(c&&i(f,t)?u[t]=f[t]:u[t]=l("Symbol."+t)),u[t]}},b64b:function(t,e,n){var r=n("23e7"),o=n("7b0b"),i=n("df75"),a=n("d039"),c=a((function(){i(1)}));r({target:"Object",stat:!0,forced:c},{keys:function(t){return i(o(t))}})},b680:function(t,e,n){"use strict";var r=n("23e7"),o=n("a691"),i=n("408a"),a=n("1148"),c=n("d039"),s=1..toFixed,u=Math.floor,f=function(t,e,n){return 0===e?n:e%2===1?f(t,e-1,n*t):f(t*t,e/2,n)},l=function(t){var e=0,n=t;while(n>=4096)e+=12,n/=4096;while(n>=2)e+=1,n/=2;return e},p=function(t,e,n){var r=-1,o=n;while(++r<6)o+=e*t[r],t[r]=o%1e7,o=u(o/1e7)},d=function(t,e){var n=6,r=0;while(--n>=0)r+=t[n],t[n]=u(r/e),r=r%e*1e7},h=function(t){var e=6,n="";while(--e>=0)if(""!==n||0===e||0!==t[e]){var r=String(t[e]);n=""===n?r:n+a.call("0",7-r.length)+r}return n},v=s&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!c((function(){s.call({})}));r({target:"Number",proto:!0,forced:v},{toFixed:function(t){var e,n,r,c,s=i(this),u=o(t),v=[0,0,0,0,0,0],y="",m="0";if(u<0||u>20)throw RangeError("Incorrect fraction digits");if(s!=s)return"NaN";if(s<=-1e21||s>=1e21)return String(s);if(s<0&&(y="-",s=-s),s>1e-21)if(e=l(s*f(2,69,1))-69,n=e<0?s*f(2,-e,1):s/f(2,e,1),n*=4503599627370496,e=52-e,e>0){p(v,0,n),r=u;while(r>=7)p(v,1e7,0),r-=7;p(v,f(10,r,1),0),r=e-1;while(r>=23)d(v,1<<23),r-=23;d(v,1<0?(c=m.length,m=y+(c<=u?"0."+a.call("0",u-c)+m:m.slice(0,c-u)+"."+m.slice(c-u))):m=y+m,m}})},b727:function(t,e,n){var r=n("0366"),o=n("44ad"),i=n("7b0b"),a=n("50c4"),c=n("65f0"),s=[].push,u=function(t){var e=1==t,n=2==t,u=3==t,f=4==t,l=6==t,p=7==t,d=5==t||l;return function(h,v,y,m){for(var g,b,w=i(h),x=o(w),_=r(v,y,3),O=a(x.length),k=0,C=m||c,S=e?C(h,O):n||p?C(h,0):void 0;O>k;k++)if((d||k in x)&&(g=x[k],b=_(g,k,w),t))if(e)S[k]=b;else if(b)switch(t){case 3:return!0;case 5:return g;case 6:return k;case 2:s.call(S,g)}else switch(t){case 4:return!1;case 7:s.call(S,g)}return l?-1:u||f?f:S}};t.exports={forEach:u(0),map:u(1),filter:u(2),some:u(3),every:u(4),find:u(5),findIndex:u(6),filterOut:u(7)}},bb2f:function(t,e,n){var r=n("d039");t.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},bd0c:function(t,e,n){},c04e:function(t,e,n){var r=n("861d");t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},c430:function(t,e){t.exports=!1},c6b6:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},c6cd:function(t,e,n){var r=n("da84"),o=n("ce4e"),i="__core-js_shared__",a=r[i]||o(i,{});t.exports=a},c8ba:function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(r){"object"===typeof window&&(n=window)}t.exports=n},c8d2:function(t,e,n){var r=n("d039"),o=n("5899"),i="​…᠎";t.exports=function(t){return r((function(){return!!o[t]()||i[t]()!=i||o[t].name!==t}))}},ca84:function(t,e,n){var r=n("5135"),o=n("fc6a"),i=n("4d64").indexOf,a=n("d012");t.exports=function(t,e){var n,c=o(t),s=0,u=[];for(n in c)!r(a,n)&&r(c,n)&&u.push(n);while(e.length>s)r(c,n=e[s++])&&(~i(u,n)||u.push(n));return u}},caad:function(t,e,n){"use strict";var r=n("23e7"),o=n("4d64").includes,i=n("44d2");r({target:"Array",proto:!0},{includes:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i("includes")},cb29:function(t,e,n){var r=n("23e7"),o=n("81d5"),i=n("44d2");r({target:"Array",proto:!0},{fill:o}),i("fill")},cc12:function(t,e,n){var r=n("da84"),o=n("861d"),i=r.document,a=o(i)&&o(i.createElement);t.exports=function(t){return a?i.createElement(t):{}}},cca6:function(t,e,n){var r=n("23e7"),o=n("60da");r({target:"Object",stat:!0,forced:Object.assign!==o},{assign:o})},cdf9:function(t,e,n){var r=n("825a"),o=n("861d"),i=n("f069");t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t),a=n.resolve;return a(e),n.promise}},ce4e:function(t,e,n){var r=n("da84"),o=n("9112");t.exports=function(t,e){try{o(r,t,e)}catch(n){r[t]=e}return e}},d012:function(t,e){t.exports={}},d039:function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},d066:function(t,e,n){var r=n("428f"),o=n("da84"),i=function(t){return"function"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t])||i(o[t]):r[t]&&r[t][e]||o[t]&&o[t][e]}},d1e7:function(t,e,n){"use strict";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);e.f=i?function(t){var e=o(this,t);return!!e&&e.enumerable}:r},d28b:function(t,e,n){var r=n("746f");r("iterator")},d2bb:function(t,e,n){var r=n("825a"),o=n("3bbe");t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{t=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set,t.call(n,[]),e=n instanceof Array}catch(i){}return function(n,i){return r(n),o(i),e?t.call(n,i):n.__proto__=i,n}}():void 0)},d3b7:function(t,e,n){var r=n("00ee"),o=n("6eeb"),i=n("b041");r||o(Object.prototype,"toString",i,{unsafe:!0})},d44e:function(t,e,n){var r=n("9bf2").f,o=n("5135"),i=n("b622"),a=i("toStringTag");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,a)&&r(t,a,{configurable:!0,value:e})}},d784:function(t,e,n){"use strict";n("ac1f");var r=n("6eeb"),o=n("9263"),i=n("d039"),a=n("b622"),c=n("9112"),s=a("species"),u=RegExp.prototype;t.exports=function(t,e,n,f){var l=a(t),p=!i((function(){var e={};return e[l]=function(){return 7},7!=""[t](e)})),d=p&&!i((function(){var e=!1,n=/a/;return"split"===t&&(n={},n.constructor={},n.constructor[s]=function(){return n},n.flags="",n[l]=/./[l]),n.exec=function(){return e=!0,null},n[l](""),!e}));if(!p||!d||n){var h=/./[l],v=e(l,""[t],(function(t,e,n,r,i){var a=e.exec;return a===o||a===u.exec?p&&!i?{done:!0,value:h.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}));r(String.prototype,t,v[0]),r(u,l,v[1])}f&&c(u[l],"sham",!0)}},d81d:function(t,e,n){"use strict";var r=n("23e7"),o=n("b727").map,i=n("1dde"),a=i("map");r({target:"Array",proto:!0,forced:!a},{map:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},d998:function(t,e,n){var r=n("342f");t.exports=/MSIE|Trident/.test(r)},d9bd:function(t,e,n){"use strict";n.d(e,"c",(function(){return i})),n.d(e,"b",(function(){return a})),n.d(e,"a",(function(){return c}));n("caad"),n("2532"),n("99af"),n("ac1f"),n("5319"),n("b0c0"),n("466d"),n("a15b"),n("d81d"),n("38cf");var r=n("f309");function o(t,e,n){if(!r["a"].config.silent){if(n&&(e={_isVue:!0,$parent:n,$options:e}),e){if(e.$_alreadyWarned=e.$_alreadyWarned||[],e.$_alreadyWarned.includes(t))return;e.$_alreadyWarned.push(t)}return"[Vuetify] ".concat(t)+(e?l(e):"")}}function i(t,e,n){var r=o(t,e,n);null!=r&&console.warn(r)}function a(t,e,n){var r=o(t,e,n);null!=r&&console.error(r)}function c(t,e,n,r){a("[BREAKING] '".concat(t,"' has been removed, use '").concat(e,"' instead. For more information, see the upgrade guide https://github.com/vuetifyjs/vuetify/releases/tag/v2.0.0#user-content-upgrade-guide"),n,r)}var s=/(?:^|[-_])(\w)/g,u=function(t){return t.replace(s,(function(t){return t.toUpperCase()})).replace(/[-_]/g,"")};function f(t,e){if(t.$root===t)return"";var n="function"===typeof t&&null!=t.cid?t.options:t._isVue?t.$options||t.constructor.options:t||{},r=n.name||n._componentTag,o=n.__file;if(!r&&o){var i=o.match(/([^/\\]+)\.vue$/);r=i&&i[1]}return(r?"<".concat(u(r),">"):"")+(o&&!1!==e?" at ".concat(o):"")}function l(t){if(t._isVue&&t.$parent){var e=[],n=0;while(t){if(e.length>0){var r=e[e.length-1];if(r.constructor===t.constructor){n++,t=t.$parent;continue}n>0&&(e[e.length-1]=[r,n],n=0)}e.push(t),t=t.$parent}return"\n\nfound in\n\n"+e.map((function(t,e){return"".concat(0===e?"---\x3e ":" ".repeat(5+2*e)).concat(Array.isArray(t)?"".concat(f(t[0]),"... (").concat(t[1]," recursive calls)"):f(t))})).join("\n")}return"\n\n(found in ".concat(f(t),")")}},da84:function(t,e,n){(function(e){var n=function(t){return t&&t.Math==Math&&t};t.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof e&&e)||function(){return this}()||Function("return this")()}).call(this,n("c8ba"))},dbb4:function(t,e,n){var r=n("23e7"),o=n("83ab"),i=n("56ef"),a=n("fc6a"),c=n("06cf"),s=n("8418");r({target:"Object",stat:!0,sham:!o},{getOwnPropertyDescriptors:function(t){var e,n,r=a(t),o=c.f,u=i(r),f={},l=0;while(u.length>l)n=o(r,e=u[l++]),void 0!==n&&s(f,e,n);return f}})},dca8:function(t,e,n){var r=n("23e7"),o=n("bb2f"),i=n("d039"),a=n("861d"),c=n("f183").onFreeze,s=Object.freeze,u=i((function(){s(1)}));r({target:"Object",stat:!0,forced:u,sham:!o},{freeze:function(t){return s&&a(t)?s(c(t)):t}})},ddb0:function(t,e,n){var r=n("da84"),o=n("fdbc"),i=n("e260"),a=n("9112"),c=n("b622"),s=c("iterator"),u=c("toStringTag"),f=i.values;for(var l in o){var p=r[l],d=p&&p.prototype;if(d){if(d[s]!==f)try{a(d,s,f)}catch(v){d[s]=f}if(d[u]||a(d,u,l),o[l])for(var h in i)if(d[h]!==i[h])try{a(d,h,i[h])}catch(v){d[h]=i[h]}}}},df75:function(t,e,n){var r=n("ca84"),o=n("7839");t.exports=Object.keys||function(t){return r(t,o)}},df86:function(t,e,n){},e01a:function(t,e,n){"use strict";var r=n("23e7"),o=n("83ab"),i=n("da84"),a=n("5135"),c=n("861d"),s=n("9bf2").f,u=n("e893"),f=i.Symbol;if(o&&"function"==typeof f&&(!("description"in f.prototype)||void 0!==f().description)){var l={},p=function(){var t=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),e=this instanceof p?new f(t):void 0===t?f():f(t);return""===t&&(l[e]=!0),e};u(p,f);var d=p.prototype=f.prototype;d.constructor=p;var h=d.toString,v="Symbol(test)"==String(f("test")),y=/^Symbol\((.*)\)[^)]+$/;s(d,"description",{configurable:!0,get:function(){var t=c(this)?this.valueOf():this,e=h.call(t);if(a(l,t))return"";var n=v?e.slice(7,-1):e.replace(y,"$1");return""===n?void 0:n}}),r({global:!0,forced:!0},{Symbol:p})}},e163:function(t,e,n){var r=n("5135"),o=n("7b0b"),i=n("f772"),a=n("e177"),c=i("IE_PROTO"),s=Object.prototype;t.exports=a?Object.getPrototypeOf:function(t){return t=o(t),r(t,c)?t[c]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?s:null}},e177:function(t,e,n){var r=n("d039");t.exports=!r((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},e260:function(t,e,n){"use strict";var r=n("fc6a"),o=n("44d2"),i=n("3f8c"),a=n("69f3"),c=n("7dd0"),s="Array Iterator",u=a.set,f=a.getterFor(s);t.exports=c(Array,"Array",(function(t,e){u(this,{type:s,target:r(t),index:0,kind:e})}),(function(){var t=f(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,{value:void 0,done:!0}):"keys"==n?{value:r,done:!1}:"values"==n?{value:e[r],done:!1}:{value:[r,e[r]],done:!1}}),"values"),i.Arguments=i.Array,o("keys"),o("values"),o("entries")},e2cc:function(t,e,n){var r=n("6eeb");t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},e439:function(t,e,n){var r=n("23e7"),o=n("d039"),i=n("fc6a"),a=n("06cf").f,c=n("83ab"),s=o((function(){a(1)})),u=!c||s;r({target:"Object",stat:!0,forced:u,sham:!c},{getOwnPropertyDescriptor:function(t,e){return a(i(t),e)}})},e538:function(t,e,n){var r=n("b622");e.f=r},e667:function(t,e){t.exports=function(t){try{return{error:!1,value:t()}}catch(e){return{error:!0,value:e}}}},e6cf:function(t,e,n){"use strict";var r,o,i,a,c=n("23e7"),s=n("c430"),u=n("da84"),f=n("d066"),l=n("fea9"),p=n("6eeb"),d=n("e2cc"),h=n("d2bb"),v=n("d44e"),y=n("2626"),m=n("861d"),g=n("1c0b"),b=n("19aa"),w=n("8925"),x=n("2266"),_=n("1c7e"),O=n("4840"),k=n("2cf4").set,C=n("b575"),S=n("cdf9"),A=n("44de"),L=n("f069"),j=n("e667"),E=n("69f3"),$=n("94ca"),T=n("b622"),M=n("6069"),P=n("605d"),I=n("2d00"),R=T("species"),N="Promise",D=E.get,F=E.set,V=E.getterFor(N),H=l&&l.prototype,B=l,U=H,z=u.TypeError,q=u.document,W=u.process,Z=L.f,G=Z,K=!!(q&&q.createEvent&&u.dispatchEvent),Q="function"==typeof PromiseRejectionEvent,Y="unhandledrejection",X="rejectionhandled",J=0,tt=1,et=2,nt=1,rt=2,ot=!1,it=$(N,(function(){var t=w(B),e=t!==String(B);if(!e&&66===I)return!0;if(s&&!U["finally"])return!0;if(I>=51&&/native code/.test(t))return!1;var n=new B((function(t){t(1)})),r=function(t){t((function(){}),(function(){}))},o=n.constructor={};return o[R]=r,ot=n.then((function(){}))instanceof r,!ot||!e&&M&&!Q})),at=it||!_((function(t){B.all(t)["catch"]((function(){}))})),ct=function(t){var e;return!(!m(t)||"function"!=typeof(e=t.then))&&e},st=function(t,e){if(!t.notified){t.notified=!0;var n=t.reactions;C((function(){var r=t.value,o=t.state==tt,i=0;while(n.length>i){var a,c,s,u=n[i++],f=o?u.ok:u.fail,l=u.resolve,p=u.reject,d=u.domain;try{f?(o||(t.rejection===rt&&pt(t),t.rejection=nt),!0===f?a=r:(d&&d.enter(),a=f(r),d&&(d.exit(),s=!0)),a===u.promise?p(z("Promise-chain cycle")):(c=ct(a))?c.call(a,l,p):l(a)):p(r)}catch(h){d&&!s&&d.exit(),p(h)}}t.reactions=[],t.notified=!1,e&&!t.rejection&&ft(t)}))}},ut=function(t,e,n){var r,o;K?(r=q.createEvent("Event"),r.promise=e,r.reason=n,r.initEvent(t,!1,!0),u.dispatchEvent(r)):r={promise:e,reason:n},!Q&&(o=u["on"+t])?o(r):t===Y&&A("Unhandled promise rejection",n)},ft=function(t){k.call(u,(function(){var e,n=t.facade,r=t.value,o=lt(t);if(o&&(e=j((function(){P?W.emit("unhandledRejection",r,n):ut(Y,n,r)})),t.rejection=P||lt(t)?rt:nt,e.error))throw e.value}))},lt=function(t){return t.rejection!==nt&&!t.parent},pt=function(t){k.call(u,(function(){var e=t.facade;P?W.emit("rejectionHandled",e):ut(X,e,t.value)}))},dt=function(t,e,n){return function(r){t(e,r,n)}},ht=function(t,e,n){t.done||(t.done=!0,n&&(t=n),t.value=e,t.state=et,st(t,!0))},vt=function(t,e,n){if(!t.done){t.done=!0,n&&(t=n);try{if(t.facade===e)throw z("Promise can't be resolved itself");var r=ct(e);r?C((function(){var n={done:!1};try{r.call(e,dt(vt,n,t),dt(ht,n,t))}catch(o){ht(n,o,t)}})):(t.value=e,t.state=tt,st(t,!1))}catch(o){ht({done:!1},o,t)}}};if(it&&(B=function(t){b(this,B,N),g(t),r.call(this);var e=D(this);try{t(dt(vt,e),dt(ht,e))}catch(n){ht(e,n)}},U=B.prototype,r=function(t){F(this,{type:N,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:J,value:void 0})},r.prototype=d(U,{then:function(t,e){var n=V(this),r=Z(O(this,B));return r.ok="function"!=typeof t||t,r.fail="function"==typeof e&&e,r.domain=P?W.domain:void 0,n.parent=!0,n.reactions.push(r),n.state!=J&&st(n,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new r,e=D(t);this.promise=t,this.resolve=dt(vt,e),this.reject=dt(ht,e)},L.f=Z=function(t){return t===B||t===i?new o(t):G(t)},!s&&"function"==typeof l&&H!==Object.prototype)){a=H.then,ot||(p(H,"then",(function(t,e){var n=this;return new B((function(t,e){a.call(n,t,e)})).then(t,e)}),{unsafe:!0}),p(H,"catch",U["catch"],{unsafe:!0}));try{delete H.constructor}catch(yt){}h&&h(H,U)}c({global:!0,wrap:!0,forced:it},{Promise:B}),v(B,N,!1,!0),y(N),i=f(N),c({target:N,stat:!0,forced:it},{reject:function(t){var e=Z(this);return e.reject.call(void 0,t),e.promise}}),c({target:N,stat:!0,forced:s||it},{resolve:function(t){return S(s&&this===i?B:this,t)}}),c({target:N,stat:!0,forced:at},{all:function(t){var e=this,n=Z(e),r=n.resolve,o=n.reject,i=j((function(){var n=g(e.resolve),i=[],a=0,c=1;x(t,(function(t){var s=a++,u=!1;i.push(void 0),c++,n.call(e,t).then((function(t){u||(u=!0,i[s]=t,--c||r(i))}),o)})),--c||r(i)}));return i.error&&o(i.value),n.promise},race:function(t){var e=this,n=Z(e),r=n.reject,o=j((function(){var o=g(e.resolve);x(t,(function(t){o.call(e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}})},e893:function(t,e,n){var r=n("5135"),o=n("56ef"),i=n("06cf"),a=n("9bf2");t.exports=function(t,e){for(var n=o(e),c=a.f,s=i.f,u=0;u1&&void 0!==arguments[1]?arguments[1]:{};if(!u.installed){u.installed=!0,c["a"]!==t&&Object(s["b"])("Multiple instances of Vue detected\nSee https://github.com/vuetifyjs/vuetify/issues/4068\n\nIf you're seeing \"$attrs is readonly\", it's caused by this");var n=e.components||{},r=e.directives||{};for(var o in r){var i=r[o];t.directive(o,i)}(function e(n){if(n){for(var r in n){var o=n[r];o&&!e(o.$_vuetify_subcomponents)&&t.component(r,o)}return!0}return!1})(n),t.$_vuetify_installed||(t.$_vuetify_installed=!0,t.mixin({beforeCreate:function(){var e=this.$options;e.vuetify?(e.vuetify.init(this,this.$ssrContext),this.$vuetify=t.observable(e.vuetify.framework)):this.$vuetify=e.parent&&e.parent.$vuetify||this},beforeMount:function(){this.$options.vuetify&&this.$el&&this.$el.hasAttribute("data-server-rendered")&&(this.$vuetify.isHydrating=!0,this.$vuetify.breakpoint.update(!0))},mounted:function(){this.$options.vuetify&&this.$vuetify.isHydrating&&(this.$vuetify.isHydrating=!1,this.$vuetify.breakpoint.update())}}))}}n("a4d3"),n("b64b");function f(t,e){if(null==t)return{};var n,r,o={},i=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}function l(t,e){if(null==t)return{};var n,r,o=f(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function p(t,e){return p=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},p(t,e)}function d(t,e){if("function"!==typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&p(t,e)}n("4ae1"),n("3410");function h(t){return h=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},h(t)}function v(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}var y=n("7037"),m=n.n(y);function g(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function b(t,e){return!e||"object"!==m()(e)&&"function"!==typeof e?g(t):e}function w(t){var e=v();return function(){var n,r=h(t);if(e){var o=h(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return b(this,n)}}n("95ed");var x={badge:"Badge",close:"Close",dataIterator:{noResultsText:"No matching records found",loadingText:"Loading items..."},dataTable:{itemsPerPageText:"Rows per page:",ariaLabel:{sortDescending:"Sorted descending.",sortAscending:"Sorted ascending.",sortNone:"Not sorted.",activateNone:"Activate to remove sorting.",activateDescending:"Activate to sort descending.",activateAscending:"Activate to sort ascending."},sortBy:"Sort by"},dataFooter:{itemsPerPageText:"Items per page:",itemsPerPageAll:"All",nextPage:"Next page",prevPage:"Previous page",firstPage:"First page",lastPage:"Last page",pageText:"{0}-{1} of {2}"},datePicker:{itemsSelected:"{0} selected",nextMonthAriaLabel:"Next month",nextYearAriaLabel:"Next year",prevMonthAriaLabel:"Previous month",prevYearAriaLabel:"Previous year"},noDataText:"No data available",carousel:{prev:"Previous visual",next:"Next visual",ariaLabel:{delimiter:"Carousel slide {0} of {1}"}},calendar:{moreEvents:"{0} more"},fileInput:{counter:"{0} files",counterSize:"{0} files ({1} in total)"},timePicker:{am:"AM",pm:"PM"},pagination:{ariaLabel:{wrapper:"Pagination Navigation",next:"Next page",previous:"Previous page",page:"Goto Page {0}",currentPage:"Current Page, Page {0}"}},rating:{ariaLabel:{icon:"Rating {0} of {1}"}}},_={breakpoint:{mobileBreakpoint:1264,scrollBarWidth:16,thresholds:{xs:600,sm:960,md:1280,lg:1920}},icons:{iconfont:"mdi",values:{}},lang:{current:"en",locales:{en:x},t:void 0},rtl:!1,theme:{dark:!1,default:"light",disable:!1,options:{cspNonce:void 0,customProperties:void 0,minifyTheme:void 0,themeCache:void 0,variations:!0},themes:{light:{primary:"#1976D2",secondary:"#424242",accent:"#82B1FF",error:"#FF5252",info:"#2196F3",success:"#4CAF50",warning:"#FB8C00"},dark:{primary:"#2196F3",secondary:"#424242",accent:"#FF4081",error:"#FF5252",info:"#2196F3",success:"#4CAF50",warning:"#FB8C00"}}}},O=n("80d2"),k=function(){function t(){o(this,t),this.framework={}}return a(t,[{key:"init",value:function(t,e){}}]),t}(),C=["preset"],S=function(t){d(n,t);var e=w(n);function n(t,r){var i;o(this,n),i=e.call(this);var a=Object(O["l"])({},_),c=r.userPreset,u=c.preset,f=void 0===u?{}:u,p=l(c,C);return null!=f.preset&&Object(s["c"])("Global presets do not support the **preset** option, it can be safely omitted"),r.preset=Object(O["l"])(Object(O["l"])(a,f),p),i}return n}(k);S.property="presets";var A=n("ade3"),L=(n("07ac"),function(t){d(n,t);var e=w(n);function n(){var t;return o(this,n),t=e.apply(this,arguments),t.bar=0,t.top=0,t.left=0,t.insetFooter=0,t.right=0,t.bottom=0,t.footer=0,t.application={bar:{},top:{},left:{},insetFooter:{},right:{},bottom:{},footer:{}},t}return a(n,[{key:"register",value:function(t,e,n){this.application[e]=Object(A["a"])({},t,n),this.update(e)}},{key:"unregister",value:function(t,e){null!=this.application[e][t]&&(delete this.application[e][t],this.update(e))}},{key:"update",value:function(t){this[t]=Object.values(this.application[t]).reduce((function(t,e){return t+e}),0)}}]),n}(k));L.property="application";n("b0c0");var j=function(t){d(n,t);var e=w(n);function n(t){var r;o(this,n),r=e.call(this),r.xs=!1,r.sm=!1,r.md=!1,r.lg=!1,r.xl=!1,r.xsOnly=!1,r.smOnly=!1,r.smAndDown=!1,r.smAndUp=!1,r.mdOnly=!1,r.mdAndDown=!1,r.mdAndUp=!1,r.lgOnly=!1,r.lgAndDown=!1,r.lgAndUp=!1,r.xlOnly=!1,r.name="xs",r.height=0,r.width=0,r.mobile=!0,r.resizeTimeout=0;var i=t[n.property],a=i.mobileBreakpoint,c=i.scrollBarWidth,s=i.thresholds;return r.mobileBreakpoint=a,r.scrollBarWidth=c,r.thresholds=s,r}return a(n,[{key:"init",value:function(){this.update(),"undefined"!==typeof window&&window.addEventListener("resize",this.onResize.bind(this),{passive:!0})}},{key:"update",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=t?0:this.getClientHeight(),n=t?0:this.getClientWidth(),r=n=this.thresholds.lg-this.scrollBarWidth;switch(this.height=e,this.width=n,this.xs=r,this.sm=o,this.md=i,this.lg=a,this.xl=c,this.xsOnly=r,this.smOnly=o,this.smAndDown=(r||o)&&!(i||a||c),this.smAndUp=!r&&(o||i||a||c),this.mdOnly=i,this.mdAndDown=(r||o||i)&&!(a||c),this.mdAndUp=!(r||o)&&(i||a||c),this.lgOnly=a,this.lgAndDown=(r||o||i||a)&&!c,this.lgAndUp=!(r||o||i)&&(a||c),this.xlOnly=c,!0){case r:this.name="xs";break;case o:this.name="sm";break;case i:this.name="md";break;case a:this.name="lg";break;default:this.name="xl";break}if("number"!==typeof this.mobileBreakpoint){var s={xs:0,sm:1,md:2,lg:3,xl:4},u=s[this.name],f=s[this.mobileBreakpoint];this.mobile=u<=f}else this.mobile=n1&&void 0!==arguments[1]?arguments[1]:{},n=Object(E["a"])({container:document.scrollingElement||document.body||document.documentElement,duration:500,offset:0,easing:"easeInOutCubic",appOffset:!0},e),o=q(n.container);if(n.appOffset&&G.framework.application){var i=o.classList.contains("v-navigation-drawer"),a=o.classList.contains("v-navigation-drawer--clipped"),c=G.framework.application,s=c.bar,u=c.top;n.offset+=s,i&&!a||(n.offset+=u)}var f,l=performance.now();f="number"===typeof t?z(t)-n.offset:z(t)-z(o)-n.offset;var p=o.scrollTop;if(f===p)return Promise.resolve(f);var d="function"===typeof n.easing?n.easing:r[n.easing];if(!d)throw new TypeError('Easing function "'.concat(n.easing,'" not found.'));return new Promise((function(t){return requestAnimationFrame((function e(r){var i=r-l,a=Math.abs(n.duration?Math.min(i/n.duration,1):1);o.scrollTop=Math.floor(p+(f-p)*d(a));var c=o===document.body?document.documentElement.clientHeight:o.clientHeight;if(1===a||c+o.scrollTop===o.scrollHeight)return t(f);requestAnimationFrame(e)}))}))}G.framework={},G.init=function(){};var K=function(t){d(n,t);var e=w(n);function n(){var t;return o(this,n),t=e.call(this),b(t,G)}return n}(k);K.property="goTo";n("ddb0"),n("dca8");var Q={complete:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z",cancel:"M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z",close:"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z",delete:"M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z",clear:"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z",success:"M12,2C17.52,2 22,6.48 22,12C22,17.52 17.52,22 12,22C6.48,22 2,17.52 2,12C2,6.48 6.48,2 12,2M11,16.5L18,9.5L16.59,8.09L11,13.67L7.91,10.59L6.5,12L11,16.5Z",info:"M13,9H11V7H13M13,17H11V11H13M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z",warning:"M11,4.5H13V15.5H11V4.5M13,17.5V19.5H11V17.5H13Z",error:"M13,14H11V10H13M13,18H11V16H13M1,21H23L12,2L1,21Z",prev:"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z",next:"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z",checkboxOn:"M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3Z",checkboxOff:"M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3M19,5V19H5V5H19Z",checkboxIndeterminate:"M17,13H7V11H17M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3Z",delimiter:"M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z",sort:"M13,20H11V8L5.5,13.5L4.08,12.08L12,4.16L19.92,12.08L18.5,13.5L13,8V20Z",expand:"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z",menu:"M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z",subgroup:"M7,10L12,15L17,10H7Z",dropdown:"M7,10L12,15L17,10H7Z",radioOn:"M12,20C7.58,20 4,16.42 4,12C4,7.58 7.58,4 12,4C16.42,4 20,7.58 20,12C20,16.42 16.42,20 12,20M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2M12,7C9.24,7 7,9.24 7,12C7,14.76 9.24,17 12,17C14.76,17 17,14.76 17,12C17,9.24 14.76,7 12,7Z",radioOff:"M12,20C7.58,20 4,16.42 4,12C4,7.58 7.58,4 12,4C16.42,4 20,7.58 20,12C20,16.42 16.42,20 12,20M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z",edit:"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z",ratingEmpty:"M12,15.39L8.24,17.66L9.23,13.38L5.91,10.5L10.29,10.13L12,6.09L13.71,10.13L18.09,10.5L14.77,13.38L15.76,17.66M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z",ratingFull:"M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z",ratingHalf:"M12,15.4V6.1L13.71,10.13L18.09,10.5L14.77,13.39L15.76,17.67M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z",loading:"M19,8L15,12H18C18,15.31 15.31,18 12,18C11,18 10.03,17.75 9.2,17.3L7.74,18.76C8.97,19.54 10.43,20 12,20C16.42,20 20,16.42 20,12H23M6,12C6,8.69 8.69,6 12,6C13,6 13.97,6.25 14.8,6.7L16.26,5.24C15.03,4.46 13.57,4 12,4C7.58,4 4,7.58 4,12H1L5,16L9,12",first:"M18.41,16.59L13.82,12L18.41,7.41L17,6L11,12L17,18L18.41,16.59M6,6H8V18H6V6Z",last:"M5.59,7.41L10.18,12L5.59,16.59L7,18L13,12L7,6L5.59,7.41M16,6H18V18H16V6Z",unfold:"M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z",file:"M16.5,6V17.5C16.5,19.71 14.71,21.5 12.5,21.5C10.29,21.5 8.5,19.71 8.5,17.5V5C8.5,3.62 9.62,2.5 11,2.5C12.38,2.5 13.5,3.62 13.5,5V15.5C13.5,16.05 13.05,16.5 12.5,16.5C11.95,16.5 11.5,16.05 11.5,15.5V6H10V15.5C10,16.88 11.12,18 12.5,18C13.88,18 15,16.88 15,15.5V5C15,2.79 13.21,1 11,1C8.79,1 7,2.79 7,5V17.5C7,20.54 9.46,23 12.5,23C15.54,23 18,20.54 18,17.5V6H16.5Z",plus:"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z",minus:"M19,13H5V11H19V13Z"},Y=Q,X={complete:"check",cancel:"cancel",close:"close",delete:"cancel",clear:"clear",success:"check_circle",info:"info",warning:"priority_high",error:"warning",prev:"chevron_left",next:"chevron_right",checkboxOn:"check_box",checkboxOff:"check_box_outline_blank",checkboxIndeterminate:"indeterminate_check_box",delimiter:"fiber_manual_record",sort:"arrow_upward",expand:"keyboard_arrow_down",menu:"menu",subgroup:"arrow_drop_down",dropdown:"arrow_drop_down",radioOn:"radio_button_checked",radioOff:"radio_button_unchecked",edit:"edit",ratingEmpty:"star_border",ratingFull:"star",ratingHalf:"star_half",loading:"cached",first:"first_page",last:"last_page",unfold:"unfold_more",file:"attach_file",plus:"add",minus:"remove"},J=X,tt={complete:"mdi-check",cancel:"mdi-close-circle",close:"mdi-close",delete:"mdi-close-circle",clear:"mdi-close",success:"mdi-check-circle",info:"mdi-information",warning:"mdi-exclamation",error:"mdi-alert",prev:"mdi-chevron-left",next:"mdi-chevron-right",checkboxOn:"mdi-checkbox-marked",checkboxOff:"mdi-checkbox-blank-outline",checkboxIndeterminate:"mdi-minus-box",delimiter:"mdi-circle",sort:"mdi-arrow-up",expand:"mdi-chevron-down",menu:"mdi-menu",subgroup:"mdi-menu-down",dropdown:"mdi-menu-down",radioOn:"mdi-radiobox-marked",radioOff:"mdi-radiobox-blank",edit:"mdi-pencil",ratingEmpty:"mdi-star-outline",ratingFull:"mdi-star",ratingHalf:"mdi-star-half-full",loading:"mdi-cached",first:"mdi-page-first",last:"mdi-page-last",unfold:"mdi-unfold-more-horizontal",file:"mdi-paperclip",plus:"mdi-plus",minus:"mdi-minus"},et=tt,nt={complete:"fas fa-check",cancel:"fas fa-times-circle",close:"fas fa-times",delete:"fas fa-times-circle",clear:"fas fa-times-circle",success:"fas fa-check-circle",info:"fas fa-info-circle",warning:"fas fa-exclamation",error:"fas fa-exclamation-triangle",prev:"fas fa-chevron-left",next:"fas fa-chevron-right",checkboxOn:"fas fa-check-square",checkboxOff:"far fa-square",checkboxIndeterminate:"fas fa-minus-square",delimiter:"fas fa-circle",sort:"fas fa-sort-up",expand:"fas fa-chevron-down",menu:"fas fa-bars",subgroup:"fas fa-caret-down",dropdown:"fas fa-caret-down",radioOn:"far fa-dot-circle",radioOff:"far fa-circle",edit:"fas fa-edit",ratingEmpty:"far fa-star",ratingFull:"fas fa-star",ratingHalf:"fas fa-star-half",loading:"fas fa-sync",first:"fas fa-step-backward",last:"fas fa-step-forward",unfold:"fas fa-arrows-alt-v",file:"fas fa-paperclip",plus:"fas fa-plus",minus:"fas fa-minus"},rt=nt,ot={complete:"fa fa-check",cancel:"fa fa-times-circle",close:"fa fa-times",delete:"fa fa-times-circle",clear:"fa fa-times-circle",success:"fa fa-check-circle",info:"fa fa-info-circle",warning:"fa fa-exclamation",error:"fa fa-exclamation-triangle",prev:"fa fa-chevron-left",next:"fa fa-chevron-right",checkboxOn:"fa fa-check-square",checkboxOff:"fa fa-square-o",checkboxIndeterminate:"fa fa-minus-square",delimiter:"fa fa-circle",sort:"fa fa-sort-up",expand:"fa fa-chevron-down",menu:"fa fa-bars",subgroup:"fa fa-caret-down",dropdown:"fa fa-caret-down",radioOn:"fa fa-dot-circle-o",radioOff:"fa fa-circle-o",edit:"fa fa-pencil",ratingEmpty:"fa fa-star-o",ratingFull:"fa fa-star",ratingHalf:"fa fa-star-half-o",loading:"fa fa-refresh",first:"fa fa-step-backward",last:"fa fa-step-forward",unfold:"fa fa-angle-double-down",file:"fa fa-paperclip",plus:"fa fa-plus",minus:"fa fa-minus"},it=ot;n("ac1f"),n("1276");function at(t,e){var n={};for(var r in e)n[r]={component:t,props:{icon:e[r].split(" fa-")}};return n}var ct=at("font-awesome-icon",rt),st=Object.freeze({mdiSvg:Y,md:J,mdi:et,fa:rt,fa4:it,faSvg:ct}),ut=function(t){d(n,t);var e=w(n);function n(t){var r;o(this,n),r=e.call(this);var i=t[n.property],a=i.iconfont,c=i.values,s=i.component;return r.component=s,r.iconfont=a,r.values=Object(O["l"])(st[a],c),r}return n}(k);ut.property="icons";n("e01a"),n("5319"),n("2ca0"),n("99af");var ft="$vuetify.",lt=Symbol("Lang fallback");function pt(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3?arguments[3]:void 0,o=e.replace(ft,""),i=Object(O["h"])(t,o,lt);return i===lt&&(n?(Object(s["b"])('Translation key "'.concat(o,'" not found in fallback')),i=e):(Object(s["c"])('Translation key "'.concat(o,'" not found, falling back to default')),i=pt(r,e,!0,r))),i}var dt=function(t){d(n,t);var e=w(n);function n(t){var r;o(this,n),r=e.call(this),r.defaultLocale="en";var i=t[n.property],a=i.current,c=i.locales,s=i.t;return r.current=a,r.locales=c,r.translator=s||r.defaultTranslator,r}return a(n,[{key:"currentLocale",value:function(t){var e=this.locales[this.current],n=this.locales[this.defaultLocale];return pt(e,t,!1,n)}},{key:"t",value:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r1?e-1:0),r=1;rMath.pow(gt,3)?Math.cbrt(t):t/(3*Math.pow(gt,2))+4/29},wt=function(t){return t>gt?Math.pow(t,3):3*Math.pow(gt,2)*(t-4/29)};function xt(t){var e=bt,n=e(t[1]);return[116*n-16,500*(e(t[0]/.95047)-n),200*(n-e(t[2]/1.08883))]}function _t(t){var e=wt,n=(t[0]+16)/116;return[.95047*e(n+t[1]/500),e(n),1.08883*e(n-t[2]/200)]}var Ot=["anchor"],kt=["anchor"];function Ct(t){for(var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=t.anchor,o=l(t,Ot),i=Object.keys(o),a={},c=0;c1&&void 0!==arguments[1]?arguments[1]:"base";return"--v-".concat(t,"-").concat(e)},jt=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"base";return"var(".concat(Lt(t,e),")")};function Et(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.anchor,r=l(t,kt),o=Object.keys(r);if(!o.length)return"";var i="",a="",c=e?jt("anchor"):n;a+=".v-application a { color: ".concat(c,"; }"),e&&(i+=" ".concat(Lt("anchor"),": ").concat(n,";\n"));for(var s=0;s0;--r)n["lighten".concat(r)]=Object(yt["c"])(Tt(e,r));for(var o=1;o<=4;++o)n["darken".concat(o)]=Object(yt["c"])(Mt(e,o));return n}function Tt(t,e){var n=xt(mt["b"](t));return n[0]=n[0]+10*e,mt["a"](_t(n))}function Mt(t,e){var n=xt(mt["b"](t));return n[0]=n[0]-10*e,mt["a"](_t(n))}var Pt=function(t){d(n,t);var e=w(n);function n(t){var r;o(this,n),r=e.call(this),r.disabled=!1,r.isDark=null,r.unwatch=null,r.vueMeta=null;var i=t[n.property],a=i.dark,c=i.disable,s=i.options,u=i.themes;return r.dark=Boolean(a),r.defaults=r.themes=u,r.options=s,c?(r.disabled=!0,b(r)):(r.themes={dark:r.fillVariant(u.dark,!0),light:r.fillVariant(u.light,!1)},r)}return a(n,[{key:"css",set:function(t){this.vueMeta?this.isVueMeta23&&this.applyVueMeta23():this.checkOrCreateStyleElement()&&(this.styleEl.innerHTML=t)}},{key:"dark",get:function(){return Boolean(this.isDark)},set:function(t){var e=this.isDark;this.isDark=t,null!=e&&this.applyTheme()}},{key:"applyTheme",value:function(){if(this.disabled)return this.clearCss();this.css=this.generatedStyles}},{key:"clearCss",value:function(){this.css=""}},{key:"init",value:function(t,e){this.disabled||(t.$meta?this.initVueMeta(t):e&&this.initSSR(e),this.initTheme(t))}},{key:"setTheme",value:function(t,e){this.themes[t]=Object.assign(this.themes[t],e),this.applyTheme()}},{key:"resetThemes",value:function(){this.themes.light=Object.assign({},this.defaults.light),this.themes.dark=Object.assign({},this.defaults.dark),this.applyTheme()}},{key:"checkOrCreateStyleElement",value:function(){return this.styleEl=document.getElementById("vuetify-theme-stylesheet"),!!this.styleEl||(this.genStyleElement(),Boolean(this.styleEl))}},{key:"fillVariant",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,n=this.themes[e?"dark":"light"];return Object.assign({},n,t)}},{key:"genStyleElement",value:function(){"undefined"!==typeof document&&(this.styleEl=document.createElement("style"),this.styleEl.type="text/css",this.styleEl.id="vuetify-theme-stylesheet",this.options.cspNonce&&this.styleEl.setAttribute("nonce",this.options.cspNonce),document.head.appendChild(this.styleEl))}},{key:"initVueMeta",value:function(t){var e=this;if(this.vueMeta=t.$meta(),this.isVueMeta23)t.$nextTick((function(){e.applyVueMeta23()}));else{var n="function"===typeof this.vueMeta.getOptions?this.vueMeta.getOptions().keyName:"metaInfo",r=t.$options[n]||{};t.$options[n]=function(){r.style=r.style||[];var t=r.style.find((function(t){return"vuetify-theme-stylesheet"===t.id}));return t?t.cssText=e.generatedStyles:r.style.push({cssText:e.generatedStyles,type:"text/css",id:"vuetify-theme-stylesheet",nonce:(e.options||{}).cspNonce}),r}}}},{key:"applyVueMeta23",value:function(){var t=this.vueMeta.addApp("vuetify"),e=t.set;e({style:[{cssText:this.generatedStyles,type:"text/css",id:"vuetify-theme-stylesheet",nonce:this.options.cspNonce}]})}},{key:"initSSR",value:function(t){var e=this.options.cspNonce?' nonce="'.concat(this.options.cspNonce,'"'):"";t.head=t.head||"",t.head+='")}},{key:"initTheme",value:function(t){var e=this;"undefined"!==typeof document&&(this.unwatch&&(this.unwatch(),this.unwatch=null),t.$once("hook:created",(function(){var n=c["a"].observable({themes:e.themes});e.unwatch=t.$watch((function(){return n.themes}),(function(){return e.applyTheme()}),{deep:!0})})),this.applyTheme())}},{key:"currentTheme",get:function(){var t=this.dark?"dark":"light";return this.themes[t]}},{key:"generatedStyles",get:function(){var t,e=this.parsedTheme,n=this.options||{};return null!=n.themeCache&&(t=n.themeCache.get(e),null!=t)||(t=Et(e,n.customProperties),null!=n.minifyTheme&&(t=n.minifyTheme(t)),null!=n.themeCache&&n.themeCache.set(e,t)),t}},{key:"parsedTheme",get:function(){return Ct(this.currentTheme||{},void 0,Object(O["g"])(this.options,["variations"],!0))}},{key:"isVueMeta23",get:function(){return"function"===typeof this.vueMeta.addApp}}]),n}(k);Pt.property="theme";var It=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};o(this,t),this.framework={isHydrating:!1},this.installed=[],this.preset={},this.userPreset={},this.userPreset=e,this.use(S),this.use(L),this.use(j),this.use(K),this.use(ut),this.use(dt),this.use(Pt)}return a(t,[{key:"init",value:function(t,e){var n=this;this.installed.forEach((function(r){var o=n.framework[r];o.framework=n.framework,o.init(t,e)})),this.framework.rtl=Boolean(this.preset.rtl)}},{key:"use",value:function(t){var e=t.property;this.installed.includes(e)||(this.framework[e]=new t(this.preset,this),this.installed.push(e))}}]),t}();It.install=u,It.installed=!1,It.version="2.5.7",It.config={silent:!1}},f5df:function(t,e,n){var r=n("00ee"),o=n("c6b6"),i=n("b622"),a=i("toStringTag"),c="Arguments"==o(function(){return arguments}()),s=function(t,e){try{return t[e]}catch(n){}};t.exports=r?o:function(t){var e,n,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=s(e=Object(t),a))?n:c?o(e):"Object"==(r=o(e))&&"function"==typeof e.callee?"Arguments":r}},f6c4:function(t,e,n){"use strict";n("bd0c");var r=n("2b0e"),o=r["a"].extend({name:"ssr-bootable",data:function(){return{isBooted:!1}},mounted:function(){var t=this;window.requestAnimationFrame((function(){t.$el.setAttribute("data-booted","true"),t.isBooted=!0}))}});e["a"]=o.extend({name:"v-main",props:{tag:{type:String,default:"main"}},computed:{styles:function(){var t=this.$vuetify.application,e=t.bar,n=t.top,r=t.right,o=t.footer,i=t.insetFooter,a=t.bottom,c=t.left;return{paddingTop:"".concat(n+e,"px"),paddingRight:"".concat(r,"px"),paddingBottom:"".concat(o+i+a,"px"),paddingLeft:"".concat(c,"px")}}},render:function(t){var e={staticClass:"v-main",style:this.styles,ref:"main"};return t(this.tag,e,[t("div",{staticClass:"v-main__wrap"},this.$slots.default)])}})},f748:function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},f772:function(t,e,n){var r=n("5692"),o=n("90e3"),i=r("keys");t.exports=function(t){return i[t]||(i[t]=o(t))}},fb6a:function(t,e,n){"use strict";var r=n("23e7"),o=n("861d"),i=n("e8b5"),a=n("23cb"),c=n("50c4"),s=n("fc6a"),u=n("8418"),f=n("b622"),l=n("1dde"),p=l("slice"),d=f("species"),h=[].slice,v=Math.max;r({target:"Array",proto:!0,forced:!p},{slice:function(t,e){var n,r,f,l=s(this),p=c(l.length),y=a(t,p),m=a(void 0===e?p:e,p);if(i(l)&&(n=l.constructor,"function"!=typeof n||n!==Array&&!i(n.prototype)?o(n)&&(n=n[d],null===n&&(n=void 0)):n=void 0,n===Array||void 0===n))return h.call(l,y,m);for(r=new(void 0===n?Array:n)(v(m-y,0)),f=0;y arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.es/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","var toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar replace = ''.replace;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var fails = require('./fails');\n\nmodule.exports = fails(function () {\n // babel-minify transpiles RegExp('.', 'g') -> /./g and it causes SyntaxError\n var re = RegExp('(?b)', (typeof '').charAt(5));\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$c') !== 'bc';\n});\n","'use strict';\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = function repeat(count) {\n var str = String(requireObjectCoercible(this));\n var result = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n // eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var res = maybeCallNative(internalSplit, this, string, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n\n var rx = anObject(this);\n var S = String(string);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = callRegExpExec(splitter, UNSUPPORTED_Y ? S.slice(q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.anchor` method\n// https://tc39.es/ecma262/#sec-string.prototype.anchor\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('anchor') }, {\n anchor: function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n }\n});\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~String(requireObjectCoercible(this))\n .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","var anObject = require('../internals/an-object');\n\nmodule.exports = function (iterator) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) {\n return anObject(returnMethod.call(iterator)).value;\n }\n};\n","/*!\n * Vue.js v2.6.14\n * (c) 2014-2021 Evan You\n * Released under the MIT License.\n */\n/* */\n\nvar emptyObject = Object.freeze({});\n\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\nfunction isPromise (val) {\n return (\n isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function'\n )\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array.\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n\n boundFn._length = fn.length;\n return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n ? nativeBind\n : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/* eslint-disable no-unused-vars */\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/* eslint-enable no-unused-vars */\n\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime()\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch'\n];\n\n/* */\n\n\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n});\n\n/* */\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp((\"[^\" + (unicodeRegExp.source) + \".$_\\\\d]\"));\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\nvar isPhantomJS = UA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\n\nvar supportsPassive = false;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /*@__PURE__*/(function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n return ''\n }\n var options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm;\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm) {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.target) {\n Dep.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) { return a.id - b.id; });\n }\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\nDep.target = null;\nvar targetStack = [];\n\nfunction pushTarget (target) {\n targetStack.push(target);\n Dep.target = target;\n}\n\nfunction popTarget () {\n targetStack.pop();\n Dep.target = targetStack[targetStack.length - 1];\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(),\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n if (hasProto) {\n protoAugment(value, arrayMethods);\n } else {\n copyAugment(value, arrayMethods, arrayKeys);\n }\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive$$1(obj, keys[i]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment a target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment a target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value) || value instanceof VNode) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n shouldObserve &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive$$1 (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n if ((!getter || setter) && arguments.length === 2) {\n val = obj[key];\n }\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.target) {\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n // #7981: for accessor properties without setter\n if (getter && !setter) { return }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive$$1(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n\n var keys = hasSymbol\n ? Reflect.ownKeys(from)\n : Object.keys(from);\n\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n // in case the object is already observed...\n if (key === '__ob__') { continue }\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (\n toVal !== fromVal &&\n isPlainObject(toVal) &&\n isPlainObject(fromVal)\n ) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n )\n }\n } else {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n process.env.NODE_ENV !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn(parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n var res = childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal;\n return res\n ? dedupeHooks(res)\n : res\n}\n\nfunction dedupeHooks (hooks) {\n var res = [];\n for (var i = 0; i < hooks.length; i++) {\n if (res.indexOf(hooks[i]) === -1) {\n res.push(hooks[i]);\n }\n }\n return res\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n parentVal,\n childVal,\n vm,\n key\n) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n return extend(res, childVal)\n } else {\n return res\n }\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key$1 in childVal) {\n var parent = ret[key$1];\n var child = childVal[key$1];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key$1] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n if (childVal && process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n}\n\nfunction validateComponentName (name) {\n if (!new RegExp((\"^[a-zA-Z][\\\\-\\\\.0-9_\" + (unicodeRegExp.source) + \"]*$\")).test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'should conform to valid custom element name in html5 specification.'\n );\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + name\n );\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (process.env.NODE_ENV !== 'production') {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(props)) + \".\",\n vm\n );\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n var inject = options.inject;\n if (!inject) { return }\n var normalized = options.inject = {};\n if (Array.isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n } else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(inject)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def$$1 = dirs[key];\n if (typeof def$$1 === 'function') {\n dirs[key] = { bind: def$$1, update: def$$1 };\n }\n }\n }\n}\n\nfunction assertObjectType (name, value, vm) {\n if (!isPlainObject(value)) {\n warn(\n \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n \"but got \" + (toRawType(value)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (process.env.NODE_ENV !== 'production') {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child, vm);\n normalizeInject(child, vm);\n normalizeDirectives(child);\n\n // Apply extends and mixins on the child options,\n // but only if it is a raw options object that isn't\n // the result of another mergeOptions call.\n // Only merged options has the _base property.\n if (!child._base) {\n if (child.extends) {\n parent = mergeOptions(parent, child.extends, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n }\n\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\n\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\n if (booleanIndex > -1) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (value === '' || value === hyphenate(key)) {\n // only cast empty string / same name to boolean if\n // boolean has higher priority\n var stringIndex = getTypeIndex(String, prop.type);\n if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n if (\n process.env.NODE_ENV !== 'production' &&\n // skip validation for weex recycle-list child component props\n !(false)\n ) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i], vm);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n\n var haveExpectedTypes = expectedTypes.some(function (t) { return t; });\n if (!valid && haveExpectedTypes) {\n warn(\n getInvalidTypeMessage(name, value, expectedTypes),\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol|BigInt)$/;\n\nfunction assertType (value, type, vm) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n try {\n valid = value instanceof type;\n } catch (e) {\n warn('Invalid prop type: \"' + String(type) + '\" is not a constructor', vm);\n valid = false;\n }\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\nvar functionTypeCheckRE = /^\\s*function (\\w+)/;\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(functionTypeCheckRE);\n return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n if (!Array.isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i\n }\n }\n return -1\n}\n\nfunction getInvalidTypeMessage (name, value, expectedTypes) {\n var message = \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n \" Expected \" + (expectedTypes.map(capitalize).join(', '));\n var expectedType = expectedTypes[0];\n var receivedType = toRawType(value);\n // check if we need to specify expected value\n if (\n expectedTypes.length === 1 &&\n isExplicable(expectedType) &&\n isExplicable(typeof value) &&\n !isBoolean(expectedType, receivedType)\n ) {\n message += \" with value \" + (styleValue(value, expectedType));\n }\n message += \", got \" + receivedType + \" \";\n // check if we need to specify received value\n if (isExplicable(receivedType)) {\n message += \"with value \" + (styleValue(value, receivedType)) + \".\";\n }\n return message\n}\n\nfunction styleValue (value, type) {\n if (type === 'String') {\n return (\"\\\"\" + value + \"\\\"\")\n } else if (type === 'Number') {\n return (\"\" + (Number(value)))\n } else {\n return (\"\" + value)\n }\n}\n\nvar EXPLICABLE_TYPES = ['string', 'number', 'boolean'];\nfunction isExplicable (value) {\n return EXPLICABLE_TYPES.some(function (elem) { return value.toLowerCase() === elem; })\n}\n\nfunction isBoolean () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\n // See: https://github.com/vuejs/vuex/issues/1505\n pushTarget();\n try {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\n if (hooks) {\n for (var i = 0; i < hooks.length; i++) {\n try {\n var capture = hooks[i].call(cur, err, vm, info) === false;\n if (capture) { return }\n } catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n } finally {\n popTarget();\n }\n}\n\nfunction invokeWithErrorHandling (\n handler,\n context,\n args,\n vm,\n info\n) {\n var res;\n try {\n res = args ? handler.apply(context, args) : handler.call(context);\n if (res && !res._isVue && isPromise(res) && !res._handled) {\n res.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\n // issue #9511\n // avoid catch triggering multiple times when nested calls\n res._handled = true;\n }\n } catch (e) {\n handleError(e, vm, info);\n }\n return res\n}\n\nfunction globalHandleError (err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info)\n } catch (e) {\n // if the user intentionally throws the original error in the handler,\n // do not log it twice\n if (e !== err) {\n logError(e, null, 'config.errorHandler');\n }\n }\n }\n logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n}\n\n/* */\n\nvar isUsingMicroTask = false;\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n}\n\n// Here we have async deferring wrappers using microtasks.\n// In 2.5 we used (macro) tasks (in combination with microtasks).\n// However, it has subtle problems when state is changed right before repaint\n// (e.g. #6813, out-in transitions).\n// Also, using (macro) tasks in event handler would cause some weird behaviors\n// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\n// So we now use microtasks everywhere, again.\n// A major drawback of this tradeoff is that there are some scenarios\n// where microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690, which have workarounds)\n// or even between bubbling of the same event (#6566).\nvar timerFunc;\n\n// The nextTick behavior leverages the microtask queue, which can be accessed\n// via either native Promise.then or MutationObserver.\n// MutationObserver has wider support, however it is seriously bugged in\n// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n// completely stops working after triggering a few times... so, if native\n// Promise is available, we will use it:\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n timerFunc = function () {\n p.then(flushCallbacks);\n // In problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n isUsingMicroTask = true;\n} else if (!isIE && typeof MutationObserver !== 'undefined' && (\n isNative(MutationObserver) ||\n // PhantomJS and iOS 7.x\n MutationObserver.toString() === '[object MutationObserverConstructor]'\n)) {\n // Use MutationObserver where native Promise is not available,\n // e.g. PhantomJS, iOS7, Android 4.4\n // (#6466 MutationObserver is unreliable in IE11)\n var counter = 1;\n var observer = new MutationObserver(flushCallbacks);\n var textNode = document.createTextNode(String(counter));\n observer.observe(textNode, {\n characterData: true\n });\n timerFunc = function () {\n counter = (counter + 1) % 2;\n textNode.data = String(counter);\n };\n isUsingMicroTask = true;\n} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n // Fallback to setImmediate.\n // Technically it leverages the (macro) task queue,\n // but it is still a better choice than setTimeout.\n timerFunc = function () {\n setImmediate(flushCallbacks);\n };\n} else {\n // Fallback to setTimeout.\n timerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n}\n\nfunction nextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n timerFunc();\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n}\n\n/* */\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n target\n );\n };\n\n var warnReservedPrefix = function (target, key) {\n warn(\n \"Property \\\"\" + key + \"\\\" must be accessed with \\\"$data.\" + key + \"\\\" because \" +\n 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\n 'prevent conflicts with Vue internals. ' +\n 'See: https://vuejs.org/v2/api/#data',\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' && isNative(Proxy);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) ||\n (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));\n if (!has && !isAllowed) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n // perf.clearMeasures(name)\n };\n }\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n});\n\nfunction createFnInvoker (fns, vm) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments$1, vm, \"v-on handler\");\n }\n } else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\")\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n createOnceHandler,\n vm\n) {\n var name, def$$1, cur, old, event;\n for (name in on) {\n def$$1 = cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n add(event.name, cur, event.capture, event.passive, event.params);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\nfunction mergeVNodeHook (def, hookKey, hook) {\n if (def instanceof VNode) {\n def = def.data.hook || (def.data.hook = {});\n }\n var invoker;\n var oldHook = def[hookKey];\n\n function wrappedHook () {\n hook.apply(this, arguments);\n // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n remove(invoker.fns, wrappedHook);\n }\n\n if (isUndef(oldHook)) {\n // no existing hook\n invoker = createFnInvoker([wrappedHook]);\n } else {\n /* istanbul ignore if */\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n // already a merged invoker\n invoker = oldHook;\n invoker.fns.push(wrappedHook);\n } else {\n // existing plain hook\n invoker = createFnInvoker([oldHook, wrappedHook]);\n }\n }\n\n invoker.merged = true;\n def[hookKey] = invoker;\n}\n\n/* */\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n return\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n return res\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g.