UNPKG

@visa/nova-angular

Version:

Visa Product Design System Nova Angular library

165 lines 16.7 kB
/** * Copyright (c) 2025 Visa, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * **/ import { Directive, HostBinding, Input } from '@angular/core'; import * as i0 from "@angular/core"; export class PaddingDirective { get hostClasses() { return [ this.vPT || this.vPT === 0 ? this.convertToString(this.vPT).startsWith('-') ? `-v-pt${this.vPT}` : `v-pt-${this.vPT}` : null, this.vPR || this.vPR === 0 ? this.convertToString(this.vPR).startsWith('-') ? `-v-pr${this.vPR}` : `v-pr-${this.vPR}` : null, this.vPB || this.vPB === 0 ? this.convertToString(this.vPB).startsWith('-') ? `-v-pb${this.vPB}` : `v-pb-${this.vPB}` : null, this.vPL || this.vPL === 0 ? this.convertToString(this.vPL).startsWith('-') ? `-v-pl${this.vPL}` : `v-pl-${this.vPL}` : null, this.vPX || this.vPX === 0 ? this.convertToString(this.vPX).startsWith('-') ? `-v-px${this.vPX}` : `v-px-${this.vPX}` : null, this.vPY || this.vPY === 0 ? this.convertToString(this.vPY).startsWith('-') ? `-v-py${this.vPY}` : `v-py-${this.vPY}` : null, this.vP || this.vP === 0 ? this.convertToString(this.vP).startsWith('-') ? `-v-p${this.vP}` : `v-p-${this.vP}` : null ].join(' '); } convertToString(value) { return value ? value.toString() : ''; } /** * Sets padding-block-start property. <br> * Accepts: 0 - 48 or <code>SpacingProperties</code>. */ get vPT() { return this._vPT; } set vPT(value) { this._vPT = value; } /** * Sets padding-inline-end property. <br> * Accepts: 0 - 48 or <code>SpacingProperties</code>. */ get vPR() { return this._vPR; } set vPR(value) { this._vPR = value; } /** * Sets padding-block-end property. <br> * Accepts: 0 - 48 or <code>SpacingProperties</code>. */ get vPB() { return this._vPB; } set vPB(value) { this._vPB = value; } /** * Sets padding-inline-start property. <br> * Accepts: 0 - 48 or <code>SpacingProperties</code>. */ get vPL() { return this._vPL; } set vPL(value) { this._vPL = value; } /** * Sets padding-inline property. <br> * Accepts: 0 - 48 or <code>SpacingProperties</code>. */ get vPX() { return this._vPX; } set vPX(value) { this._vPX = value; } /** * Sets padding-block property. <br> * Accepts: 0 - 48 or <code>SpacingProperties</code>. */ get vPY() { return this._vPY; } set vPY(value) { this._vPY = value; } /** * Sets padding property. <br> * Accepts: 0 - 48 or <code>SpacingProperties</code>. */ get vP() { return this._vP; } set vP(value) { this._vP = value; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PaddingDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: PaddingDirective, isStandalone: true, selector: "[vPT], [vPR], [vPB], [vPL], [vPX], [vPY], [vP], ", inputs: { vPT: "vPT", vPR: "vPR", vPB: "vPB", vPL: "vPL", vPX: "vPX", vPY: "vPY", vP: "vP" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PaddingDirective, decorators: [{ type: Directive, args: [{ standalone: true, selector: '[vPT], ' + // padding block start '[vPR], ' + // padding inline end '[vPB], ' + // padding block end '[vPL], ' + // padding inline start '[vPX], ' + // padding inline '[vPY], ' + // padding block '[vP], ' // all paddings }] }], propDecorators: { hostClasses: [{ type: HostBinding, args: ['class'] }], vPT: [{ type: Input }], vPR: [{ type: Input }], vPB: [{ type: Input }], vPL: [{ type: Input }], vPX: [{ type: Input }], vPY: [{ type: Input }], vP: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFkZGluZy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25vdmEtbGliL3NyYy9saWIvcGFkZGluZy9wYWRkaW5nLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQkEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQWM5RCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLElBQ0ksV0FBVztRQUNiLE9BQU87WUFDTCxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQztnQkFDeEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUM7b0JBQzlDLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxHQUFHLEVBQUU7b0JBQ3BCLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ3RCLENBQUMsQ0FBQyxJQUFJO1lBQ1IsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7Z0JBQ3hCLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO29CQUM5QyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsR0FBRyxFQUFFO29CQUNwQixDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUN0QixDQUFDLENBQUMsSUFBSTtZQUNSLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO2dCQUN4QixDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztvQkFDOUMsQ0FBQyxDQUFD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QUksQ0FBQztJQUNuQixDQUFDO0lBQ0QsSUFBSSxHQUFHLENBQUMsS0FBSztRQUNYLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFHRDs7O09BR0c7SUFDSCxJQUNJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUNELElBQUksR0FBRyxDQUFDLEtBQUs7UUFDWCxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBR0Q7OztPQUdHO0lBQ0gsSUFDSSxFQUFFO1FBQ0osT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2xCLENBQUM7SUFDRCxJQUFJLEVBQUUsQ0FBQyxLQUFLO1FBQ1YsSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUM7SUFDbkIsQ0FBQzsrR0F0SVUsZ0JBQWdCO21HQUFoQixnQkFBZ0I7OzRGQUFoQixnQkFBZ0I7a0JBWDVCLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFDTixTQUFTLEdBQUcsc0JBQXNCO3dCQUNsQyxTQUFTLEdBQUcscUJBQXFCO3dCQUNqQyxTQUFTLEdBQUcsb0JBQW9CO3dCQUNoQyxTQUFTLEdBQUcsdUJBQXVCO3dCQUNuQyxTQUFTLEdBQUcsaUJBQWlCO3dCQUM3QixTQUFTLEdBQUcsZ0JBQWdCO3dCQUM1QixRQUFRLENBQUMsZUFBZTtpQkFDM0I7OEJBR0ssV0FBVztzQkFEZCxXQUFXO3VCQUFDLE9BQU87Z0JBa0RoQixHQUFHO3NCQUROLEtBQUs7Z0JBY0YsR0FBRztzQkFETixLQUFLO2dCQWNGLEdBQUc7c0JBRE4sS0FBSztnQkFjRixHQUFHO3NCQUROLEtBQUs7Z0JBY0YsR0FBRztzQkFETixLQUFLO2dCQWNGLEdBQUc7c0JBRE4sS0FBSztnQkFjRixFQUFFO3NCQURMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICAgICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDIwMjUgVmlzYSwgSW5jLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKlxuICoqL1xuaW1wb3J0IHsgTnVtYmVySW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0QmluZGluZywgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNwYWNpbmdQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vbm92YS1saWIuY29uc3RhbnRzJztcblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOlxuICAgICdbdlBUXSwgJyArIC8vIHBhZGRpbmcgYmxvY2sgc3RhcnRcbiAgICAnW3ZQUl0sICcgKyAvLyBwYWRkaW5nIGlubGluZSBlbmRcbiAgICAnW3ZQQl0sICcgKyAvLyBwYWRkaW5nIGJsb2NrIGVuZFxuICAgICdbdlBMXSwgJyArIC8vIHBhZGRpbmcgaW5saW5lIHN0YXJ0XG4gICAgJ1t2UFhdLCAnICsgLy8gcGFkZGluZyBpbmxpbmVcbiAgICAnW3ZQWV0sICcgKyAvLyBwYWRkaW5nIGJsb2NrXG4gICAgJ1t2UF0sICcgLy8gYWxsIHBhZGRpbmdzXG59KVxuZXhwb3J0IGNsYXNzIFBhZGRpbmdEaXJlY3RpdmUge1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGhvc3RDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHRoaXMudlBUIHx8IHRoaXMudlBUID09PSAwXG4gICAgICAgID8gdGhpcy5jb252ZXJ0VG9TdHJpbmcodGhpcy52UFQpLnN0YXJ0c1dpdGgoJy0nKVxuICAgICAgICAgID8gYC12LXB0JHt0aGlzLnZQVH1gXG4gICAgICAgICAgOiBgdi1wdC0ke3RoaXMudlBUfWBcbiAgICAgICAgOiBudWxsLFxuICAgICAgdGhpcy52UFIgfHwgdGhpcy52UFIgPT09IDBcbiAgICAgICAgPyB0aGlzLmNvbnZlcnRUb1N0cmluZyh0aGlzLnZQUikuc3RhcnRzV2l0aCgnLScpXG4gICAgICAgICAgPyBgLXYtcHIke3RoaXMudlBSfWBcbiAgICAgICAgICA6IGB2LXByLSR7dGhpcy52UFJ9YFxuICAgICAgICA6IG51bGwsXG4gICAgICB0aGlzLnZQQiB8fCB0aGlzLnZQQiA9PT0gMFxuICAgICAgICA/IHRoaXMuY29udmVydFRvU3RyaW5nKHRoaXMudlBCKS5zdGFydHNXaXRoKCctJylcbiAgICAgICAgICA/IGAtdi1wYiR7dGhpcy52UEJ9YFxuICAgICAgICAgIDogYHYtcGItJHt0aGlzLnZQQn1gXG4gICAgICAgIDogbnVsbCxcbiAgICAgIHRoaXMudlBMIHx8IHRoaXMudlBMID09PSAwXG4gICAgICAgID8gdGhpcy5jb252ZXJ0VG9TdHJpbmcodGhpcy52UEwpLnN0YXJ0c1dpdGgoJy0nKVxuICAgICAgICAgID8gYC12LXBsJHt0aGlzLnZQTH1gXG4gICAgICAgICAgOiBgdi1wbC0ke3RoaXMudlBMfWBcbiAgICAgICAgOiBudWxsLFxuICAgICAgdGhpcy52UFggfHwgdGhpcy52UFggPT09IDBcbiAgICAgICAgPyB0aGlzLmNvbnZlcnRUb1N0cmluZyh0aGlzLnZQWCkuc3RhcnRzV2l0aCgnLScpXG4gICAgICAgICAgPyBgLXYtcHgke3RoaXMudlBYfWBcbiAgICAgICAgICA6IGB2LXB4LSR7dGhpcy52UFh9YFxuICAgICAgICA6IG51bGwsXG4gICAgICB0aGlzLnZQWSB8fCB0aGlzLnZQWSA9PT0gMFxuICAgICAgICA/IHRoaXMuY29udmVydFRvU3RyaW5nKHRoaXMudlBZKS5zdGFydHNXaXRoKCctJylcbiAgICAgICAgICA/IGAtdi1weSR7dGhpcy52UFl9YFxuICAgICAgICAgIDogYHYtcHktJHt0aGlzLnZQWX1gXG4gICAgICAgIDogbnVsbCxcbiAgICAgIHRoaXMudlAgfHwgdGhpcy52UCA9PT0gMFxuICAgICAgICA/IHRoaXMuY29udmVydFRvU3RyaW5nKHRoaXMudlApLnN0YXJ0c1dpdGgoJy0nKVxuICAgICAgICAgID8gYC12LXAke3RoaXMudlB9YFxuICAgICAgICAgIDogYHYtcC0ke3RoaXMudlB9YFxuICAgICAgICA6IG51bGxcbiAgICBdLmpvaW4oJyAnKTtcbiAgfVxuXG4gIHByaXZhdGUgY29udmVydFRvU3RyaW5nKHZhbHVlOiBudW1iZXIgfCBTcGFjaW5nUHJvcGVydGllcyB8IE51bWJlcklucHV0KTogc3RyaW5nIHtcbiAgICByZXR1cm4gdmFsdWUgPyB2YWx1ZS50b1N0cmluZygpIDogJyc7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBwYWRkaW5nLWJsb2NrLXN0YXJ0IHByb3BlcnR5LiA8YnI+XG4gICAqIEFjY2VwdHM6IDAgLSA0OCBvciA8Y29kZT5TcGFjaW5nUHJvcGVydGllczwvY29kZT4uXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgdlBUKCk6IG51bWJlciB8IFNwYWNpbmdQcm9wZXJ0aWVzIHwgTnVtYmVySW5wdXQge1xuICAgIHJldHVybiB0aGlzLl92UFQ7XG4gIH1cbiAgc2V0IHZQVCh2YWx1ZSkge1xuICAgIHRoaXMuX3ZQVCA9IHZhbHVlO1xuICB9XG4gIF92UFQ6IG51bWJlciB8IFNwYWNpbmdQcm9wZXJ0aWVzIHwgTnVtYmVySW5wdXQ7XG5cbiAgLyoqXG4gICAqIFNldHMgcGFkZGluZy1pbmxpbmUtZW5kIHByb3BlcnR5LiA8YnI+XG4gICAqIEFjY2VwdHM6IDAgLSA0OCBvciA8Y29kZT5TcGFjaW5nUHJvcGVydGllczwvY29kZT4uXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgdlBSKCk6IG51bWJlciB8IFNwYWNpbmdQcm9wZXJ0aWVzIHwgTnVtYmVySW5wdXQge1xuICAgIHJldHVybiB0aGlzLl92UFI7XG4gIH1cbiAgc2V0IHZQUih2YWx1ZSkge1xuICAgIHRoaXMuX3ZQUiA9IHZhbHVlO1xuICB9XG4gIF92UFI6IG51bWJlciB8IFNwYWNpbmdQcm9wZXJ0aWVzIHwgTnVtYmVySW5wdXQ7XG5cbiAgLyoqXG4gICAqIFNldHMgcGFkZGluZy1ibG9jay1lbmQgcHJvcGVydHkuIDxicj5cbiAgICogQWNjZXB0czogMCAtIDQ4IG9yIDxjb2RlPlNwYWNpbmdQcm9wZXJ0aWVzPC9jb2RlPi5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCB2UEIoKTogbnVtYmVyIHwgU3BhY2luZ1Byb3BlcnRpZXMgfCBOdW1iZXJJbnB1dCB7XG4gICAgcmV0dXJuIHRoaXMuX3ZQQjtcbiAgfVxuICBzZXQgdlBCKHZhbHVlKSB7XG4gICAgdGhpcy5fdlBCID0gdmFsdWU7XG4gIH1cbiAgX3ZQQjogbnVtYmVyIHwgU3BhY2luZ1Byb3BlcnRpZXMgfCBOdW1iZXJJbnB1dDtcblxuICAvKipcbiAgICogU2V0cyBwYWRkaW5nLWlubGluZS1zdGFydCBwcm9wZXJ0eS4gPGJyPlxuICAgKiBBY2NlcHRzOiAwIC0gNDggb3IgPGNvZGU+U3BhY2luZ1Byb3BlcnRpZXM8L2NvZGU+LlxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IHZQTCgpOiBudW1iZXIgfCBTcGFjaW5nUHJvcGVydGllcyB8IE51bWJlcklucHV0IHtcbiAgICByZXR1cm4gdGhpcy5fdlBMO1xuICB9XG4gIHNldCB2UEwodmFsdWUpIHtcbiAgICB0aGlzLl92UEwgPSB2YWx1ZTtcbiAgfVxuICBfdlBMOiBudW1iZXIgfCBTcGFjaW5nUHJvcGVydGllcyB8IE51bWJlcklucHV0O1xuXG4gIC8qKlxuICAgKiBTZXRzIHBhZGRpbmctaW5saW5lIHByb3BlcnR5LiA8YnI+XG4gICAqIEFjY2VwdHM6IDAgLSA0OCBvciA8Y29kZT5TcGFjaW5nUHJvcGVydGllczwvY29kZT4uXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgdlBYKCk6IG51bWJlciB8IFNwYWNpbmdQcm9wZXJ0aWVzIHwgTnVtYmVySW5wdXQge1xuICAgIHJldHVybiB0aGlzLl92UFg7XG4gIH1cbiAgc2V0IHZQWCh2YWx1ZSkge1xuICAgIHRoaXMuX3ZQWCA9IHZhbHVlO1xuICB9XG4gIF92UFg6IG51bWJlciB8IFNwYWNpbmdQcm9wZXJ0aWVzIHwgTnVtYmVySW5wdXQ7XG5cbiAgLyoqXG4gICAqIFNldHMgcGFkZGluZy1ibG9jayBwcm9wZXJ0eS4gPGJyPlxuICAgKiBBY2NlcHRzOiAwIC0gNDggb3IgPGNvZGU+U3BhY2luZ1Byb3BlcnRpZXM8L2NvZGU+LlxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IHZQWSgpOiBudW1iZXIgfCBTcGFjaW5nUHJvcGVydGllcyB8IE51bWJlcklucHV0IHtcbiAgICByZXR1cm4gdGhpcy5fdlBZO1xuICB9XG4gIHNldCB2UFkodmFsdWUpIHtcbiAgICB0aGlzLl92UFkgPSB2YWx1ZTtcbiAgfVxuICBfdlBZOiBudW1iZXIgfCBTcGFjaW5nUHJvcGVydGllcyB8IE51bWJlcklucHV0O1xuXG4gIC8qKlxuICAgKiBTZXRzIHBhZGRpbmcgcHJvcGVydHkuIDxicj5cbiAgICogQWNjZXB0czogMCAtIDQ4IG9yIDxjb2RlPlNwYWNpbmdQcm9wZXJ0aWVzPC9jb2RlPi5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCB2UCgpOiBudW1iZXIgfCBTcGFjaW5nUHJvcGVydGllcyB8IE51bWJlcklucHV0IHtcbiAgICByZXR1cm4gdGhpcy5fdlA7XG4gIH1cbiAgc2V0IHZQKHZhbHVlKSB7XG4gICAgdGhpcy5fdlAgPSB2YWx1ZTtcbiAgfVxuICBfdlA6IG51bWJlciB8IFNwYWNpbmdQcm9wZXJ0aWVzIHwgTnVtYmVySW5wdXQ7XG59XG4iXX0=