merchi_product_form
Version:
A React component for Merchi product forms
184 lines • 19.1 kB
JavaScript
export var currencyMap = {
ALL: 'L',
AFN: '؋',
ARS: '$',
AWG: 'ƒ',
AUD: '$',
AZN: '₼',
BSD: '$',
BBD: '$',
BYR: 'p.',
BZD: 'BZ$',
BMD: '$',
BOB: 'Bs.',
BAM: 'KM',
BWP: 'P',
BGN: 'лв',
BRL: 'R$',
BND: '$',
KHR: '៛',
CAD: '$',
KYD: '$',
CLP: '$',
CNY: '¥',
COP: '$',
CRC: '₡',
HRK: 'kn',
CUP: '₱',
CZK: 'Kč',
DKK: 'kr',
DOP: 'RD$',
XCD: '$',
EGP: '£',
SVC: '$',
EEK: 'kr',
EUR: '€',
FKP: '£',
FJD: '$',
GHC: '₵',
GIP: '£',
GTQ: 'Q',
GGP: '£',
GYD: '$',
HNL: 'L',
HKD: '$',
HUF: 'Ft',
ISK: 'kr',
INR: '₹',
IDR: 'Rp',
IRR: '﷼',
IMP: '£',
ILS: '₪',
JMD: '`J$',
JPY: '¥',
JEP: '£',
KES: 'KSh',
KZT: 'лв',
KPW: '₩',
KRW: '₩',
KGS: 'лв',
LAK: '₭',
LVL: 'Ls',
LBP: '£',
LRD: '$',
LTL: 'Lt',
MKD: 'ден',
MYR: 'RM',
MUR: '₨',
MXN: '$',
MNT: '₮',
MZN: 'MT',
NAD: '$',
NPR: '₨',
ANG: 'ƒ',
NZD: '$',
NIO: 'C$',
NGN: '₦',
NOK: 'kr',
OMR: '﷼',
PKR: '₨',
PAB: 'B/.',
PYG: 'Gs',
PEN: 'S/.',
PHP: '₱',
PLN: 'zł',
QAR: '﷼',
RON: 'lei',
RUB: '₽',
RMB: '¥',
SHP: '£',
SAR: '﷼',
RSD: 'Дин.',
SCR: '₨',
SGD: '$',
SBD: '$',
SOS: 'S',
ZAR: 'R',
LKR: '₨',
SEK: 'kr',
CHF: 'CHF',
SRD: '$',
SYP: '£',
TZS: 'TSh',
TWD: 'NT$',
THB: '฿',
TTD: 'TT$',
TRY: '₺',
TRL: '₤',
TVD: '$',
UGX: 'USh',
UAH: '₴',
GBP: '£',
USD: '$',
UYU: '$U',
UZS: 'лв',
VEF: 'Bs',
VND: '₫',
YER: '﷼',
ZWD: 'Z$'
};
export function formatCurrency(amount) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var _options$currency = options.currency,
currency = _options$currency === void 0 ? 'AUD' : _options$currency,
_options$showCodeIfNo = options.showCodeIfNoSymbol,
showCodeIfNoSymbol = _options$showCodeIfNo === void 0 ? true : _options$showCodeIfNo,
_options$symbolAfterA = options.symbolAfterAmount,
symbolAfterAmount = _options$symbolAfterA === void 0 ? false : _options$symbolAfterA,
_options$financialNeg = options.financialNegative,
financialNegative = _options$financialNeg === void 0 ? false : _options$financialNeg,
_options$codeAfterSym = options.codeAfterSymbol,
codeAfterSymbol = _options$codeAfterSym === void 0 ? false : _options$codeAfterSym,
_options$codeBeforeSy = options.codeBeforeSymbol,
codeBeforeSymbol = _options$codeBeforeSy === void 0 ? false : _options$codeBeforeSy,
_options$spaceBetween = options.spaceBetweenSymbol,
spaceBetweenSymbol = _options$spaceBetween === void 0 ? false : _options$spaceBetween,
_options$decimalPlace = options.decimalPlaces,
decimalPlaces = _options$decimalPlace === void 0 ? 2 : _options$decimalPlace,
_options$decimalSeper = options.decimalSeperator,
decimalSeperator = _options$decimalSeper === void 0 ? '.' : _options$decimalSeper,
_options$codeAfterAmo = options.codeAfterAmount,
codeAfterAmount = _options$codeAfterAmo === void 0 ? false : _options$codeAfterAmo;
var symbol = '';
var result = '';
var negative = amount < 0;
if (negative) amount = Math.abs(amount);
if (Object.prototype.hasOwnProperty.call(currencyMap, currency)) {
symbol = currencyMap[currency];
if (codeAfterSymbol) symbol += "(".concat(currency, ")");
if (codeBeforeSymbol) symbol = "(".concat(currency, ")").concat(symbol);
} else if (showCodeIfNoSymbol) {
symbol = currency;
}
amount = Number(amount.toFixed(decimalPlaces)).toFixed(decimalPlaces).replace('.', decimalSeperator);
if (symbolAfterAmount) {
result = amount + (spaceBetweenSymbol ? ' ' : '') + symbol;
} else {
result = symbol + (spaceBetweenSymbol ? ' ' : '') + amount;
}
if (negative) {
result = financialNegative ? "(".concat(result, ")") : "-".concat(result);
}
if (codeAfterAmount) {
result += " (".concat(currency, ")");
}
return result;
}
function taxPercent(tax) {
return tax ? "(".concat(tax.taxPercent, "%)") : '';
}
function includesTax(tax) {
return tax && tax.taxPercent > 0 ? " inc ".concat(tax.taxName, " ").concat(taxPercent(tax)) : '';
}
export function currencyTotalCostShowIncTax(job) {
var currency = job.currency,
taxType = job.taxType,
totalCost = job.totalCost;
var currencyOptions = {
currency: currency,
showCodeIfNoSymbol: false
};
var withCurrency = formatCurrency(totalCost ? totalCost : 0, currencyOptions);
return "".concat(currency, " ").concat(withCurrency, " ").concat(includesTax(taxType));
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjdXJyZW5jeU1hcCIsIkFMTCIsIkFGTiIsIkFSUyIsIkFXRyIsIkFVRCIsIkFaTiIsIkJTRCIsIkJCRCIsIkJZUiIsIkJaRCIsIkJNRCIsIkJPQiIsIkJBTSIsIkJXUCIsIkJHTiIsIkJSTCIsIkJORCIsIktIUiIsIkNBRCIsIktZRCIsIkNMUCIsIkNOWSIsIkNPUCIsIkNSQyIsIkhSSyIsIkNVUCIsIkNaSyIsIkRLSyIsIkRPUCIsIlhDRCIsIkVHUCIsIlNWQyIsIkVFSyIsIkVVUiIsIkZLUCIsIkZKRCIsIkdIQyIsIkdJUCIsIkdUUSIsIkdHUCIsIkdZRCIsIkhOTCIsIkhLRCIsIkhVRiIsIklTSyIsIklOUiIsIklEUiIsIklSUiIsIklNUCIsIklMUyIsIkpNRCIsIkpQWSIsIkpFUCIsIktFUyIsIktaVCIsIktQVyIsIktSVyIsIktHUyIsIkxBSyIsIkxWTCIsIkxCUCIsIkxSRCIsIkxUTCIsIk1LRCIsIk1ZUiIsIk1VUiIsIk1YTiIsIk1OVCIsIk1aTiIsIk5BRCIsIk5QUiIsIkFORyIsIk5aRCIsIk5JTyIsIk5HTiIsIk5PSyIsIk9NUiIsIlBLUiIsIlBBQiIsIlBZRyIsIlBFTiIsIlBIUCIsIlBMTiIsIlFBUiIsIlJPTiIsIlJVQiIsIlJNQiIsIlNIUCIsIlNBUiIsIlJTRCIsIlNDUiIsIlNHRCIsIlNCRCIsIlNPUyIsIlpBUiIsIkxLUiIsIlNFSyIsIkNIRiIsIlNSRCIsIlNZUCIsIlRaUyIsIlRXRCIsIlRIQiIsIlRURCIsIlRSWSIsIlRSTCIsIlRWRCIsIlVHWCIsIlVBSCIsIkdCUCIsIlVTRCIsIlVZVSIsIlVaUyIsIlZFRiIsIlZORCIsIllFUiIsIlpXRCIsImZvcm1hdEN1cnJlbmN5IiwiYW1vdW50Iiwib3B0aW9ucyIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsIl9vcHRpb25zJGN1cnJlbmN5IiwiY3VycmVuY3kiLCJfb3B0aW9ucyRzaG93Q29kZUlmTm8iLCJzaG93Q29kZUlmTm9TeW1ib2wiLCJfb3B0aW9ucyRzeW1ib2xBZnRlckEiLCJzeW1ib2xBZnRlckFtb3VudCIsIl9vcHRpb25zJGZpbmFuY2lhbE5lZyIsImZpbmFuY2lhbE5lZ2F0aXZlIiwiX29wdGlvbnMkY29kZUFmdGVyU3ltIiwiY29kZUFmdGVyU3ltYm9sIiwiX29wdGlvbnMkY29kZUJlZm9yZVN5IiwiY29kZUJlZm9yZVN5bWJvbCIsIl9vcHRpb25zJHNwYWNlQmV0d2VlbiIsInNwYWNlQmV0d2VlblN5bWJvbCIsIl9vcHRpb25zJGRlY2ltYWxQbGFjZSIsImRlY2ltYWxQbGFjZXMiLCJfb3B0aW9ucyRkZWNpbWFsU2VwZXIiLCJkZWNpbWFsU2VwZXJhdG9yIiwiX29wdGlvbnMkY29kZUFmdGVyQW1vIiwiY29kZUFmdGVyQW1vdW50Iiwic3ltYm9sIiwicmVzdWx0IiwibmVnYXRpdmUiLCJNYXRoIiwiYWJzIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiY29uY2F0IiwiTnVtYmVyIiwidG9GaXhlZCIsInJlcGxhY2UiLCJ0YXhQZXJjZW50IiwidGF4IiwiaW5jbHVkZXNUYXgiLCJ0YXhOYW1lIiwiY3VycmVuY3lUb3RhbENvc3RTaG93SW5jVGF4Iiwiam9iIiwidGF4VHlwZSIsInRvdGFsQ29zdCIsImN1cnJlbmN5T3B0aW9ucyIsIndpdGhDdXJyZW5jeSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL2N1cnJlbmN5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBjdXJyZW5jeU1hcDogYW55ID1cbiAge0FMTDogJ0wnLFxuICAgIEFGTjogJ9iLJyxcbiAgICBBUlM6ICckJyxcbiAgICBBV0c6ICfGkicsXG4gICAgQVVEOiAnJCcsXG4gICAgQVpOOiAn4oK8JyxcbiAgICBCU0Q6ICckJyxcbiAgICBCQkQ6ICckJyxcbiAgICBCWVI6ICdwLicsXG4gICAgQlpEOiAnQlokJyxcbiAgICBCTUQ6ICckJyxcbiAgICBCT0I6ICdCcy4nLFxuICAgIEJBTTogJ0tNJyxcbiAgICBCV1A6ICdQJyxcbiAgICBCR046ICfQu9CyJyxcbiAgICBCUkw6ICdSJCcsXG4gICAgQk5EOiAnJCcsXG4gICAgS0hSOiAn4Z+bJyxcbiAgICBDQUQ6ICckJyxcbiAgICBLWUQ6ICckJyxcbiAgICBDTFA6ICckJyxcbiAgICBDTlk6ICfCpScsXG4gICAgQ09QOiAnJCcsXG4gICAgQ1JDOiAn4oKhJyxcbiAgICBIUks6ICdrbicsXG4gICAgQ1VQOiAn4oKxJyxcbiAgICBDWks6ICdLxI0nLFxuICAgIERLSzogJ2tyJyxcbiAgICBET1A6ICdSRCQnLFxuICAgIFhDRDogJyQnLFxuICAgIEVHUDogJ8KjJyxcbiAgICBTVkM6ICckJyxcbiAgICBFRUs6ICdrcicsXG4gICAgRVVSOiAn4oKsJyxcbiAgICBGS1A6ICfCoycsXG4gICAgRkpEOiAnJCcsXG4gICAgR0hDOiAn4oK1JyxcbiAgICBHSVA6ICfCoycsXG4gICAgR1RROiAnUScsXG4gICAgR0dQOiAnwqMnLFxuICAgIEdZRDogJyQnLFxuICAgIEhOTDogJ0wnLFxuICAgIEhLRDogJyQnLFxuICAgIEhVRjogJ0Z0JyxcbiAgICBJU0s6ICdrcicsXG4gICAgSU5SOiAn4oK5JyxcbiAgICBJRFI6ICdScCcsXG4gICAgSVJSOiAn77e8JyxcbiAgICBJTVA6ICfCoycsXG4gICAgSUxTOiAn4oKqJyxcbiAgICBKTUQ6ICdgSiQnLFxuICAgIEpQWTogJ8KlJyxcbiAgICBKRVA6ICfCoycsXG4gICAgS0VTOiAnS1NoJyxcbiAgICBLWlQ6ICfQu9CyJyxcbiAgICBLUFc6ICfigqknLFxuICAgIEtSVzogJ+KCqScsXG4gICAgS0dTOiAn0LvQsicsXG4gICAgTEFLOiAn4oKtJyxcbiAgICBMVkw6ICdMcycsXG4gICAgTEJQOiAnwqMnLFxuICAgIExSRDogJyQnLFxuICAgIExUTDogJ0x0JyxcbiAgICBNS0Q6ICfQtNC10L0nLFxuICAgIE1ZUjogJ1JNJyxcbiAgICBNVVI6ICfigqgnLFxuICAgIE1YTjogJyQnLFxuICAgIE1OVDogJ+KCricsXG4gICAgTVpOOiAnTVQnLFxuICAgIE5BRDogJyQnLFxuICAgIE5QUjogJ+KCqCcsXG4gICAgQU5HOiAnxpInLFxuICAgIE5aRDogJyQnLFxuICAgIE5JTzogJ0MkJyxcbiAgICBOR046ICfigqYnLFxuICAgIE5PSzogJ2tyJyxcbiAgICBPTVI6ICfvt7wnLFxuICAgIFBLUjogJ+KCqCcsXG4gICAgUEFCOiAnQi8uJyxcbiAgICBQWUc6ICdHcycsXG4gICAgUEVOOiAnUy8uJyxcbiAgICBQSFA6ICfigrEnLFxuICAgIFBMTjogJ3rFgicsXG4gICAgUUFSOiAn77e8JyxcbiAgICBST046ICdsZWknLFxuICAgIFJVQjogJ+KCvScsXG4gICAgUk1COiAn77+lJyxcbiAgICBTSFA6ICfCoycsXG4gICAgU0FSOiAn77e8JyxcbiAgICBSU0Q6ICfQlNC40L0uJyxcbiAgICBTQ1I6ICfigqgnLFxuICAgIFNHRDogJyQnLFxuICAgIFNCRDogJyQnLFxuICAgIFNPUzogJ1MnLFxuICAgIFpBUjogJ1InLFxuICAgIExLUjogJ+KCqCcsXG4gICAgU0VLOiAna3InLFxuICAgIENIRjogJ0NIRicsXG4gICAgU1JEOiAnJCcsXG4gICAgU1lQOiAnwqMnLFxuICAgIFRaUzogJ1RTaCcsXG4gICAgVFdEOiAnTlQkJyxcbiAgICBUSEI6ICfguL8nLFxuICAgIFRURDogJ1RUJCcsXG4gICAgVFJZOiAn4oK6JyxcbiAgICBUUkw6ICfigqQnLFxuICAgIFRWRDogJyQnLFxuICAgIFVHWDogJ1VTaCcsXG4gICAgVUFIOiAn4oK0JyxcbiAgICBHQlA6ICfCoycsXG4gICAgVVNEOiAnJCcsXG4gICAgVVlVOiAnJFUnLFxuICAgIFVaUzogJ9C70LInLFxuICAgIFZFRjogJ0JzJyxcbiAgICBWTkQ6ICfigqsnLFxuICAgIFlFUjogJ++3vCcsXG4gICAgWldEOiAnWiQnfTtcblxudHlwZSBDdXJyZW5jeU9wdGlvbnMgPSB7XG4gIGN1cnJlbmN5Pzogc3RyaW5nO1xuICBzaG93Q29kZUlmTm9TeW1ib2w/OiBib29sZWFuO1xuICBzeW1ib2xBZnRlckFtb3VudD86IGJvb2xlYW47XG4gIGZpbmFuY2lhbE5lZ2F0aXZlPzogYm9vbGVhbjtcbiAgY29kZUFmdGVyU3ltYm9sPzogYm9vbGVhbjtcbiAgY29kZUJlZm9yZVN5bWJvbD86IGJvb2xlYW47XG4gIHNwYWNlQmV0d2VlblN5bWJvbD86IGJvb2xlYW47XG4gIGRlY2ltYWxQbGFjZXM/OiBudW1iZXI7XG4gIGRlY2ltYWxTZXBlcmF0b3I/OiBzdHJpbmc7XG4gIGNvZGVBZnRlckFtb3VudD86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0Q3VycmVuY3koYW1vdW50OiBhbnksIG9wdGlvbnM6IEN1cnJlbmN5T3B0aW9ucyA9IHt9KTogc3RyaW5nIHtcbiAgY29uc3Qge1xuICAgIGN1cnJlbmN5ID0gJ0FVRCcsXG4gICAgc2hvd0NvZGVJZk5vU3ltYm9sID0gdHJ1ZSxcbiAgICBzeW1ib2xBZnRlckFtb3VudCA9IGZhbHNlLFxuICAgIGZpbmFuY2lhbE5lZ2F0aXZlID0gZmFsc2UsXG4gICAgY29kZUFmdGVyU3ltYm9sID0gZmFsc2UsXG4gICAgY29kZUJlZm9yZVN5bWJvbCA9IGZhbHNlLFxuICAgIHNwYWNlQmV0d2VlblN5bWJvbCA9IGZhbHNlLFxuICAgIGRlY2ltYWxQbGFjZXMgPSAyLFxuICAgIGRlY2ltYWxTZXBlcmF0b3IgPSAnLicsXG4gICAgY29kZUFmdGVyQW1vdW50ID0gZmFsc2VcbiAgfSA9IG9wdGlvbnM7XG5cbiAgbGV0IHN5bWJvbCA9ICcnO1xuICBsZXQgcmVzdWx0ID0gJyc7XG4gIGxldCBuZWdhdGl2ZSA9IGFtb3VudCA8IDA7XG4gIGlmIChuZWdhdGl2ZSkgYW1vdW50ID0gTWF0aC5hYnMoYW1vdW50KTtcblxuICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGN1cnJlbmN5TWFwLCBjdXJyZW5jeSkpIHtcbiAgICBzeW1ib2wgPSBjdXJyZW5jeU1hcFtjdXJyZW5jeV07XG4gICAgaWYgKGNvZGVBZnRlclN5bWJvbCkgc3ltYm9sICs9IGAoJHtjdXJyZW5jeX0pYDtcbiAgICBpZiAoY29kZUJlZm9yZVN5bWJvbCkgc3ltYm9sID0gYCgke2N1cnJlbmN5fSkke3N5bWJvbH1gO1xuICB9IGVsc2UgaWYgKHNob3dDb2RlSWZOb1N5bWJvbCkge1xuICAgIHN5bWJvbCA9IGN1cnJlbmN5O1xuICB9XG5cbiAgYW1vdW50ID0gTnVtYmVyKGFtb3VudC50b0ZpeGVkKGRlY2ltYWxQbGFjZXMpKS50b0ZpeGVkKGRlY2ltYWxQbGFjZXMpLnJlcGxhY2UoJy4nLCBkZWNpbWFsU2VwZXJhdG9yKTtcblxuICBpZiAoc3ltYm9sQWZ0ZXJBbW91bnQpIHtcbiAgICByZXN1bHQgPSBhbW91bnQgKyAoc3BhY2VCZXR3ZWVuU3ltYm9sID8gJyAnIDogJycpICsgc3ltYm9sO1xuICB9IGVsc2Uge1xuICAgIHJlc3VsdCA9IHN5bWJvbCArIChzcGFjZUJldHdlZW5TeW1ib2wgPyAnICcgOiAnJykgKyBhbW91bnQ7XG4gIH1cblxuICBpZiAobmVnYXRpdmUpIHtcbiAgICByZXN1bHQgPSBmaW5hbmNpYWxOZWdhdGl2ZSA/IGAoJHtyZXN1bHR9KWAgOiBgLSR7cmVzdWx0fWA7XG4gIH1cblxuICBpZiAoY29kZUFmdGVyQW1vdW50KSB7XG4gICAgcmVzdWx0ICs9IGAgKCR7Y3VycmVuY3l9KWA7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiB0YXhQZXJjZW50KHRheDogYW55KSB7XG4gIHJldHVybiB0YXggPyBgKCR7dGF4LnRheFBlcmNlbnR9JSlgIDogJyc7XG59XG5cbmZ1bmN0aW9uIGluY2x1ZGVzVGF4KHRheDogYW55KSB7XG4gIHJldHVybiB0YXggJiYgdGF4LnRheFBlcmNlbnQgPiAwID9cbiAgICBgIGluYyAke3RheC50YXhOYW1lfSAke3RheFBlcmNlbnQodGF4KX1gIDogJyc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjdXJyZW5jeVRvdGFsQ29zdFNob3dJbmNUYXgoam9iOiBhbnkpIHtcbiAgY29uc3QgeyBjdXJyZW5jeSwgdGF4VHlwZSwgdG90YWxDb3N0IH0gPSBqb2I7XG4gIGNvbnN0IGN1cnJlbmN5T3B0aW9ucyA9IHtjdXJyZW5jeSwgc2hvd0NvZGVJZk5vU3ltYm9sOiBmYWxzZX07XG4gIGNvbnN0IHdpdGhDdXJyZW5jeSA9IGZvcm1hdEN1cnJlbmN5KFxuICAgIHRvdGFsQ29zdCA/IHRvdGFsQ29zdCA6IDAsXG4gICAgY3VycmVuY3lPcHRpb25zXG4gICk7XG4gIHJldHVybiBgJHtjdXJyZW5jeX0gJHt3aXRoQ3VycmVuY3l9ICR7aW5jbHVkZXNUYXgodGF4VHlwZSl9YDtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFNQSxXQUFnQixHQUMzQjtFQUFDQyxHQUFHLEVBQUUsR0FBRztFQUNQQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsSUFBSTtFQUNUQyxHQUFHLEVBQUUsS0FBSztFQUNWQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsS0FBSztFQUNWQyxHQUFHLEVBQUUsSUFBSTtFQUNUQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsSUFBSTtFQUNUQyxHQUFHLEVBQUUsSUFBSTtFQUNUQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsSUFBSTtFQUNUQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsSUFBSTtFQUNUQyxHQUFHLEVBQUUsSUFBSTtFQUNUQyxHQUFHLEVBQUUsS0FBSztFQUNWQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsSUFBSTtFQUNUQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsSUFBSTtFQUNUQyxHQUFHLEVBQUUsSUFBSTtFQUNUQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsSUFBSTtFQUNUQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsS0FBSztFQUNWQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsS0FBSztFQUNWQyxHQUFHLEVBQUUsSUFBSTtFQUNUQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsSUFBSTtFQUNUQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsSUFBSTtFQUNUQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsSUFBSTtFQUNUQyxHQUFHLEVBQUUsS0FBSztFQUNWQyxHQUFHLEVBQUUsSUFBSTtFQUNUQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsSUFBSTtFQUNUQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsSUFBSTtFQUNUQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsSUFBSTtFQUNUQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsS0FBSztFQUNWQyxHQUFHLEVBQUUsSUFBSTtFQUNUQyxHQUFHLEVBQUUsS0FBSztFQUNWQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsSUFBSTtFQUNUQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsS0FBSztFQUNWQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsTUFBTTtFQUNYQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsSUFBSTtFQUNUQyxHQUFHLEVBQUUsS0FBSztFQUNWQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsS0FBSztFQUNWQyxHQUFHLEVBQUUsS0FBSztFQUNWQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsS0FBSztFQUNWQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsS0FBSztFQUNWQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsR0FBRztFQUNSQyxHQUFHLEVBQUUsSUFBSTtFQUNUQyxHQUFHLEVBQUUsSUFBSTtFQUNUQyxHQUFHLEVBQUUsSUFBSTtFQUNUQyxHQUFH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