.block--stat-grid-v2{background-color:#f7f6ff;overflow:hidden;padding-bottom:48px;padding-top:48px;position:relative}@media (min-width:992px){.block--stat-grid-v2{padding-bottom:80px;padding-top:80px}}.block--stat-grid-v2 .container{max-width:1440px;padding-left:1.5rem;padding-right:1.5rem;position:relative;z-index:2}@media (min-width:992px){.block--stat-grid-v2 .container{padding-left:6rem;padding-right:6rem}}.block--stat-grid-v2 .stat-grid-v2__intro{margin-bottom:24px}@media (min-width:768px){.block--stat-grid-v2 .stat-grid-v2__intro{margin-bottom:96px}}.block--stat-grid-v2 .stat-grid-v2__intro--start{text-align:left}.block--stat-grid-v2 .stat-grid-v2__intro--center{text-align:center}.block--stat-grid-v2 .stat-grid-v2__intro--end{text-align:right}.block--stat-grid-v2 .stat-grid-v2__heading{-webkit-text-fill-color:transparent;background:linear-gradient(180deg,#41329b,#23004b);-webkit-background-clip:text;background-clip:text;font-family:Avenir LT Pro Bold,sans-serif;font-size:28px;line-height:32px;padding-bottom:.05em}@media (min-width:768px){.block--stat-grid-v2 .stat-grid-v2__heading{font-size:45px;line-height:50px}}.block--stat-grid-v2 .stat-grid-v2__intro-text{color:#23004b;font-family:Avenir LT Pro Medium,sans-serif;font-size:18px;line-height:1.5;margin:0 auto;max-width:720px}@media (min-width:768px){.block--stat-grid-v2 .stat-grid-v2__intro-text{font-size:22px;line-height:25px}}.block--stat-grid-v2 .stat-grid-v2__intro-text p:last-child{margin-bottom:0}.block--stat-grid-v2 .stat-grid-v2__grid{align-items:center;display:flex;flex-direction:column;gap:42px}@media (min-width:768px){.block--stat-grid-v2 .stat-grid-v2__grid{-moz-column-gap:32px;column-gap:32px;flex-direction:row;flex-wrap:wrap;justify-content:center;row-gap:42px}}.block--stat-grid-v2 .stat-grid-v2__stat{align-items:center;color:#23004b;display:flex;flex-direction:column;max-width:320px;text-align:center;width:100%}@media (min-width:768px){.block--stat-grid-v2 .stat-grid-v2__stat{flex:0 0 calc(33.333% - 32px);max-width:calc(33.333% - 32px)}}.block--stat-grid-v2 .stat-grid-v2__number{color:#320fff;font-family:Avenir LT Pro Bold,sans-serif;font-size:45px;line-height:1;margin:0 0 12px}@media (min-width:768px){.block--stat-grid-v2 .stat-grid-v2__number{font-size:90px}}.block--stat-grid-v2 .stat-grid-v2__label{font-family:Avenir LT Pro Medium,sans-serif;font-size:22px;line-height:25px;margin:0}.block--stat-grid-v2 .stat-grid-v2__shape{display:none;pointer-events:none;position:absolute;z-index:1}@media (min-width:768px){.block--stat-grid-v2 .stat-grid-v2__shape{display:block}}.block--stat-grid-v2 .stat-grid-v2__shape--bl-lines{bottom:0;height:100px;left:calc(-515px + max(0px, 50% - 720px));max-width:60%;opacity:.1;overflow:hidden;width:700px}.block--stat-grid-v2 .stat-grid-v2__shape--bl-lines img,.block--stat-grid-v2 .stat-grid-v2__shape--br-fill svg,.block--stat-grid-v2 .stat-grid-v2__shape--br-outline svg{display:block;height:auto;width:100%}.block--stat-grid-v2 .stat-grid-v2__shape--br-fill{bottom:0;opacity:.9;right:clamp(-545px,-250px - (1024px - 100vw) * 1.1523,-250px);top:36%;width:465px}.block--stat-grid-v2 .stat-grid-v2__shape--br-outline{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);bottom:56px;clip-path:polygon(55.1% 0,100% 0,45% 100%,0 100%);-webkit-clip-path:polygon(55.1% 0,100% 0,45% 100%,0 100%);right:clamp(-410px,-185px - (1024px - 100vw) * .8789,-185px);width:410px}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tzL3N0YXQtZ3JpZC12Mi9kaXN0L3N0eWxlLm1pbi5jc3MiLCJtYXBwaW5ncyI6IkFBRUEscUJBSUUsd0JDSVcsQ0ROWCxnQkVpREEsbUJBUnNCLENBS3RCLGdCQUxzQixDRjFDdEIsaUJBR0YsQ0d5REkseUJIN0RKLHFCRTJERyxtQkFmcUIsQ0FZckIsZ0JGL0NELENBQ0YsQ0FFRSxnQ0FHRSxpQkFDQSxvQkFDQSxxQkFKQSxrQkFDQSxTQUdKLENHNENJLHlCSGpERixnQ0FRSSxrQkFDQSxrQkFDSixDQUNGLENBR0UsMENBQ0Usa0JBREosQ0dtQ0kseUJIbkNGLDBDQUlJLGtCQUFKLENBQ0YsQ0FFSSxpREFBWSxlQUNoQixDQUFJLGtEQUFZLGlCQUdoQixDQUZJLCtDQUFZLGdCQUtoQixDQUZFLDRDQU9FLG9DQUhBLG1EQUNBLDZCQUNBLHFCQUxBLHlDQ3dCVSxDRHZCVixlQUNBLGlCRTBFSCxvQkZqRUQsQ0dXSSx5Qkh2QkYsNENBV0ksZUFDQSxnQkFLSixDQUNGLENBRkUsK0NBSUUsYUN6RFcsQ0RzRFgsMkNDTVMsQ0RMVCxlQUNBLGdCQUdBLGNBREEsZUFLSixDR0hJLHlCSFBGLCtDQVNJLGVBQ0EsZ0JBS0osQ0FDRixDQUhJLDREQUFlLGVBTW5CLENBQUUseUNBR0UsbUJBRkEsYUFDQSxzQkFFQSxRQUVKLENHbEJJLHlCSFlGLHlDQVVJLHFDQUhBLG1CQUNBLGVBQ0EsdUJBRUEsWUFHSixDQUNGLENBQUUseUNBR0UsbUJBSUEsYUM5RlcsQ0R3RlgsYUFDQSxzQkFJQSxnQkFGQSxrQkFDQSxVQUlKLENHcENJLHlCSDJCRix5Q0FVSSw4QkFDQSw4QkFHSixDQUNGLENBQUUsMkNBS0UsYUNyRlUsQ0RpRlYseUNDekNVLENEMENWLGVBQ0EsY0FDQSxlQUdKLENHakRJLHlCSDBDRiwyQ0FRSSxjQUdKLENBQ0YsQ0FBRSwwQ0FDRSwyQ0N2RFMsQ0R3RFQsZUFDQSxpQkFDQSxRQUVKLENBRUUsMENBSUUsYUFGQSxvQkFEQSxrQkFFQSxTQUNKLENHbEVJLHlCSDhERiwwQ0FPSSxhQUNKLENBQ0YsQ0FHRSxvREFDRSxTQVVBLGFBSEEsMENBRUEsY0FHQSxXQURBLGdCQUhBLFdBSEosQ0FtQkkseUtBQ0UsY0FFQSxZQURBLFVBVk4sQ0FvQkUsbURBRUUsU0FHQSxXQUZBLDhEQUZBLFFBR0EsV0FqQkosQ0FxQkUsc0RBU0UsMEJBQ0Esa0NBVEEsWUFNQSxrREFDQSwwREFOQSw2REFDQSxXQWZKLEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly93ZWJtZWNoYW5peC8uL2Jsb2Nrcy9zdGF0LWdyaWQtdjIvc3JjL19zdGF0LWdyaWQtdjIuc2NzcyIsIndlYnBhY2s6Ly93ZWJtZWNoYW5peC8uL3NyYy9zY3NzL2N1c3RvbS9fYnJhbmRpbmcuc2NzcyIsIndlYnBhY2s6Ly93ZWJtZWNoYW5peC8uL3NyYy9zY3NzL2N1c3RvbS9wYXJ0aWFscy9faG91c2UtbWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vd2VibWVjaGFuaXgvLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19icmVha3BvaW50cy5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgJy4uLy4uLy4uL3NyYy9zY3NzL2JhcmUtYnMtbmVjZXNzaXRpZXMnO1xuXG4uYmxvY2stLXN0YXQtZ3JpZC12MiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgQGluY2x1ZGUgdjItc2VjdGlvbi1wYWRkaW5nO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS01O1xuXG4gIC8vIFRoZW1lIDE0NDAgY29udmVudGlvbi4gQm9vdHN0cmFwJ3MgYC5jb250YWluZXJgIGlzIGNhcHBlZCBhdCAxMjAwcHggYXQgeHhsIGJ5XG4gIC8vIHRoZSAkY29udGFpbmVyLW1heC13aWR0aHMgb3ZlcnJpZGUgaW4gc3JjL3Njc3MvYm9vdHN0cmFwLnNjc3M6MTc7IHRoaXMgd2lkZW5zIGl0XG4gIC8vIGluIGJsb2NrIHNjb3BlIOKAlCAoMCwyLDApIGJlYXRzIEJvb3RzdHJhcCdzIGAuY29udGFpbmVyYCAoMCwxLDApIGF0IGV2ZXJ5XG4gIC8vIGJyZWFrcG9pbnQuIFBhZGRpbmcgbWlycm9ycyBzdGF0ZW1lbnQtYmFyLVYyIHNvIHRoZSAxNDQwIGJsb2NrcyBhbGlnbiB3aXRoIGVhY2hcbiAgLy8gb3RoZXIuIFRoZSBkZWNvcmF0aXZlIHNoYXBlcyBhcmUgcG9zaXRpb25lZCBvbiB0aGUgYmxvY2sgcm9vdCAoZnVsbC1ibGVlZCksIHNvXG4gIC8vIHRoZXkncmUgdW5hZmZlY3RlZDsgb25seSB0aGUgX19zdGF0IGNvbHVtbnMgcmVzY2FsZS5cbiAgLmNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7XG4gICAgbWF4LXdpZHRoOiAxNDQwcHg7XG4gICAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XG4gICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChsZykge1xuICAgICAgcGFkZGluZy1sZWZ0OiA2cmVtO1xuICAgICAgcGFkZGluZy1yaWdodDogNnJlbTtcbiAgICB9XG4gIH1cblxuICAvLyDilIDilIDilIAgU2VjdGlvbiBoZWFkaW5nIChDb21tb24gQmxvY2sgT3B0aW9ucykg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gIC5zdGF0LWdyaWQtdjJfX2ludHJvIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChtZCkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogOTZweDtcbiAgICB9XG5cbiAgICAmLS1zdGFydCAgeyB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gICAgJi0tY2VudGVyIHsgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgJi0tZW5kICAgIHsgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgfVxuXG4gIC5zdGF0LWdyaWQtdjJfX2hlYWRpbmcge1xuICAgIGZvbnQtZmFtaWx5OiAkYXZlbmlyLWJvbGQ7XG4gICAgZm9udC1zaXplOiAyOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICRwcmltYXJ5LTUwIDAlLCAkcHJpbWFyeS0xMDAgMTAwJSk7XG4gICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gICAgYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBAaW5jbHVkZSB2Mi1ncmFkaWVudC10ZXh0LWRlc2NlbmRlci1yb29tKDAuMDVlbSk7XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKG1kKSB7XG4gICAgICBmb250LXNpemU6IDQ1cHg7XG4gICAgICBsaW5lLWhlaWdodDogNTBweDtcbiAgICB9XG4gIH1cblxuICAuc3RhdC1ncmlkLXYyX19pbnRyby10ZXh0IHtcbiAgICBmb250LWZhbWlseTogJGF2ZW5pci1tZWQ7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgY29sb3I6ICRwcmltYXJ5LTEwMDtcbiAgICBtYXgtd2lkdGg6IDcyMHB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChtZCkge1xuICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDI1cHg7XG4gICAgfVxuXG4gICAgcDpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuICB9XG5cbiAgLy8g4pSA4pSA4pSAIFN0YXRzIGdyaWQg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gIC8vIEZsZXgtd3JhcCB3aXRoIGp1c3RpZnktY29udGVudDpjZW50ZXIgc28gYSBwYXJ0aWFsIGxhc3Qgcm93IGNlbnRlcnNcbiAgLy8gKGUuZy4gNSBzdGF0cyByZW5kZXIgYXMgMyArIDIgY2VudGVyZWQsIG1hdGNoaW5nIHRoZSBGaWdtYSBsYXlvdXQpLlxuICAuc3RhdC1ncmlkLXYyX19ncmlkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDQycHg7XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKG1kKSB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBjb2x1bW4tZ2FwOiAzMnB4O1xuICAgICAgcm93LWdhcDogNDJweDtcbiAgICB9XG4gIH1cblxuICAuc3RhdC1ncmlkLXYyX19zdGF0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAzMjBweDtcbiAgICBjb2xvcjogJHByaW1hcnktMTAwO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChtZCkge1xuICAgICAgZmxleDogMCAwIGNhbGMoMzMuMzMzJSAtIDMycHgpO1xuICAgICAgbWF4LXdpZHRoOiBjYWxjKDMzLjMzMyUgLSAzMnB4KTtcbiAgICB9XG4gIH1cblxuICAuc3RhdC1ncmlkLXYyX19udW1iZXIge1xuICAgIGZvbnQtZmFtaWx5OiAkYXZlbmlyLWJvbGQ7XG4gICAgZm9udC1zaXplOiA0NXB4OyAvLyBtb2JpbGVcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBtYXJnaW46IDAgMCAxMnB4O1xuICAgIGNvbG9yOiAkYnJpZ2h0LWJsdWU7XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKG1kKSB7XG4gICAgICBmb250LXNpemU6IDkwcHg7XG4gICAgfVxuICB9XG5cbiAgLnN0YXQtZ3JpZC12Ml9fbGFiZWwge1xuICAgIGZvbnQtZmFtaWx5OiAkYXZlbmlyLW1lZDtcbiAgICBmb250LXNpemU6IDIycHg7XG4gICAgbGluZS1oZWlnaHQ6IDI1cHg7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLy8g4pSA4pSA4pSAIERlY29yYXRpdmUgc2hhcGVzIChkZXNrdG9wIG9ubHkpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICAuc3RhdC1ncmlkLXYyX19zaGFwZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHotaW5kZXg6IDE7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobWQpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxuXG4gIC8vIEJvdHRvbS1sZWZ0IHN0cmlwZSBsaW5lcyAobG93IG9wYWNpdHkgcGVyIEZpZ21hKS5cbiAgLnN0YXQtZ3JpZC12Ml9fc2hhcGUtLWJsLWxpbmVzIHtcbiAgICBib3R0b206IDA7XG4gICAgLy8gRnJvemVuIGF0IHRoZSAxNDQwcHggcG9zaXRpb24uIC5zdGF0LWdyaWQtdjJfX3NoYXBlIGlzIGFic29sdXRlIGFuZCB0aGlzIGRpdlxuICAgIC8vIGlzIGEgc2libGluZyBvZiAuY29udGFpbmVyLCBzbyBpdCBhbmNob3JzIHRvIHRoZSBmdWxsLWJsZWVkIGJsb2NrIHJvb3Qg4oCUIGFcbiAgICAvLyBiYXJlIGAtNTE1cHhgIHBpbm5lZCBpdCB0byB0aGUgdmlld3BvcnQncyBMRUZUIGVkZ2UgYW5kIGl0IGRyaWZ0ZWQgb3V0d2FyZCBvblxuICAgIC8vIHdpZGUgc2NyZWVucy4gU2FtZSBgbWF4KDBweCwgNTAlIC0gNzIwcHgpYCBndXR0ZXIgdGVybSBhcyB0aGUgcmlnaHQtYW5jaG9yZWRcbiAgICAvLyBoYXRjaGVzOiBhZGRpbmcgaXQgbW92ZXMgdGhlIHNoYXBlIGlud2FyZCBhcyB0aGUgdmlld3BvcnQgZ3Jvd3MsIGFuZCBpdCBpcyAwXG4gICAgLy8gYXQgYW5kIGJlbG93IDE0NDAgc28gbm90aGluZyBjaGFuZ2VzIHRoZXJlLlxuICAgIGxlZnQ6IGNhbGMoLTUxNXB4ICsgbWF4KDBweCwgNTAlIC0gNzIwcHgpKTtcbiAgICB3aWR0aDogNzAwcHg7XG4gICAgbWF4LXdpZHRoOiA2MCU7XG4gICAgaGVpZ2h0OiAxMDBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG9wYWNpdHk6IDAuMTtcblxuICAgIGltZyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIC8vIEJvdHRvbS1yaWdodCBwdXJwbGUgcG9seWdvbiBwYWlyLlxuICAuc3RhdC1ncmlkLXYyX19zaGFwZS0tYnItZmlsbCxcbiAgLnN0YXQtZ3JpZC12Ml9fc2hhcGUtLWJyLW91dGxpbmUge1xuICAgIHN2ZyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiBhdXRvOyAvLyBpbnRyaW5zaWMgNjMyOjUzNiByYXRpbyBkcml2ZXMgaGVpZ2h0IHdoZW4gbm8gYXNwZWN0LXJhdGlvIGlzIHNldFxuICAgIH1cbiAgfVxuXG4gIC8vIOKUgOKUgOKUgCBSZXNwb25zaXZlIHNsaWRlLW9mZiAoMTAyNCDihpIgNzY4KSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgLy8gUmlnaHQgc2hhcGVzIGhvbGQgdGhlaXIgZGVzaWduIHBvc2l0aW9uIGF0ID49MTAyNHB4LCBzbGlkZSByaWdodHdhcmQgYXNcbiAgLy8gdGhlIHZpZXdwb3J0IG5hcnJvd3MsIGFuZCBhcmUgZnVsbHkgb2ZmIHNjcmVlbiBhdCA8PTc2OHB4LiBUaGUgZGVjaW1hbFxuICAvLyBmYWN0b3IgaW4gZWFjaCBjYWxjIGlzIGAob2ZmX3NjcmVlbiAtIGRlc2lnbikgLyAoMTAyNCAtIDc2OClgIOKAlCB0aGVcbiAgLy8gYW1vdW50IHRoZSBzaGFwZSBtb3ZlcyBwZXIgcGl4ZWwgb2Ygdmlld3BvcnQgc2hyaW5rYWdlLlxuICAuc3RhdC1ncmlkLXYyX19zaGFwZS0tYnItZmlsbCB7XG4gICAgdG9wOiAzNiU7XG4gICAgYm90dG9tOiAwO1xuICAgIHJpZ2h0OiBjbGFtcCgtNTQ1cHgsIGNhbGMoLTI1MHB4IC0gKDEwMjRweCAtIDEwMHZ3KSAqIDEuMTUyMyksIC0yNTBweCk7XG4gICAgd2lkdGg6IDQ2NXB4O1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuXG4gIC5zdGF0LWdyaWQtdjJfX3NoYXBlLS1ici1vdXRsaW5lIHtcbiAgICBib3R0b206IDU2cHg7XG4gICAgcmlnaHQ6IGNsYW1wKC00MTBweCwgY2FsYygtMTg1cHggLSAoMTAyNHB4IC0gMTAwdncpICogMC44Nzg5KSwgLTE4NXB4KTtcbiAgICB3aWR0aDogNDEwcHg7XG4gICAgLy8gRnJvc3RlZC1nbGFzcyBlZmZlY3QgKG1hdGNoZXMgbGFuZGluZy1wYWdlLWhlcm8tVjIgLmxwLWhlcm8tdjJfX2Zyb3N0KTpcbiAgICAvLyBjbGlwIHRoZSBlbGVtZW50IHRvIGEgcGFyYWxsZWxvZ3JhbSBzbyB0aGUgYmFja2Ryb3AtYmx1ciBpcyBzaGFwZWRcbiAgICAvLyBsaWtlIHRoZSBTVkcgb3V0bGluZSByYXRoZXIgdGhhbiBpdHMgYm91bmRpbmcgcmVjdGFuZ2xlLlxuICAgIGNsaXAtcGF0aDogcG9seWdvbig1NS4xJSAwJSwgMTAwJSAwJSwgNDUlIDEwMCUsIDAlIDEwMCUpO1xuICAgIC13ZWJraXQtY2xpcC1wYXRoOiBwb2x5Z29uKDU1LjElIDAlLCAxMDAlIDAlLCA0NSUgMTAwJSwgMCUgMTAwJSk7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDJweCk7XG4gICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMnB4KTtcbiAgfVxufVxuIiwiLy8gUHJpbWFyeVxuJGJsdWU6ICAgIFx0XHQjMzIwRkZGO1xuJGRhcmstYmx1ZTogICAgXHQjNDEzMjlCO1xuJGluay1ibHVlLTEwMDpcdCMyMzAwNEI7XG4kaW5rLWJsdWUtOTA6XHQjMjgwQTVGO1xuJGluay1ibHVlLTcwOlx0IzMyMTQ3ODtcbiRpbmstYmx1ZS01MDpcdCM0MTMyOUI7XG4kaW5rLWJsdWUtMzA6XHQjNUY1RkMzO1xuJGluay1ibHVlLTEwOlx0IzgyOENFMTtcbiRpbmstYmx1ZS04Olx0I0NERDFGMztcbiRpbmstYmx1ZS01Olx0I2Y3ZjZmZjtcbiRwcmltYXJ5Olx0ICBcdCRibHVlO1xuJHByaW1hcnktZGFyazogXHQkZGFyay1ibHVlO1xuJHByaW1hcnktMTAwOiBcdCRpbmstYmx1ZS0xMDA7XG4kcHJpbWFyeS05MDogXHQkaW5rLWJsdWUtOTA7XG4kcHJpbWFyeS03MDogXHQkaW5rLWJsdWUtNzA7XG4kcHJpbWFyeS01MDogXHQkaW5rLWJsdWUtNTA7XG4kcHJpbWFyeS0zMDogXHQkaW5rLWJsdWUtMzA7XG4kcHJpbWFyeS0xMDogXHQkaW5rLWJsdWUtMTA7XG4kcHJpbWFyeS04OiBcdCRpbmstYmx1ZS04O1xuJHByaW1hcnktNTogXHQkaW5rLWJsdWUtNTtcblxuXG4vLyBTZWNvbmRhcnlcbiRyZWQ6XHRcdFx0I0U2MUUyRDtcbiRicmlnaHQtYmx1ZTpcdCMzMjBGRkY7XG4kZ29sZDpcdFx0XHQjRkZCRTAwO1xuXG4kc2Vjb25kYXJ5LXJlZDpcdFx0JHJlZDtcbiRzZWNvbmRhcnktYmx1ZTpcdCRicmlnaHQtYmx1ZTtcbiRzZWNvbmRhcnktZ29sZDpcdCRnb2xkO1xuXG4vLyBOZXV0cmFsXG4kYmxhY2s6IFx0IzAwMDAwMDtcbiRkYXJrLWdyYXk6ICM3OTcyNzk7XG4kd2FybS1ncmF5Olx0I0I0QjRCOTtcbiRzbm93LWdyYXk6ICNGMEYwRjE7XG4kd2hpdGU6IFx0I0ZGRkZGRjtcblxuXG4vLyBFeHRyYXNcbiRjb2xvcnM6IChcblx0J3ByaW1hcnknXHRcdFx0OiAkcHJpbWFyeSxcblx0J3ByaW1hcnktZGFyaydcdFx0OiAkcHJpbWFyeS1kYXJrLFxuXHQncHJpbWFyeS0xMDAnIFx0XHQ6ICRwcmltYXJ5LTEwMCxcblx0J3ByaW1hcnktOTAnIFx0XHQ6ICRwcmltYXJ5LTkwLFxuXHQncHJpbWFyeS03MCcgXHRcdDogJHByaW1hcnktNzAsXG5cdCdwcmltYXJ5LTUwJyBcdFx0OiAkcHJpbWFyeS01MCxcblx0J3ByaW1hcnktMzAnIFx0XHQ6ICRwcmltYXJ5LTMwLFxuXHQncHJpbWFyeS0xMCcgXHRcdDogJHByaW1hcnktMTAsXG5cdCdwcmltYXJ5LTgnIFx0XHQ6ICRwcmltYXJ5LTgsXG5cdCdwcmltYXJ5LTUnIFx0XHQ6ICRwcmltYXJ5LTUsXG5cdCdyZWQnXHRcdFx0XHQ6ICRzZWNvbmRhcnktcmVkLFxuXHQnYnJpZ2h0LWJsdWUnXHRcdDogJHNlY29uZGFyeS1ibHVlLFxuXHQnZ29sZCdcdFx0XHRcdDogJHNlY29uZGFyeS1nb2xkLFxuXHQnd2FybS1ncmF5J1x0XHRcdDogJHdhcm0tZ3JheSxcblx0J2RhcmstZ3JheSdcdFx0XHQ6ICRkYXJrLWdyYXksXG5cdCdibGFjaydcdFx0XHRcdDogJGJsYWNrLFxuXHQnd2hpdGUnXHRcdFx0XHQ6ICR3aGl0ZVxuKTtcblxuLy8gU2FuLXNlcmlmIEZvbnRzXG4kYXZlbmlyLXJlZzogJ0F2ZW5pciBMVCBQcm8gUmVndWxhcicsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG4kYXZlbmlyLW1lZDogJ0F2ZW5pciBMVCBQcm8gTWVkaXVtJywgc2Fucy1zZXJpZiAhZGVmYXVsdDtcbiRhdmVuaXItZGVtaTogJ0F2ZW5pciBMVCBQcm8gRGVtaScsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG4kYXZlbmlyLWJvbGQ6ICdBdmVuaXIgTFQgUHJvIEJvbGQnLCBzYW5zLXNlcmlmICFkZWZhdWx0O1xuXG4vLyBTZXJpZiBGb250c1xuJGdlb3JnaWE6ICdHZW9yZ2lhJywgc2VyaWYgIWRlZmF1bHQ7IiwiQHVzZSAnc2FzczptYXRoJztcblxuLy8gU29tZSBob3VzZSBtaXhpbnM6XG5AZnVuY3Rpb24gdXJsRW5jb2RlQ29sb3IoJHN0cmluZyl7XG5cdEBpZiB0eXBlLW9mKCRzdHJpbmcpID09ICdjb2xvcid7XG5cdFx0JGhleDogc3RyLXNsaWNlKGllLWhleC1zdHIoJHN0cmluZyksIDQpO1xuXHRcdCRzdHJpbmc6IHVucXVvdGUoXCIjeyRoZXh9XCIpO1xuXHR9XG5cdCRzdHJpbmc6ICclMjMnICsgJHN0cmluZztcblx0QHJldHVybiAkc3RyaW5nO1xufVxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJHZhbHVlKXtcblx0QHJldHVybiBtYXRoLmRpdigkdmFsdWUsICR2YWx1ZSAqIDAgKyAxKTtcbn1cbkBtaXhpbiBmbHVpZC10eXBlKCRtaW4tdncsICRtYXgtdncsICRtaW4tZm9udC1zaXplLCAkbWF4LWZvbnQtc2l6ZSl7XG5cdCR1MTogdW5pdCgkbWluLXZ3KTtcblx0JHUyOiB1bml0KCRtYXgtdncpO1xuXHQkdTM6IHVuaXQoJG1pbi1mb250LXNpemUpO1xuXHQkdTQ6IHVuaXQoJG1heC1mb250LXNpemUpO1xuXHRAaWYgJHUxID09ICR1MiBhbmQgJHUxID09ICR1MyBhbmQgJHUxID09ICR1NHtcblx0XHQme1xuXHRcdFx0Zm9udC1zaXplOiAkbWluLWZvbnQtc2l6ZTtcblx0XHRcdEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRtaW4tdncpe1xuXHRcdFx0XHRmb250LXNpemU6IGNhbGMoI3skbWluLWZvbnQtc2l6ZX0gKyAje3N0cmlwLXVuaXQoJG1heC1mb250LXNpemUgLSAkbWluLWZvbnQtc2l6ZSl9ICogKCgxMDB2dyAtICN7JG1pbi12d30pIC8gI3tzdHJpcC11bml0KCRtYXgtdncgLSAkbWluLXZ3KX0pKTtcblx0XHRcdH1cblx0XHRcdEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRtYXgtdncpe1xuXHRcdFx0XHRmb250LXNpemU6ICRtYXgtZm9udC1zaXplO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuLy8g4pSA4pSA4pSAIFYyIHNlY3Rpb24gcmh5dGhtIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gVGhlIHNpbmdsZSB2ZXJ0aWNhbCBwYWRkaW5nIHRva2VuIGV2ZXJ5IFYyIHNlY3Rpb24gYmxvY2sgdXNlcy4gQmVmb3JlIHRoaXNcbi8vIGV4aXN0ZWQsIDI2IFYyIGJsb2NrcyBjYXJyaWVkIDEzIGRpZmZlcmVudCB0b3AvYm90dG9tIHBhaXJpbmdzIHN0ZXBwaW5nIGF0XG4vLyB0d28gZGlmZmVyZW50IGJyZWFrcG9pbnRzOyA0OCDihpIgODAgaXMgdGhlIG1lZGlhbiBvZiB3aGF0IHdhcyBhbHJlYWR5IHRoZXJlXG4vLyBhbmQgaW1hZ2UtYW5kLWl0ZW0tbGlzdC1WMiAvIHJlc291cmNlLWNhcm91c2VsLVYyIC8gc29jaWFsLXByb29mLXYyIGFscmVhZHlcbi8vIG1hdGNoZWQgaXQgZXhhY3RseSwgc28gaXQgaXMgdGhlIHNtYWxsZXN0IHRvdGFsIG1vdmUuXG4vL1xuLy8gU3RlcHBpbmcgYXQgYGxnYCAobm90IGBtZGApIGlzIGRlbGliZXJhdGU6IGl0IGxpbmVzIHRoZSB2ZXJ0aWNhbCBzdGVwIHVwIHdpdGhcbi8vIHRoZSBob3Jpem9udGFsIGd1dHRlciByYW1wICgxLjVyZW0g4oaSIDZyZW0gQGxnKSB0aGF0IDE5IGJsb2NrcyBhbHJlYWR5IHVzZSwgc29cbi8vIGEgc2VjdGlvbiBjaGFuZ2VzIGl0cyBzcGFjaW5nIGluIG9uZSBkaXJlY3Rpb24gYXQgb25lIHdpZHRoLlxuLy9cbi8vIGAkc2lkZXNgIGxldHMgYSBibG9jayB0YWtlIHRoZSB0b2tlbiBvbiBvbmUgZWRnZSB3aGlsZSBvd25pbmcgdGhlIG90aGVyIOKAlFxuLy8gY2FwYWJpbGl0aWVzLVYyIG5lZWRzIGl0cyBvd24gYm90dG9tIChpdCByZXNlcnZlcyA2MHB4IGZvciBhbiBhYnNvbHV0ZWx5XG4vLyBwb3NpdGlvbmVkIGVsZW1lbnQpLiBBbnl0aGluZyBvcHRpbmcgb3V0IGVudGlyZWx5IGp1c3QgZG9lc24ndCBpbmNsdWRlIHRoaXMuXG4kdjItc2VjdGlvbi1wYWRkaW5nLXNtOiA0OHB4O1xuJHYyLXNlY3Rpb24tcGFkZGluZy1sZzogODBweDtcblxuQG1peGluIHYyLXNlY3Rpb24tcGFkZGluZygkc2lkZXM6IGJvdGgpIHtcblx0QGlmICRzaWRlcyA9PSBib3RoIG9yICRzaWRlcyA9PSB0b3Age1xuXHRcdHBhZGRpbmctdG9wOiAkdjItc2VjdGlvbi1wYWRkaW5nLXNtO1xuXHR9XG5cdEBpZiAkc2lkZXMgPT0gYm90aCBvciAkc2lkZXMgPT0gYm90dG9tIHtcblx0XHRwYWRkaW5nLWJvdHRvbTogJHYyLXNlY3Rpb24tcGFkZGluZy1zbTtcblx0fVxuXG5cdEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobGcpIHtcblx0XHRAaWYgJHNpZGVzID09IGJvdGggb3IgJHNpZGVzID09IHRvcCB7XG5cdFx0XHRwYWRkaW5nLXRvcDogJHYyLXNlY3Rpb24tcGFkZGluZy1sZztcblx0XHR9XG5cdFx0QGlmICRzaWRlcyA9PSBib3RoIG9yICRzaWRlcyA9PSBib3R0b20ge1xuXHRcdFx0cGFkZGluZy1ib3R0b206ICR2Mi1zZWN0aW9uLXBhZGRpbmctbGc7XG5cdFx0fVxuXHR9XG59XG4vLyDilIDilIDilIAgR3JhZGllbnQgdGV4dCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIERlc2NlbmRlciByb29tIGZvciBncmFkaWVudC1jbGlwcGVkIHRleHQuXG4vL1xuLy8gVjIgaGVhZGluZ3MgdGFrZSB0aGVpciBjb2xvdXIgZnJvbSBhIGdyYWRpZW50ICpiYWNrZ3JvdW5kKiBjbGlwcGVkIHRvIHRoZVxuLy8gZ2x5cGhzIChgYmFja2dyb3VuZC1jbGlwOiB0ZXh0YCBwbHVzIGEgdHJhbnNwYXJlbnQgdGV4dCBmaWxsKS4gQSBiYWNrZ3JvdW5kXG4vLyBvbmx5IHBhaW50cyBpbnNpZGUgdGhlIGVsZW1lbnQncyBib3gsIHNvIGluayBoYW5naW5nIGJlbG93IHRoYXQgYm94IGhhc1xuLy8gbm90aGluZyB0byBwYWludCB3aXRoIGFuZCBzaW1wbHkgZGlzYXBwZWFycy4gSXQgZG9lc24ndCByZWFkIGFzIGNsaXBwZWQg4oCUXG4vLyB0aGUgYm90dG9tIGxvb3Agb2YgYSBcImdcIiBvciB0aGUgdGFpbCBvZiBhIFwieVwiIGlzIGp1c3QgYWJzZW50IOKAlCB3aGljaCBpcyB3aHlcbi8vIGl0IGdvZXMgdW5ub3RpY2VkIHVudGlsIGFuIGVkaXRvciBoYXBwZW5zIHRvIHR5cGUgb25lIG9udG8gdGhlIGxhc3QgbGluZS5cbi8vXG4vLyBUaGUgb3ZlcmhhbmcgaXMgYSBjb25zZXF1ZW5jZSBvZiB0aGUgdGlnaHQgZWRpdG9yaWFsIGxpbmUtaGVpZ2h0cyB0aGUgZGVzaWduc1xuLy8gdXNlLiBBdmVuaXIncyBkZXNjZW5kZXIgaW5rIHJlYWNoZXMgMC4yNDBlbSBiZWxvdyB0aGUgYmFzZWxpbmUsIHNvIGNsaXBwaW5nXG4vLyBiZWdpbnMgd2hlcmV2ZXIgbGluZS1oZWlnaHQgZHJvcHMgYmVsb3cgfjEuMTc0LCBhbmQgbm8gVjIgaGVhZGluZyBpcyBhYm92ZVxuLy8gdGhhdC4gT25seSB0aGUgZmluYWwgbGluZSBpcyBldmVyIGFmZmVjdGVkOyBpbnRlcmlvciBsaW5lcyBzaXQgaW5zaWRlIHRoZSBib3guXG4vL1xuLy8gMC4xZW0gY292ZXJzIHRoZSB3b3JzdCBjYXNlICg5MHB4IGhlYWRsaW5lcyBhdCBsaW5lLWhlaWdodCAxKSB3aXRoIGhlYWRyb29tLlxuLy8gSW4gZW0gc28gaXQgdHJhY2tzIGEgaGVhZGluZydzIHJlc3BvbnNpdmUgc2l6ZXMg4oCUIGluY2x1ZGluZyBjbGFtcCgpIOKAlCB3aXRob3V0XG4vLyBwZXItYnJlYWtwb2ludCBvdmVycmlkZXMuIFJhaXNpbmcgbGluZS1oZWlnaHQgcGFzdCB+MS4xNzQgd291bGQgYWxzbyBmaXggaXQsXG4vLyBidXQgdGhhdCBsb29zZW5zIGV2ZXJ5IGxpbmUgb2YgYSBtdWx0aS1saW5lIGhlYWRpbmcgYnkgMTAtMTclIGFuZCB0aGUgdGlnaHRcbi8vIHNldHRpbmcgaXMgdGhlIGRlc2lnbi5cbi8vXG4vLyBPbmx5IHRoZSBib3R0b20gbmVlZHMgaXQ6IHRoZSB0YWxsZXN0IGluayBpbiB0aGUgZmFjZSBzaXRzIHdlbGwgaW5zaWRlIHRoZVxuLy8gbGluZSBib3ggdG9wLCBzbyBhc2NlbmRlcnMgYWxyZWFkeSBoYXZlIGNsZWFyYW5jZS5cbi8vXG4vLyBPbmUgc2lkZSBlZmZlY3Qgd29ydGgga25vd2luZzogYmFja2dyb3VuZC1vcmlnaW4gaXMgdGhlIHBhZGRpbmcgYm94LCBzbyB0aGlzXG4vLyBsZW5ndGhlbnMgdGhlIGdyYWRpZW50J3MgcGFpbnRpbmcgYXJlYSBieSB0aGUgc2FtZSAwLjFlbS4gVGhlIHJhbXAgc3RyZXRjaGVzXG4vLyB3aXRoIGl0IGFuZCB0aGUgY29sb3VycyBsYW5kIG1hcmdpbmFsbHkgbG93ZXIg4oCUIHVuZGVyIDEwJSBvZiB0aGUgcmFtcCBvbiBhXG4vLyBzaW5nbGUtbGluZSBoZWFkaW5nLCBwcm9wb3J0aW9uYWxseSBsZXNzIGFzIGxpbmVzIGFyZSBhZGRlZC4gRGVsaWJlcmF0ZWx5IG5vdFxuLy8gY29tcGVuc2F0ZWQgd2l0aCBhIG5lZ2F0aXZlIG1hcmdpbiBoZXJlOiBhIGJsb2NrIHRoYXQgc2V0cyBtYXJnaW4tYm90dG9tXG4vLyBhZnRlciB0aGUgaW5jbHVkZSB3b3VsZCBzaWxlbnRseSBjYW5jZWwgaXQuXG4vL1xuLy8gVGhlIHJvb20gYSBnaXZlbiBzZXR0aW5nIGFjdHVhbGx5IG5lZWRzLCBpbiBlbSwgaXNcbi8vXG4vLyAgIGlua19kZXNjZW50IC0gZm9udF9kZXNjZW50ICsgKGNvbnRlbnRfYXJlYSAtIGxpbmVfaGVpZ2h0KSAvIDJcbi8vXG4vLyB3aGljaCBmb3IgdGhlIHRocmVlIGZhY2VzIGluIHBsYXkgcHV0cyB0aGUgY2xpcHBpbmcgdGhyZXNob2xkIGF0XG4vL1xuLy8gICBBdmVuaXIgTFQgUHJvIEJvbGQgICAgIGluayAwLjI0MDIgIGRlc2NlbnQgMC4yNzAwICBjb250ZW50IDEuMjMyNSAgbGggPCAxLjE3M1xuLy8gICBBdmVuaXIgTFQgUHJvIE1lZGl1bSAgIGluayAwLjI0MDIgIGRlc2NlbnQgMC4yNzAwICBjb250ZW50IDEuMjIwMCAgbGggPCAxLjE2MFxuLy8gICBBdmVuaXIgTmV4dCAgICAgICAgICAgIGluayAwLjI0MDAgIGRlc2NlbnQgMC4zNjUwICBjb250ZW50IDEuMzY1MCAgbGggPCAxLjExNVxuLy9cbi8vIEF2ZW5pciBOZXh0J3MgZGVlcGVyIGRlc2NlbnQgbWV0cmljIGJ1eXMgaXQgMC4wNmVtIG9mIHNsYWNrIHRoZSBMVCBQcm8gZmFjZXNcbi8vIGRvbid0IGhhdmUsIHdoaWNoIGlzIHdoeSB0aGUgdHdvIGFjY29yZGlvbiBoZWFkaW5ncyBhdCBsaW5lLWhlaWdodCAxLjE1IGRvbid0XG4vLyBjbGlwIHdoaWxlIHRoZSBMVCBQcm8gaGVhZGluZ3MgYXQgMS4xMTEgZG8uIChDaGVja2VkIHRoZSBXaW5kb3dzIGZhbGxiYWNrIHRvbzpcbi8vIGdlbmVyaWMgc2Fucy1zZXJpZiBpcyAwLjIyMTIgLyAwLjIzMDAgLyAxLjE1MDAsIHRocmVzaG9sZCAxLjEzMiwgYWxzbyBjbGVhci4pXG4vL1xuLy8gJHJvb20gZXhpc3RzIGZvciB0aGUgc2hhbGxvdyB0aWVyLiBFbGV2ZW4gNDVweC81MHB4IGhlYWRpbmdzIG92ZXJoYW5nIGJ5XG4vLyAxLjRweDsgdGhlIGRlZmF1bHQgMC4xZW0gd291bGQgZml4IHRoYXQgYXQgYSBjb3N0IG9mIDQuNXB4IG9mIGV4dHJhIGdhcFxuLy8gdW5kZXIgZWFjaCBvbmUsIHNvIHRoZXkgdGFrZSAwLjA1ZW0gaW5zdGVhZCDigJQgMi4yNXB4LCBzdGlsbCA2MCUgaGVhZHJvb20gb3ZlciB0aGUgMS40cHgsXG4vLyBmb3IgYSBnYXAgY2hhbmdlIHRoYXQgc3RheXMgdW5kZXIgdGhlIDJweCB0aGUgaW5rIGl0c2VsZiBvY2N1cGllcy4gQW55dGhpbmdcbi8vIGRlZXBlciB0aGFuIH4yLjVweCBzaG91bGQgdGFrZSB0aGUgZGVmYXVsdC5cbkBtaXhpbiB2Mi1ncmFkaWVudC10ZXh0LWRlc2NlbmRlci1yb29tKCRyb29tOiAwLjFlbSkge1xuXHRwYWRkaW5nLWJvdHRvbTogJHJvb207XG59XG4iLCIvLyBCcmVha3BvaW50IHZpZXdwb3J0IHNpemVzIGFuZCBtZWRpYSBxdWVyaWVzLlxuLy9cbi8vIEJyZWFrcG9pbnRzIGFyZSBkZWZpbmVkIGFzIGEgbWFwIG9mIChuYW1lOiBtaW5pbXVtIHdpZHRoKSwgb3JkZXIgZnJvbSBzbWFsbCB0byBsYXJnZTpcbi8vXG4vLyAgICAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KVxuLy9cbi8vIFRoZSBtYXAgZGVmaW5lZCBpbiB0aGUgYCRncmlkLWJyZWFrcG9pbnRzYCBnbG9iYWwgdmFyaWFibGUgaXMgdXNlZCBhcyB0aGUgYCRicmVha3BvaW50c2AgYXJndW1lbnQgYnkgZGVmYXVsdC5cblxuLy8gTmFtZSBvZiB0aGUgbmV4dCBicmVha3BvaW50LCBvciBudWxsIGZvciB0aGUgbGFzdCBicmVha3BvaW50LlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSlcbi8vICAgIG1kXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgJGJyZWFrcG9pbnQtbmFtZXM6ICh4cyBzbSBtZCBsZyB4bCB4eGwpKVxuLy8gICAgbWRcbkBmdW5jdGlvbiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMsICRicmVha3BvaW50LW5hbWVzOiBtYXAta2V5cygkYnJlYWtwb2ludHMpKSB7XG4gICRuOiBpbmRleCgkYnJlYWtwb2ludC1uYW1lcywgJG5hbWUpO1xuICBAaWYgbm90ICRuIHtcbiAgICBAZXJyb3IgXCJicmVha3BvaW50IGAjeyRuYW1lfWAgbm90IGZvdW5kIGluIGAjeyRicmVha3BvaW50c31gXCI7XG4gIH1cbiAgQHJldHVybiBpZigkbiA8IGxlbmd0aCgkYnJlYWtwb2ludC1uYW1lcyksIG50aCgkYnJlYWtwb2ludC1uYW1lcywgJG4gKyAxKSwgbnVsbCk7XG59XG5cbi8vIE1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTnVsbCBmb3IgdGhlIHNtYWxsZXN0IChmaXJzdCkgYnJlYWtwb2ludC5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW1pbihzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweCkpXG4vLyAgICA1NzZweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG1pbiAhPSAwLCAkbWluLCBudWxsKTtcbn1cblxuLy8gTWF4aW11bSBicmVha3BvaW50IHdpZHRoLlxuLy8gVGhlIG1heGltdW0gdmFsdWUgaXMgcmVkdWNlZCBieSAwLjAycHggdG8gd29yayBhcm91bmQgdGhlIGxpbWl0YXRpb25zIG9mXG4vLyBgbWluLWAgYW5kIGBtYXgtYCBwcmVmaXhlcyBhbmQgdmlld3BvcnRzIHdpdGggZnJhY3Rpb25hbCB3aWR0aHMuXG4vLyBTZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL21lZGlhcXVlcmllcy00LyNtcS1taW4tbWF4XG4vLyBVc2VzIDAuMDJweCByYXRoZXIgdGhhbiAwLjAxcHggdG8gd29yayBhcm91bmQgYSBjdXJyZW50IHJvdW5kaW5nIGJ1ZyBpbiBTYWZhcmkuXG4vLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODI2MVxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWF4KG1kLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIDc2Ny45OHB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1heDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgQHJldHVybiBpZigkbWF4IGFuZCAkbWF4ID4gMCwgJG1heCAtIC4wMiwgbnVsbCk7XG59XG5cbi8vIFJldHVybnMgYSBibGFuayBzdHJpbmcgaWYgc21hbGxlc3QgYnJlYWtwb2ludCwgb3RoZXJ3aXNlIHJldHVybnMgdGhlIG5hbWUgd2l0aCBhIGRhc2ggaW4gZnJvbnQuXG4vLyBVc2VmdWwgZm9yIG1ha2luZyByZXNwb25zaXZlIHV0aWxpdGllcy5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHhzLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIFwiXCIgIChSZXR1cm5zIGEgYmxhbmsgc3RyaW5nKVxuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweCkpXG4vLyAgICBcIi1zbVwiXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pbmZpeCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICBAcmV0dXJuIGlmKGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpID09IG51bGwsIFwiXCIsIFwiLSN7JG5hbWV9XCIpO1xufVxuXG4vLyBNZWRpYSBvZiBhdCBsZWFzdCB0aGUgbWluaW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIHdpZGVyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWluIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSBvZiBhdCBtb3N0IHRoZSBtYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgbGFyZ2VzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWF4IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSB0aGF0IHNwYW5zIG11bHRpcGxlIGJyZWFrcG9pbnQgd2lkdGhzLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IGJldHdlZW4gdGhlIG1pbiBhbmQgbWF4IGJyZWFrcG9pbnRzXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1iZXR3ZWVuKCRsb3dlciwgJHVwcGVyLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRsb3dlciwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJHVwcGVyLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRsb3dlciwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJHVwcGVyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyBNZWRpYSBiZXR3ZWVuIHRoZSBicmVha3BvaW50J3MgbWluaW11bSBhbmQgbWF4aW11bSB3aWR0aHMuXG4vLyBObyBtaW5pbXVtIGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludCwgYW5kIG5vIG1heGltdW0gZm9yIHRoZSBsYXJnZXN0IG9uZS5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBvbmx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50LCBub3Qgdmlld3BvcnRzIGFueSB3aWRlciBvciBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LW9ubHkoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICAkbmV4dDogYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICAkbWF4OiAgYnJlYWtwb2ludC1tYXgoJG5leHQsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuZXh0LCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9*/