mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2024-11-15 07:33:04 +01:00
3d69a0b88c
* apply livewire local patch * assets build * remove manual chunking * assets build
5 lines
18 KiB
JavaScript
Vendored
5 lines
18 KiB
JavaScript
Vendored
var H=t=>{throw TypeError(t)},z=(t,e,s)=>e.has(t)||H("Cannot "+s),G=(t,e,s)=>e.has(t)?H("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,s),J=(t,e,s)=>(z(t,e,"access private method"),s);const j={mask:/^.*$/,preprocessors:[],postprocessors:[],plugins:[],overwriteMode:"shift"};class Q{constructor(){this.now=null,this.past=[],this.future=[]}undo(){const e=this.past.pop();e&&this.now&&(this.future.push(this.now),this.updateElement(e,"historyUndo"))}redo(){const e=this.future.pop();e&&this.now&&(this.past.push(this.now),this.updateElement(e,"historyRedo"))}updateHistory(e){if(!this.now){this.now=e;return}const s=this.now.value!==e.value,n=this.now.selection.some((a,i)=>a!==e.selection[i]);!s&&!n||(s&&(this.past.push(this.now),this.future=[]),this.now=e)}updateElement(e,s){this.now=e,this.updateElementState(e,{inputType:s,data:null})}}function _(t,...e){return e.every(({value:s})=>s===t.value)}function ee(t,...e){return e.every(({value:s,selection:n})=>s===t.value&&n[0]===t.selection[0]&&n[1]===t.selection[1])}function te({value:t,selection:e},s,n){const[a,i]=e,r=typeof n=="function"?n({value:t,selection:e}):n;return{value:t,selection:r==="replace"?[a,a+s.length]:[a,i]}}function A(t){return typeof t=="string"}function C(t,e,s,n){let a="";for(let i=e.length;i<t.length;i++){const r=t[i],l=(n==null?void 0:n.value[i])===r;if(!A(r)||r===s&&!l)return a;a+=r}return a}function N(t,e){return Array.isArray(e)?t.length===e.length&&Array.from(t).every((s,n)=>{const a=e[n];return A(a)?s===a:s.match(a)}):e.test(t)}function ne(t,e,s){let n=null,a=null;const i=Array.from(t.value).reduce((l,o,c)=>{const u=C(e,l,o,s),d=l+u,h=e[d.length];return A(h)?d+h:o.match(h)?(n===null&&c>=t.selection[0]&&(n=d.length),a===null&&c>=t.selection[1]&&(a=d.length),d+o):d},""),r=C(e,i,"",s);return{value:N(i+r,e)?i+r:i,selection:[n??i.length,a??i.length]}}function se({value:t,selection:e},s){const[n,a]=e;let i=n,r=a;return{value:Array.from(t).reduce((l,o,c)=>{const u=l+o;return n===c&&(i=l.length),a===c&&(r=l.length),u.match(s)?u:l},""),selection:[i,r]}}function T(t,e,s=null){if(N(t.value,e))return t;const{value:n,selection:a}=Array.isArray(e)?ne(t,e,s):se(t,e);return{selection:a,value:Array.isArray(e)?n.slice(0,e.length):n}}function R(t,e){if(!Array.isArray(e))return t;const[s,n]=t.selection,a=[],i=Array.from(t.value).reduce((r,l,o)=>{const c=e[o];return o===s&&a.push(r.length),o===n&&a.push(r.length),A(c)&&c===l?r:r+l},"");return a.length<2&&a.push(...new Array(2-a.length).fill(i.length)),{value:i,selection:[a[0],a[1]]}}class k{constructor(e,s){this.initialElementState=e,this.maskOptions=s,this.value="",this.selection=[0,0];const{value:n,selection:a}=T(this.initialElementState,this.getMaskExpression(this.initialElementState));this.value=n,this.selection=a}addCharacters([e,s],n){const{value:a}=this,i=this.getMaskExpression({value:a.slice(0,e)+n+a.slice(s),selection:[e+n.length,e+n.length]}),r={value:a,selection:[e,s]},l=R(r,i),[o,c]=te(l,n,this.maskOptions.overwriteMode).selection,u=l.value.slice(0,o)+n,d=u.length,h=T({value:u+l.value.slice(c),selection:[d,d]},i,r);if(a.slice(0,o)===T({value:u,selection:[d,d]},i,r).value||ee(this,h))throw new Error("Invalid mask value");this.value=h.value,this.selection=h.selection}deleteCharacters([e,s]){if(e===s||!s)return;const{value:n}=this,a=this.getMaskExpression({value:n.slice(0,e)+n.slice(s),selection:[e,e]}),i={value:n,selection:[e,s]},r=R(i,a),[l,o]=r.selection,c=r.value.slice(0,l)+r.value.slice(o),u=T({value:c,selection:[l,l]},a,i);this.value=u.value,this.selection=u.selection}getMaskExpression(e){const{mask:s}=this.maskOptions;return typeof s=="function"?s(e):s}}class ae{constructor(e){this.element=e,this.listeners=[]}listen(e,s,n){const a=s;this.element.addEventListener(e,a,n),this.listeners.push(()=>this.element.removeEventListener(e,a))}destroy(){this.listeners.forEach(e=>e())}}const g={CTRL:1,ALT:2,SHIFT:4,META:8},b={Y:89,Z:90};function w(t,e,s){return t.ctrlKey===!!(e&g.CTRL)&&t.altKey===!!(e&g.ALT)&&t.shiftKey===!!(e&g.SHIFT)&&t.metaKey===!!(e&g.META)&&t.keyCode===s}function ie(t){return w(t,g.CTRL,b.Y)||w(t,g.CTRL|g.SHIFT,b.Z)||w(t,g.META|g.SHIFT,b.Z)}function re(t){return w(t,g.CTRL,b.Z)||w(t,g.META,b.Z)}function le({value:t,selection:e},s){const[n,a]=e;if(n!==a)return[n,a];const i=s?t.slice(n).indexOf(`
|
||
`)+1||t.length:t.slice(0,a).lastIndexOf(`
|
||
`)+1;return[s?n:i,s?i:a]}function oe({value:t,selection:e},s){const[n,a]=e;return n!==a?[n,a]:(s?[n,a+1]:[n-1,a]).map(i=>Math.min(Math.max(i,0),t.length))}const ce=/\s+$/g,ue=/^\s+/g,F=/\s/;function de({value:t,selection:e},s){const[n,a]=e;if(n!==a)return[n,a];if(s){const o=t.slice(n),[c]=o.match(ue)||[""],u=o.trimStart().search(F);return[n,u!==-1?n+c.length+u:t.length]}const i=t.slice(0,a),[r]=i.match(ce)||[""],l=i.trimEnd().split("").reverse().findIndex(o=>o.match(F));return[l!==-1?a-r.length-l:0,a]}function M(t=[]){return(e,...s)=>t.reduce((n,a)=>Object.assign(Object.assign({},n),a(n,...s)),e)}function he(t,e){const s=Object.assign(Object.assign({},j),e),n=M(s.preprocessors),a=M(s.postprocessors),i=typeof t=="string"?{value:t,selection:[0,0]}:t,{elementState:r}=n({elementState:i,data:""},"validation"),l=new k(r,s),{value:o,selection:c}=a(l,i);return typeof t=="string"?o:{value:o,selection:c}}class $ extends Q{constructor(e,s){super(),this.element=e,this.maskitoOptions=s,this.isTextArea=this.element.nodeName==="TEXTAREA",this.eventListener=new ae(this.element),this.options=Object.assign(Object.assign({},j),this.maskitoOptions),this.preprocessor=M(this.options.preprocessors),this.postprocessor=M(this.options.postprocessors),this.teardowns=this.options.plugins.map(n=>n(this.element,this.options)),this.updateHistory(this.elementState),this.eventListener.listen("keydown",n=>{if(ie(n))return n.preventDefault(),this.redo();if(re(n))return n.preventDefault(),this.undo()}),this.eventListener.listen("beforeinput",n=>{var a;const i=n.inputType.includes("Forward");switch(this.updateHistory(this.elementState),n.inputType){case"historyUndo":return n.preventDefault(),this.undo();case"historyRedo":return n.preventDefault(),this.redo();case"deleteByCut":case"deleteContentBackward":case"deleteContentForward":return this.handleDelete({event:n,isForward:i,selection:oe(this.elementState,i)});case"deleteWordForward":case"deleteWordBackward":return this.handleDelete({event:n,isForward:i,selection:de(this.elementState,i),force:!0});case"deleteSoftLineBackward":case"deleteSoftLineForward":case"deleteHardLineBackward":case"deleteHardLineForward":return this.handleDelete({event:n,isForward:i,selection:le(this.elementState,i),force:!0});case"insertCompositionText":return;case"insertReplacementText":return;case"insertLineBreak":case"insertParagraph":return this.handleEnter(n);case"insertFromPaste":case"insertText":case"insertFromDrop":default:return this.handleInsert(n,n.data||((a=n.dataTransfer)===null||a===void 0?void 0:a.getData("text/plain"))||"")}}),this.eventListener.listen("input",({inputType:n})=>{n!=="insertCompositionText"&&(this.ensureValueFitsMask(),this.updateHistory(this.elementState))}),this.eventListener.listen("compositionend",()=>{this.ensureValueFitsMask(),this.updateHistory(this.elementState)})}get elementState(){const{value:e,selectionStart:s,selectionEnd:n}=this.element;return{value:e,selection:[s||0,n||0]}}get maxLength(){const{maxLength:e}=this.element;return e===-1?1/0:e}destroy(){this.eventListener.destroy(),this.teardowns.forEach(e=>e==null?void 0:e())}updateElementState({value:e,selection:s},n={inputType:"insertText",data:null}){const a=this.elementState.value;this.updateValue(e),this.updateSelectionRange(s),a!==e&&this.dispatchInputEvent(n)}updateSelectionRange([e,s]){var n;const{element:a}=this;a.matches(":focus")&&(a.selectionStart!==e||a.selectionEnd!==s)&&((n=a.setSelectionRange)===null||n===void 0||n.call(a,e,s))}updateValue(e){this.element.value=e}ensureValueFitsMask(){this.updateElementState(he(this.elementState,this.options))}dispatchInputEvent(e={inputType:"insertText",data:null}){globalThis.InputEvent&&this.element.dispatchEvent(new InputEvent("input",Object.assign(Object.assign({},e),{bubbles:!0,cancelable:!1})))}handleDelete({event:e,selection:s,isForward:n,force:a=!1}){const i={value:this.elementState.value,selection:s},[r,l]=i.selection,{elementState:o}=this.preprocessor({elementState:i,data:""},n?"deleteForward":"deleteBackward"),c=new k(o,this.options),[u,d]=o.selection;c.deleteCharacters([u,d]);const h=this.postprocessor(c,i);if(!(i.value.slice(0,r)+i.value.slice(l)===h.value&&!a&&!this.element.isContentEditable)){if(e.preventDefault(),_(i,o,c,h))return this.updateSelectionRange(n?[d,d]:[u,u]);this.updateElementState(h,{inputType:e.inputType,data:null}),this.updateHistory(h)}}handleInsert(e,s){const n=this.elementState,{elementState:a,data:i=s}=this.preprocessor({data:s,elementState:n},"insert"),r=new k(a,this.options);try{r.addCharacters(a.selection,i)}catch{return e.preventDefault()}const[l,o]=a.selection,c=n.value.slice(0,l)+s+n.value.slice(o),u=this.postprocessor(r,n);if(u.value.length>this.maxLength)return e.preventDefault();(c!==u.value||this.element.isContentEditable)&&(e.preventDefault(),this.updateElementState(u,{data:s,inputType:e.inputType}),this.updateHistory(u))}handleEnter(e){(this.isTextArea||this.element.isContentEditable)&&this.handleInsert(e,`
|
||
`)}}function pe(t,e,s){const n=Math.min(Number(s),Math.max(Number(e),Number(t)));return t instanceof Date?new Date(n):n}function me(t){return t.replaceAll(/\W/g,"").length}const B=t=>{var e,s,n;return{day:((e=t.match(/d/g))===null||e===void 0?void 0:e.length)||0,month:((s=t.match(/m/g))===null||s===void 0?void 0:s.length)||0,year:((n=t.match(/y/g))===null||n===void 0?void 0:n.length)||0}};function ve(t){return{day:String(t.getDate()).padStart(2,"0"),month:String(t.getMonth()+1).padStart(2,"0"),year:String(t.getFullYear()).padStart(4,"0"),hours:String(t.getHours()).padStart(2,"0"),minutes:String(t.getMinutes()).padStart(2,"0"),seconds:String(t.getSeconds()).padStart(2,"0"),milliseconds:String(t.getMilliseconds()).padStart(3,"0")}}function ge(t,e){return t.length<e.length?!1:t.split(/\D/).every(s=>!s.match(/^0+$/))}function W(t,e,s){const n=me(e);return t.replace(s,"").match(new RegExp(`(\\D*\\d[^\\d\\s]*){1,${n}}`,"g"))||[]}function L(t,e){const s=e.replaceAll(/[^dmy]/g,""),n=t.replaceAll(/\D+/g,""),a={day:n.slice(s.indexOf("d"),s.lastIndexOf("d")+1),month:n.slice(s.indexOf("m"),s.lastIndexOf("m")+1),year:n.slice(s.indexOf("y"),s.lastIndexOf("y")+1)};return Object.fromEntries(Object.entries(a).filter(([i,r])=>!!r).sort(([i],[r])=>e.toLowerCase().indexOf(i[0])>e.toLowerCase().indexOf(r[0])?1:-1))}function fe(t,e){var s,n,a,i,r,l,o;const c=((s=t.year)===null||s===void 0?void 0:s.length)===2?`20${t.year}`:t.year,u=new Date(Number(c??"0"),Number((n=t.month)!==null&&n!==void 0?n:"1")-1,Number((a=t.day)!==null&&a!==void 0?a:"1"),Number((i=void 0)!==null&&i!==void 0?i:"0"),Number((r=void 0)!==null&&r!==void 0?r:"0"),Number((l=void 0)!==null&&l!==void 0?l:"0"),Number((o=void 0)!==null&&o!==void 0?o:"0"));return u.setFullYear(Number(c??"0")),u}const V=", ";function E({day:t,month:e,year:s,hours:n,minutes:a,seconds:i,milliseconds:r},{dateMode:l,dateTimeSeparator:o=V,timeMode:c}){var u;const d=((u=l.match(/y/g))===null||u===void 0?void 0:u.length)===2?s==null?void 0:s.slice(-2):s;return(l+(c?o+c:"")).replaceAll(/d+/g,t??"").replaceAll(/m+/g,e??"").replaceAll(/y+/g,d??"").replaceAll(/H+/g,n??"").replaceAll("MSS",r??"").replaceAll(/M+/g,a??"").replaceAll(/S+/g,i??"").replaceAll(/^\D+/g,"").replaceAll(/\D+$/g,"")}const Z={day:31,month:12,year:9999},Se=new Date("0001-01-01"),ye=new Date("9999-12-31"),be=[":","."];function we({dateString:t,dateModeTemplate:e,dateSegmentsSeparator:s,offset:n,selection:[a,i]}){const r=L(t,e),l=Object.entries(r),o={};for(const[d,h]of l){const m=E(o,{dateMode:e}),y=Z[d],f=m.length&&s.length,v=n+m.length+f+B(e)[d],S=v>=a&&v===i;if(S&&Number(h)>Number(y))return{validatedDateString:"",updatedSelection:[a,i]};if(S&&Number(h)<1)return{validatedDateString:"",updatedSelection:[a,i]};o[d]=h}const c=E(o,{dateMode:e}),u=c.length-t.length;return{validatedDateString:c,updatedSelection:[a+u,i+u]}}const Y=/[\\^$.*+?()[\]{}|]/g,Ee=new RegExp(Y.source);function q(t){return t&&Ee.test(t)?t.replaceAll(Y,"\\$&"):t}function D(t,e,s=0){return Number(t.padEnd(e.length,"0"))<=Number(e)?{validatedSegmentValue:t,prefixedZeroesCount:s}:t.endsWith("0")?D(`0${t.slice(0,e.length-1)}`,e,s+1):D(`${t.slice(0,e.length-1)}0`,e,s)}function I(t){return t.replaceAll(/[0-9]/g,e=>String.fromCharCode(e.charCodeAt(0)-65248))}function xe({dateModeTemplate:t,dateSegmentSeparator:e,splitFn:s,uniteFn:n}){return({value:a,selection:i})=>{var r;const[l,o]=i,{dateStrings:c,restPart:u=""}=s(a),d=[];let h=0;c.forEach(y=>{const f=L(y,t),v=Object.entries(f).reduce((S,[x,P])=>{const{validatedSegmentValue:U,prefixedZeroesCount:X}=D(P,`${Z[x]}`);return h+=X,Object.assign(Object.assign({},S),{[x]:U})},{});d.push(E(v,{dateMode:t}))});const m=n(d,a)+(!((r=c[c.length-1])===null||r===void 0)&&r.endsWith(e)?e:"")+u;return h&&m.slice(o+h,o+h+e.length)===e&&(h+=e.length),{selection:[l+h,o+h],value:m}}}function Te(){return({elementState:t,data:e})=>{const{value:s,selection:n}=t;return{elementState:{selection:n,value:I(s)},data:I(e)}}}function Me(t,e){const s=B(e);return Object.fromEntries(Object.entries(t).map(([n,a])=>{const i=s[n];return[n,a.length===i&&a.match(/^0+$/)?"1".padStart(i,"0"):a]}))}function Ae({dateModeTemplate:t,min:e=Se,max:s=ye,rangeSeparator:n="",dateSegmentSeparator:a="."}){return({value:i,selection:r})=>{const l=n&&i.endsWith(n),o=W(i,t,n);let c="";for(const u of o){c+=c?n:"";const d=L(u,t);if(!ge(u,t)){const y=Me(d,t),f=E(y,{dateMode:t}),v=u.endsWith(a)?a:"";c+=f+v;continue}const h=fe(d),m=pe(h,e,s);c+=E(ve(m),{dateMode:t})}return{selection:r,value:c+(l?n:"")}}}function $e({dateModeTemplate:t,dateSegmentsSeparator:e,rangeSeparator:s="",dateTimeSeparator:n=V}){return({elementState:a,data:i})=>{const r=s?new RegExp(`${s}|-`):n,l=i.split(r),o=i.includes(n)?[l[0]]:l;if(o.every(c=>c.trim().split(/\D/).filter(Boolean).length===t.split(e).length)){const c=o.map(u=>ke(u,t,e)).join(s);return{elementState:a,data:`${c}${i.includes(n)&&n+l[1]||""}`}}return{elementState:a,data:i}}}function ke(t,e,s){const n=t.split(/\D/).filter(Boolean),a=e.split(s);return n.map((i,r)=>r===a.length-1?i:i.padStart(a[r].length,"0")).join(s)}function De({dateModeTemplate:t,dateSegmentsSeparator:e,rangeSeparator:s=""}){return({elementState:n,data:a})=>{const{value:i,selection:r}=n;if(a===e)return{elementState:n,data:r[0]===i.length?a:""};const l=a.replaceAll(new RegExp(`[^\\d${q(e)}${s}]`,"g"),"");if(!l)return{elementState:n,data:""};const[o,c]=r;let u=c+a.length;const d=i.slice(0,o)+l+i.slice(u),h=W(d,t,s);let m="";const y=!!s&&d.includes(s);for(const v of h){const{validatedDateString:S,updatedSelection:x}=we({dateString:v,dateModeTemplate:t,dateSegmentsSeparator:e,offset:m.length,selection:[o,u]});if(v&&!S)return{elementState:n,data:""};u=x[1],m+=y&&!m?S+s:S}const f=m.slice(o,u);return{elementState:{selection:r,value:m.slice(0,o)+f.split(e).map(v=>"0".repeat(v.length)).join(e)+m.slice(u)},data:f}}}function Oe(){return({elementState:t},e)=>{const{value:s,selection:n}=t;if(!s||je(s,n))return{elementState:t};const[a,i]=n,r=s.slice(a,i).replaceAll(/\d/g,"0"),l=s.slice(0,a)+r+s.slice(i);return e==="validation"||e==="insert"&&a===i?{elementState:{selection:n,value:l}}:{elementState:{selection:e==="deleteBackward"||e==="insert"?[a,a]:[i,i],value:l}}}}function je(t,[e,s]){return s===t.length}function Le({mode:t,separator:e=".",max:s,min:n}){const a=t.split("/").join(e);return Object.assign(Object.assign({},j),{mask:Array.from(a).map(i=>e.includes(i)?i:/\d/),overwriteMode:"replace",preprocessors:[Te(),Oe(),$e({dateModeTemplate:a,dateSegmentsSeparator:e}),De({dateModeTemplate:a,dateSegmentsSeparator:e})],postprocessors:[xe({dateModeTemplate:a,dateSegmentSeparator:e,splitFn:i=>({dateStrings:[i]}),uniteFn:([i])=>i}),Ae({min:n,max:s,dateModeTemplate:a,dateSegmentSeparator:e})]})}new RegExp(`[${be.map(q).join("")}]$`);const Ce=/^(?:\d{4}[ -]?){0,3}\d{0,4}$/,p={visa:{final:/^4(?:\d{3}[- ]?){3}\d{3,4}$/,start:/^4/,length:/^4\d{0,15}$/},mastercard:{final:/^5[1-5]\d{3}[- ]?\d{4}[- ]?\d{4}[- ]?\d{4}$/,start:/^5[1-5]/,length:/^5[1-5]\d{0,15}$/},amex:{final:/^3[47]\d{2}[- ]?\d{6}[- ]?\d{5}$/,start:/^3[47]/,length:/^3[47]\d{0,15}$/},discover:{final:/^(6011|65|64[4-9])\d{4}[- ]?\d{4}[- ]?\d{4}$/,start:/^(6011|65|64[4-9])/,length:/^(6011|65|64[4-9])\d{0,15}$/},diners:{final:/^(30[0-5]|36|38|39)\d{4}[- ]?\d{4}[- ]?\d{4}$/,start:/^(30[0-5]|36|38|39)/,length:/^(30[0-5]|36|38|39)\d{0,14}$/},jcb:{final:/^(2131|1800|35[0-9]{3})\d{4}[- ]?\d{4}[- ]?\d{4}$/,start:/^(2131|1800|35[0-9]{3})/,length:/^(2131|1800|35[0-9]{3})\d{0,15}$/}};var O,K;class Re{constructor(e){G(this,O),this.options=e}mount(){return this.number=this.options.fields.card.number instanceof HTMLInputElement?this.options.fields.card.number:document.querySelector(this.options.fields.card.number),this.date=this.options.fields.card.date instanceof HTMLInputElement?this.options.fields.card.date:document.querySelector(this.options.fields.card.date),this.cvv=this.options.fields.card.cvv instanceof HTMLInputElement?this.options.fields.card.cvv:document.querySelector(this.options.fields.card.cvv),J(this,O,K).call(this),this}check(){const e=p.visa.final.test(this.number.value)||p.mastercard.final.test(this.number.value)||p.amex.final.test(this.number.value)||p.discover.final.test(this.number.value)||p.diners.final.test(this.number.value)||p.jcb.final.test(this.number.value),s=new RegExp("^(0[1-9]|1[0-2])/(?:\\d{2})$").test(this.date.value),n=new RegExp("^\\d{3}$").test(this.cvv.value);return{valid:e&&s&&n,number:{valid:e,value:this.number.value},date:{valid:s,value:this.date.value},cvv:{valid:n,value:this.cvv.value}}}type(){return p.visa.start.test(this.number.value)?"visa":p.mastercard.start.test(this.number.value)?"mastercard":p.amex.start.test(this.number.value)?"amex":p.discover.start.test(this.number.value)?"discover":p.diners.start.test(this.number.value)?"diners":p.jcb.start.test(this.number.value)?"jcb":"unknown"}value(e){if(e==="number")return this.number.value;if(e==="date")return this.date.value;if(e==="year"){const[,s]=this.date.value.split("/");return s}if(e==="month"){const[s]=this.date.value.split("/");return s}return e==="cvv"?this.cvv.value:null}}O=new WeakSet,K=function(){new $(this.number,{mask:t=>p.visa.start.test(t.value)?new RegExp(p.visa.length):p.mastercard.start.test(t.value)?new RegExp(p.mastercard.length):p.amex.start.test(t.value)?new RegExp(p.amex.length):p.discover.start.test(t.value)?new RegExp(p.discover.length):p.diners.start.test(t.value)?new RegExp(p.diners.length):p.jcb.start.test(t.value)?new RegExp(p.jcb.length):new RegExp(Ce)}),new $(this.date,Le({mode:"mm/yy",separator:"/"})),new $(this.cvv,{mask:[/\d/,/\d/,/\d/]})};export{Re as $};
|