@keyframes codeRainFall{0%{opacity:0;transform:translateY(-100%)}10%{opacity:1}90%{opacity:1}to{opacity:0;transform:translateY(100vh)}}@keyframes codeEditorFloatClean{0%,to{transform:translateZ(0) translateY(0)}25%{transform:translateZ(0) translateY(-4px)}50%{transform:translateZ(0) translateY(-8px)}75%{transform:translateZ(0) translateY(-4px)}}@keyframes typing{0%{width:0}50%{width:100%}to{width:100%}}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}@keyframes gradientShift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}@keyframes glowPulse{0%,to{box-shadow:0 0 20px rgba(0,245,255,.3)}50%{box-shadow:0 0 40px rgba(0,245,255,.6)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes slideInLeft{0%{opacity:0;transform:translateX(-100px)}to{opacity:1;transform:translateX(0)}}@keyframes slideInRight{0%{opacity:0;transform:translateX(100px)}to{opacity:1;transform:translateX(0)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes parallax{0%{transform:translateY(0)}to{transform:translateY(-50px)}}@keyframes ripple{0%{opacity:1;transform:scale(0)}to{opacity:0;transform:scale(4)}}@keyframes inputFocus{0%{box-shadow:0 0 0 0 rgba(0,245,255,.3)}to{box-shadow:0 0 0 3px rgba(0,245,255,.1)}}@keyframes progressBar{0%{width:0}to{width:100%}}.code-rain{bottom:0;opacity:.1;overflow:hidden;pointer-events:none;top:0}.code-rain,.code-rain:before{left:0;position:absolute;right:0}.code-rain:before{animation:codeRainFall 15s linear infinite;color:var(--color-primary);content:"01001000 01100101 01101100 01101100 01101111 00100000 01010111 01101111 01110010 01101100 01100100 01000000 01000011 01101111 01100100 01100101 01010010 01100001 01101001 01101110";font-family:var(--font-family-mono);font-size:var(--font-size-xs);letter-spacing:2px;line-height:1.2;top:-100%;white-space:pre-wrap;word-spacing:10px}.code-editor{animation:codeEditorFloatClean 8s ease-in-out infinite;backface-visibility:hidden;contain:layout style paint;perspective:1000px;will-change:transform}.code-editor,.code-line,.editor-content,.editor-title{transform:translateZ(0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.code-line,.editor-content,.editor-title{font-feature-settings:"liga" 1;text-rendering:optimizeLegibility}.class-name,.keyword,.method,.string,.type{display:inline-block;transform:translateZ(0)}.code-line{overflow:hidden;position:relative;white-space:nowrap}.code-line:first-child{animation:typing 2s steps(20) 1s both}.code-line:nth-child(2){animation:typing .5s steps(2) 2.5s both;width:0}.code-line:nth-child(3){animation:typing 2s steps(25) 3s both;width:0}.code-line:nth-child(4){animation:typing .5s steps(5) 4.5s both;width:0}.code-line:nth-child(5){animation:typing 1.5s steps(20) 5s both;width:0}.code-line:nth-child(6){animation:typing .5s steps(5) 6.2s both;width:0}.code-line:nth-child(7){animation:typing .5s steps(2) 6.5s both;width:0}.code-line:last-child:after{animation:blink 1s infinite;color:var(--color-primary);content:"|"}.highlight,.text-gradient{background:linear-gradient(45deg,var(--color-primary),var(--color-secondary),var(--color-accent),var(--color-primary));-webkit-background-clip:text;background-size:300% 300%;-webkit-text-fill-color:transparent;animation:gradientShift 4s ease infinite;background-clip:text}.btn-primary{animation:glowPulse 3s ease-in-out infinite}.btn{overflow:hidden;position:relative}.btn:after{background:hsla(0,0%,100%,.3);border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .6s,height .6s;width:0}.btn:active:after{animation:ripple .6s ease-out;height:300px;width:300px}.spinner{animation:spin 1s linear infinite;border-top:2px solid var(--color-border);border:2px solid var(--color-border);border-radius:50%;border-top-color:var(--color-primary);height:24px;width:24px}.header{transition:all var(--transition-base)}.header.scrolled{backdrop-filter:blur(20px);background:rgba(15,15,35,.95);box-shadow:var(--shadow-lg)}.nav-menu.mobile-open{animation:slideDown .3s ease-out}.nav-toggle{background:none;border:none;cursor:pointer;display:none;flex-direction:column;padding:var(--space-2);z-index:1001}.nav-toggle .bar{background:var(--color-text-primary);border-radius:var(--radius-sm);height:3px;margin:3px 0;transition:all .3s ease-in-out;width:25px}.nav-toggle.active .bar:first-child{transform:rotate(-45deg) translate(-5px,6px)}.nav-toggle.active .bar:nth-child(2){opacity:0}.nav-toggle.active .bar:nth-child(3){transform:rotate(45deg) translate(-5px,-6px)}.form-group input:focus,.form-group textarea:focus{animation:inputFocus .3s ease-out}.progress-bar{animation:progressBar 2s ease-in-out;background:var(--color-primary);height:2px}.parallax-element{animation:parallax 10s ease-in-out infinite alternate}.hero-visual{contain:layout;transform:translateZ(0)}.reveal{opacity:0;transform:translateY(30px);transition:all .8s ease-out}.reveal.revealed{opacity:1;transform:translateY(0)}.reveal-left{opacity:0;transform:translateX(-30px);transition:all .8s ease-out}.reveal-left.revealed{opacity:1;transform:translateX(0)}.reveal-right{opacity:0;transform:translateX(30px);transition:all .8s ease-out}.reveal-right.revealed{opacity:1;transform:translateX(0)}.animate-slide-in-left{animation:slideInLeft .8s ease-out}.animate-slide-in-right{animation:slideInRight .8s ease-out}.animate-slide-in-up{animation:slideInUp .8s ease-out}.animate-fade-in{animation:fadeIn .8s ease-out}.animate-delay-1{animation-delay:.1s}.animate-delay-2{animation-delay:.2s}.animate-delay-3{animation-delay:.3s}.animate-delay-4{animation-delay:.4s}@media (prefers-reduced-motion:reduce){.code-rain:before{animation:none}.code-editor{animation:none!important;transform:translateZ(0)!important}.btn-primary,.highlight,.text-gradient{animation:none}.code-line{animation:none!important;width:auto!important}.code-line:last-child:after,.parallax-element{animation:none}.reveal,.reveal-left,.reveal-right{opacity:1!important;transform:none!important;transition:none!important}}@media (max-resolution:150dpi),(max-width:768px){.code-editor{animation:codeEditorFloatClean 10s ease-in-out infinite}}
/*# sourceMappingURL=data:application/json;base64,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QzFDLGlCQUFtQixtQkFBdUIsQ0FDMUMsaUJBQW1CLG1CQUF1QixDQUsxQyx1Q0FDRSxrQkFDRSxjQUNGLENBRUEsYUFDRSx3QkFBMEIsQ0FDMUIsaUNBQ0YsQ0FPQSx1Q0FDRSxjQUNGLENBRUEsV0FDRSx3QkFBMEIsQ0FDMUIsb0JBQ0YsQ0FNQSw4Q0FDRSxjQUNGLENBR0EsbUNBR0UsbUJBQXFCLENBQ3JCLHdCQUEwQixDQUMxQix5QkFDRixDQUNGLENBR0EsaURBQ0UsYUFFRSx1REFDRixDQUNGIiwiZmlsZSI6ImFuaW1hdGlvbnMuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyogQW5pbWF0aW9ucyBDU1MgLSBNb2Rlcm4gRWZmZWN0cyAqL1xuLyogU3BlaWNoZXJuIGFsczogc3JjL3N0eWxlcy9hbmltYXRpb25zLmNzcyAqL1xuXG4vKiA9PT0gS0VZRlJBTUUgQU5JTUFUSU9OUyA9PT0gKi9cblxuLyogQ29kZSBSYWluIEFuaW1hdGlvbiAoTWF0cml4LXN0eWxlIGJhY2tncm91bmQpICovXG5Aa2V5ZnJhbWVzIGNvZGVSYWluRmFsbCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgMTAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDkwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwdmgpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLyogQ29kZSBFZGl0b3IgRmxvYXQgQW5pbWF0aW9uIC0gU2NoYXJmZSBTY2hyaWZ0IG9obmUgUm90YXRpb24gKi9cbkBrZXlmcmFtZXMgY29kZUVkaXRvckZsb2F0Q2xlYW4ge1xuICAwJSwgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApIHRyYW5zbGF0ZVkoMHB4KTtcbiAgfVxuICAyNSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKSB0cmFuc2xhdGVZKC00cHgpO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApIHRyYW5zbGF0ZVkoLThweCk7XG4gIH1cbiAgNzUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCkgdHJhbnNsYXRlWSgtNHB4KTtcbiAgfVxufVxuXG4vKiBUeXBpbmcgQW5pbWF0aW9uICovXG5Aa2V5ZnJhbWVzIHR5cGluZyB7XG4gIDAlIHtcbiAgICB3aWR0aDogMDtcbiAgfVxuICA1MCUge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIDEwMCUge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi8qIEN1cnNvciBCbGluayAqL1xuQGtleWZyYW1lcyBibGluayB7XG4gIDAlLCA1MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgNTElLCAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi8qIEdyYWRpZW50IFNoaWZ0IEFuaW1hdGlvbiAqL1xuQGtleWZyYW1lcyBncmFkaWVudFNoaWZ0IHtcbiAgMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAlIDUwJTtcbiAgfVxuICA1MCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgNTAlO1xuICB9XG4gIDEwMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAlIDUwJTtcbiAgfVxufVxuXG4vKiBHbG93IFB1bHNlIEFuaW1hdGlvbiAqL1xuQGtleWZyYW1lcyBnbG93UHVsc2Uge1xuICAwJSwgMTAwJSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDIwcHggcmdiYSgwLCAyNDUsIDI1NSwgMC4zKTtcbiAgfVxuICA1MCUge1xuICAgIGJveC1zaGFkb3c6IDAgMCA0MHB4IHJnYmEoMCwgMjQ1LCAyNTUsIDAuNik7XG4gIH1cbn1cblxuLyogTG9hZGluZyBTcGlubmVyICovXG5Aa2V5ZnJhbWVzIHNwaW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuXG4vKiBTbGlkZSBBbmltYXRpb25zICovXG5Aa2V5ZnJhbWVzIHNsaWRlSW5MZWZ0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDBweCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzbGlkZUluUmlnaHQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwcHgpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVJblVwIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUwcHgpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVEb3duIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMHB4KTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxufVxuXG4vKiBGYWRlIEFuaW1hdGlvbiAqL1xuQGtleWZyYW1lcyBmYWRlSW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi8qIFBhcmFsbGF4IEVmZmVjdCAqL1xuQGtleWZyYW1lcyBwYXJhbGxheCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwcHgpO1xuICB9XG59XG5cbi8qIEJ1dHRvbiBSaXBwbGUgRWZmZWN0ICovXG5Aa2V5ZnJhbWVzIHJpcHBsZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSg0KTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi8qIEZvcm0gRm9jdXMgQW5pbWF0aW9uICovXG5Aa2V5ZnJhbWVzIGlucHV0Rm9jdXMge1xuICAwJSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDAsIDI0NSwgMjU1LCAwLjMpO1xuICB9XG4gIDEwMCUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDAsIDI0NSwgMjU1LCAwLjEpO1xuICB9XG59XG5cbi8qIFByb2dyZXNzIEJhciBBbmltYXRpb24gKi9cbkBrZXlmcmFtZXMgcHJvZ3Jlc3NCYXIge1xuICAwJSB7XG4gICAgd2lkdGg6IDAlO1xuICB9XG4gIDEwMCUge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi8qID09PSBDT01QT05FTlQgQU5JTUFUSU9OUyA9PT0gKi9cblxuLyogQ29kZSBSYWluIEJhY2tncm91bmQgKi9cbi5jb2RlLXJhaW4ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgb3BhY2l0eTogMC4xO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmNvZGUtcmFpbjo6YmVmb3JlIHtcbiAgY29udGVudDogJzAxMDAxMDAwIDAxMTAwMTAxIDAxMTAxMTAwIDAxMTAxMTAwIDAxMTAxMTExIDAwMTAwMDAwIDAxMDEwMTExIDAxMTAxMTExIDAxMTEwMDEwIDAxMTAxMTAwIDAxMTAwMTAwIDAxMDAwMDAwIDAxMDAwMDExIDAxMTAxMTExIDAxMTAwMTAwIDAxMTAwMTAxIDAxMDEwMDEwIDAxMTAwMDAxIDAxMTAxMDAxIDAxMTAxMTEwJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0xMDAlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktbW9ubyk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXhzKTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICBhbmltYXRpb246IGNvZGVSYWluRmFsbCAxNXMgbGluZWFyIGluZmluaXRlO1xuICB3b3JkLXNwYWNpbmc6IDEwcHg7XG4gIGxldHRlci1zcGFjaW5nOiAycHg7XG59XG5cbi8qIENvZGUgRWRpdG9yIC0gT3B0aW1pZXJ0IGbDvHIgc2NoYXJmZSBTY2hyaWZ0ICovXG4uY29kZS1lZGl0b3Ige1xuICAvKiBIYXJkd2FyZS1CZXNjaGxldW5pZ3VuZyB1bmQgQW50aS1BbGlhc2luZyAqL1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gIGNvbnRhaW46IGxheW91dCBzdHlsZSBwYWludDtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICBwZXJzcGVjdGl2ZTogMTAwMHB4O1xuICAvKiBTYW5mdGUgQW5pbWF0aW9uIG9obmUgUm90YXRpb24gKi9cbiAgYW5pbWF0aW9uOiBjb2RlRWRpdG9yRmxvYXRDbGVhbiA4cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgLyogVGV4dC1SZW5kZXJpbmcgT3B0aW1pZXJ1bmdlbiAqL1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxuLyogVGV4dC1Db250YWluZXIgLSBTY2jDpHJmZXJlcyBSZW5kZXJpbmcgKi9cbi5lZGl0b3ItY29udGVudCxcbi5jb2RlLWxpbmUsXG4uZWRpdG9yLXRpdGxlIHtcbiAgLyogUGl4ZWwtcGVyZmVjdCBUZXh0LVJlbmRlcmluZyAqL1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuICBmb250LWZlYXR1cmUtc2V0dGluZ3M6IFwibGlnYVwiIDE7XG59XG5cbi8qIFN5bnRheCBIaWdobGlnaHRpbmcgLSBPcHRpbWllcnQgKi9cbi5rZXl3b3JkLFxuLmNsYXNzLW5hbWUsXG4ubWV0aG9kLFxuLnN0cmluZyxcbi50eXBlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi8qIENvZGUgTGluZXMgVHlwaW5nICovXG4uY29kZS1saW5lIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uY29kZS1saW5lOmZpcnN0LWNoaWxkIHtcbiAgYW5pbWF0aW9uOiB0eXBpbmcgMnMgc3RlcHMoMjApIDFzIGJvdGg7XG59XG5cbi5jb2RlLWxpbmU6bnRoLWNoaWxkKDIpIHtcbiAgYW5pbWF0aW9uOiB0eXBpbmcgMC41cyBzdGVwcygyKSAyLjVzIGJvdGg7XG4gIHdpZHRoOiAwO1xufVxuXG4uY29kZS1saW5lOm50aC1jaGlsZCgzKSB7XG4gIGFuaW1hdGlvbjogdHlwaW5nIDJzIHN0ZXBzKDI1KSAzcyBib3RoO1xuICB3aWR0aDogMDtcbn1cblxuLmNvZGUtbGluZTpudGgtY2hpbGQoNCkge1xuICBhbmltYXRpb246IHR5cGluZyAwLjVzIHN0ZXBzKDUpIDQuNXMgYm90aDtcbiAgd2lkdGg6IDA7XG59XG5cbi5jb2RlLWxpbmU6bnRoLWNoaWxkKDUpIHtcbiAgYW5pbWF0aW9uOiB0eXBpbmcgMS41cyBzdGVwcygyMCkgNXMgYm90aDtcbiAgd2lkdGg6IDA7XG59XG5cbi5jb2RlLWxpbmU6bnRoLWNoaWxkKDYpIHtcbiAgYW5pbWF0aW9uOiB0eXBpbmcgMC41cyBzdGVwcyg1KSA2LjJzIGJvdGg7XG4gIHdpZHRoOiAwO1xufVxuXG4uY29kZS1saW5lOm50aC1jaGlsZCg3KSB7XG4gIGFuaW1hdGlvbjogdHlwaW5nIDAuNXMgc3RlcHMoMikgNi41cyBib3RoO1xuICB3aWR0aDogMDtcbn1cblxuLmNvZGUtbGluZTpsYXN0LWNoaWxkOjphZnRlciB7XG4gIGNvbnRlbnQ6ICd8JztcbiAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xuICBhbmltYXRpb246IGJsaW5rIDFzIGluZmluaXRlO1xufVxuXG4vKiBUZXh0IEdyYWRpZW50IEFuaW1hdGlvbiAqL1xuLnRleHQtZ3JhZGllbnQsXG4uaGlnaGxpZ2h0IHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCB2YXIoLS1jb2xvci1wcmltYXJ5KSwgdmFyKC0tY29sb3Itc2Vjb25kYXJ5KSwgdmFyKC0tY29sb3ItYWNjZW50KSwgdmFyKC0tY29sb3ItcHJpbWFyeSkpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDMwMCUgMzAwJTtcbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICBhbmltYXRpb246IGdyYWRpZW50U2hpZnQgNHMgZWFzZSBpbmZpbml0ZTtcbn1cblxuLyogQnV0dG9uIEdsb3cgQW5pbWF0aW9uICovXG4uYnRuLXByaW1hcnkge1xuICBhbmltYXRpb246IGdsb3dQdWxzZSAzcyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cblxuLyogQnV0dG9uIFJpcHBsZSBFZmZlY3QgKi9cbi5idG4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5idG46OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjZzLCBoZWlnaHQgMC42cztcbn1cblxuLmJ0bjphY3RpdmU6OmFmdGVyIHtcbiAgd2lkdGg6IDMwMHB4O1xuICBoZWlnaHQ6IDMwMHB4O1xuICBhbmltYXRpb246IHJpcHBsZSAwLjZzIGVhc2Utb3V0O1xufVxuXG4vKiBMb2FkaW5nIFNwaW5uZXIgKi9cbi5zcGlubmVyIHtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHZhcigtLWNvbG9yLXByaW1hcnkpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGFuaW1hdGlvbjogc3BpbiAxcyBsaW5lYXIgaW5maW5pdGU7XG59XG5cbi8qIE5hdmJhciBTY3JvbGwgRWZmZWN0ICovXG4uaGVhZGVyIHtcbiAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24tYmFzZSk7XG59XG5cbi5oZWFkZXIuc2Nyb2xsZWQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDE1LCAxNSwgMzUsIDAuOTUpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjBweCk7XG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1sZyk7XG59XG5cbi8qIE1vYmlsZSBNZW51IEFuaW1hdGlvbiAqL1xuLm5hdi1tZW51Lm1vYmlsZS1vcGVuIHtcbiAgYW5pbWF0aW9uOiBzbGlkZURvd24gMC4zcyBlYXNlLW91dDtcbn1cblxuLyogTmF2aWdhdGlvbiBUb2dnbGUgKEhhbWJ1cmdlciBNZW51KSAqL1xuLm5hdi10b2dnbGUge1xuICBkaXNwbGF5OiBub25lO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNlLTIpO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIHotaW5kZXg6IDEwMDE7XG59XG5cbi5uYXYtdG9nZ2xlIC5iYXIge1xuICB3aWR0aDogMjVweDtcbiAgaGVpZ2h0OiAzcHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXRleHQtcHJpbWFyeSk7XG4gIG1hcmdpbjogM3B4IDA7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtc20pO1xufVxuXG4vKiBIYW1idXJnZXIgTWVudSBUcmFuc2Zvcm1hdGlvbiAqL1xuLm5hdi10b2dnbGUuYWN0aXZlIC5iYXI6bnRoLWNoaWxkKDEpIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUoLTVweCwgNnB4KTtcbn1cblxuLm5hdi10b2dnbGUuYWN0aXZlIC5iYXI6bnRoLWNoaWxkKDIpIHtcbiAgb3BhY2l0eTogMDtcbn1cblxuLm5hdi10b2dnbGUuYWN0aXZlIC5iYXI6bnRoLWNoaWxkKDMpIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZSgtNXB4LCAtNnB4KTtcbn1cblxuLyogRm9ybSBGb2N1cyBBbmltYXRpb24gKi9cbi5mb3JtLWdyb3VwIGlucHV0OmZvY3VzLFxuLmZvcm0tZ3JvdXAgdGV4dGFyZWE6Zm9jdXMge1xuICBhbmltYXRpb246IGlucHV0Rm9jdXMgMC4zcyBlYXNlLW91dDtcbn1cblxuLyogUHJvZ3Jlc3MgQmFyICovXG4ucHJvZ3Jlc3MtYmFyIHtcbiAgaGVpZ2h0OiAycHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xuICBhbmltYXRpb246IHByb2dyZXNzQmFyIDJzIGVhc2UtaW4tb3V0O1xufVxuXG4vKiBQYXJhbGxheCBFbGVtZW50cyAqL1xuLnBhcmFsbGF4LWVsZW1lbnQge1xuICBhbmltYXRpb246IHBhcmFsbGF4IDEwcyBlYXNlLWluLW91dCBpbmZpbml0ZSBhbHRlcm5hdGU7XG59XG5cbi8qIEhlcm8gVmlzdWFsIENvbnRhaW5lciAtIE9wdGltaWVydCAqL1xuLmhlcm8tdmlzdWFsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuICBjb250YWluOiBsYXlvdXQ7XG59XG5cbi8qID09PSBTQ1JPTEwgUkVWRUFMIEFOSU1BVElPTlMgPT09ICovXG5cbi5yZXZlYWwge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzBweCk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjhzIGVhc2Utb3V0O1xufVxuXG4ucmV2ZWFsLnJldmVhbGVkIHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xufVxuXG4ucmV2ZWFsLWxlZnQge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTMwcHgpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC44cyBlYXNlLW91dDtcbn1cblxuLnJldmVhbC1sZWZ0LnJldmVhbGVkIHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xufVxuXG4ucmV2ZWFsLXJpZ2h0IHtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDMwcHgpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC44cyBlYXNlLW91dDtcbn1cblxuLnJldmVhbC1yaWdodC5yZXZlYWxlZCB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbn1cblxuLyogPT09IEpBVkFTQ1JJUFQgQU5JTUFUSU9OIENMQVNTRVMgPT09ICovXG5cbi5hbmltYXRlLXNsaWRlLWluLWxlZnQge1xuICBhbmltYXRpb246IHNsaWRlSW5MZWZ0IDAuOHMgZWFzZS1vdXQ7XG59XG5cbi5hbmltYXRlLXNsaWRlLWluLXJpZ2h0IHtcbiAgYW5pbWF0aW9uOiBzbGlkZUluUmlnaHQgMC44cyBlYXNlLW91dDtcbn1cblxuLmFuaW1hdGUtc2xpZGUtaW4tdXAge1xuICBhbmltYXRpb246IHNsaWRlSW5VcCAwLjhzIGVhc2Utb3V0O1xufVxuXG4uYW5pbWF0ZS1mYWRlLWluIHtcbiAgYW5pbWF0aW9uOiBmYWRlSW4gMC44cyBlYXNlLW91dDtcbn1cblxuLyogU3RhZ2dlciBBbmltYXRpb24gRGVsYXlzICovXG4uYW5pbWF0ZS1kZWxheS0xIHsgYW5pbWF0aW9uLWRlbGF5OiAwLjFzOyB9XG4uYW5pbWF0ZS1kZWxheS0yIHsgYW5pbWF0aW9uLWRlbGF5OiAwLjJzOyB9XG4uYW5pbWF0ZS1kZWxheS0zIHsgYW5pbWF0aW9uLWRlbGF5OiAwLjNzOyB9XG4uYW5pbWF0ZS1kZWxheS00IHsgYW5pbWF0aW9uLWRlbGF5OiAwLjRzOyB9XG5cbi8qID09PSBBQ0NFU1NJQklMSVRZICYgUEVSRk9STUFOQ0UgPT09ICovXG5cbi8qIFJlZHVjZWQgTW90aW9uIFN1cHBvcnQgKi9cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5jb2RlLXJhaW46OmJlZm9yZSB7XG4gICAgYW5pbWF0aW9uOiBub25lO1xuICB9XG4gIFxuICAuY29kZS1lZGl0b3Ige1xuICAgIGFuaW1hdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKSAhaW1wb3J0YW50O1xuICB9XG4gIFxuICAudGV4dC1ncmFkaWVudCxcbiAgLmhpZ2hsaWdodCB7XG4gICAgYW5pbWF0aW9uOiBub25lO1xuICB9XG4gIFxuICAuYnRuLXByaW1hcnkge1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgfVxuICBcbiAgLmNvZGUtbGluZSB7XG4gICAgYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgfVxuICBcbiAgLmNvZGUtbGluZTpsYXN0LWNoaWxkOjphZnRlciB7XG4gICAgYW5pbWF0aW9uOiBub25lO1xuICB9XG4gIFxuICAucGFyYWxsYXgtZWxlbWVudCB7XG4gICAgYW5pbWF0aW9uOiBub25lO1xuICB9XG4gIFxuICAvKiBBbGxlIFJldmVhbCBBbmltYXRpb25lbiBkZWFrdGl2aWVyZW4gKi9cbiAgLnJldmVhbCxcbiAgLnJldmVhbC1sZWZ0LFxuICAucmV2ZWFsLXJpZ2h0IHtcbiAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8qIE1vYmlsZSBPcHRpbWllcnVuZ2VuICovXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpLCAobWF4LXJlc29sdXRpb246IDE1MGRwaSkge1xuICAuY29kZS1lZGl0b3Ige1xuICAgIC8qIE5vY2ggc2FuZnRlcmUgQW5pbWF0aW9uIGF1ZiBzY2h3w6RjaGVyZXIgSGFyZHdhcmUgKi9cbiAgICBhbmltYXRpb246IGNvZGVFZGl0b3JGbG9hdENsZWFuIDEwcyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgfVxufSJdfQ== */