ITA Matrix Powertools

Adds new features and builds fare purchase links for ITA Matrix

目前為 2020-03-02 提交的版本,檢視 最新版本

// ==UserScript==
// @name ITA Matrix Powertools
// @namespace https://github.com/adamhwang/ita-matrix-powertools
// @description Adds new features and builds fare purchase links for ITA Matrix
// @version 0.48.0
// @icon https://raw.githubusercontent.com/adamhwang/ita-matrix-powertools/master/icons/icon32.png
// @require https://greasemonkey.github.io/gm4-polyfill/gm4-polyfill.js
// @grant GM.getValue
// @grant GM_setValue
// @grant GM.setValue
// @grant GM_setValue
// @include http*://matrix.itasoftware.com/*
// @license GPL-2.0-only
// ==/UserScript==

/*
 Written by paul21, Steppo & Adam Hwang (IAkH) of FlyerTalk.com
 http://www.flyertalk.com/forum/members/paul21.html
 Includes contriutions by https://github.com/adamhwang/ita-matrix-powertools/blob/master/AUTHORS
 GNU General Public License v2.0
*/

//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool:
//     `npm run build`
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

/******/ (function(modules) { // webpackBootstrap
/******/ 	// The module cache
/******/ 	var installedModules = {};
/******/
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/
/******/ 		// Check if module is in cache
/******/ 		if(installedModules[moduleId]) {
/******/ 			return installedModules[moduleId].exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = installedModules[moduleId] = {
/******/ 			i: moduleId,
/******/ 			l: false,
/******/ 			exports: {}
/******/ 		};
/******/
/******/ 		// Execute the module function
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ 		// Flag the module as loaded
/******/ 		module.l = true;
/******/
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/
/******/
/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = modules;
/******/
/******/ 	// expose the module cache
/******/ 	__webpack_require__.c = installedModules;
/******/
/******/ 	// define getter function for harmony exports
/******/ 	__webpack_require__.d = function(exports, name, getter) {
/******/ 		if(!__webpack_require__.o(exports, name)) {
/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ 		}
/******/ 	};
/******/
/******/ 	// define __esModule on exports
/******/ 	__webpack_require__.r = function(exports) {
/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 		}
/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
/******/ 	};
/******/
/******/ 	// create a fake namespace object
/******/ 	// mode & 1: value is a module id, require it
/******/ 	// mode & 2: merge all properties of value into the ns
/******/ 	// mode & 4: return value when already ns object
/******/ 	// mode & 8|1: behave like require
/******/ 	__webpack_require__.t = function(value, mode) {
/******/ 		if(mode & 1) value = __webpack_require__(value);
/******/ 		if(mode & 8) return value;
/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ 		var ns = Object.create(null);
/******/ 		__webpack_require__.r(ns);
/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ 		return ns;
/******/ 	};
/******/
/******/ 	// getDefaultExport function for compatibility with non-harmony modules
/******/ 	__webpack_require__.n = function(module) {
/******/ 		var getter = module && module.__esModule ?
/******/ 			function getDefault() { return module['default']; } :
/******/ 			function getModuleExports() { return module; };
/******/ 		__webpack_require__.d(getter, 'a', getter);
/******/ 		return getter;
/******/ 	};
/******/
/******/ 	// Object.prototype.hasOwnProperty.call
/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ 	// __webpack_public_path__
/******/ 	__webpack_require__.p = "";
/******/
/******/
/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(__webpack_require__.s = 50);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getCurrentSegs; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return currentItin; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return readItinerary; });
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);


// initialize local storage for current itin
/** @type {{ cur?: string; price?: number; basefares?: number; taxes?: number; surcharges?: number; dist?: number; numPax?: number; carriers?: string[]; farebases?: string[]; itin?: { orig: string; dest: string; dist?: number; dep: { day: number; month: number; year: number; time: string; offset?: string; }; arr: { day: number; month: number; year: number; time: string; offset?: string; }; seg?: { carrier: string; orig: string; dest: string; dist?: number; dep: { day: number; month: number; year: number; time: string; time24: string; timeDisplay: string; offset?: string; }; arr: { day: number; month: number; year: number; time: string; time24: string; timeDisplay: string; offset?: string; }; fnr: string; duration: number; aircraft: string; cabin: number; bookingclass: string; codeshare: number; layoverduration: number; airportchange: number; farebase: string; farecarrier: string; }[]}[]}} */
let currentItin = new Object();

const matrixCurrencies = [
  { p: /US\$/, c: "USD" },
  { p: /\€/, c: "EUR" },
  { p: /\£/, c: "GBP" },
  { p: /CA\$/, c: "CAD" },
  { p: /RS\./, c: "INR" }
];

function readItinerary() {
  // the magical part! :-)
  var itin = new Array(),
    carrieruarray = new Array(),
    farebases = new Array(),
    dirtyFare = new Array();
  var itinCur = "";
  var html = document.getElementById("contentwrapper").innerHTML;
  var re = /colspan\=\"5\"[^\(]+\(([\w]{3})[^\(]+\(([\w]{3})/g;
  var legs = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* exRE */ "b"])(html, re);
  // Got our outer legs now:
  for (i = 0; i < legs.length; i += 2) {
    var legobj = {};
    // prepare all elements but fill later
    legobj.arr = {};
    legobj.dep = {};
    legobj.orig = legs[i];
    legobj.dest = legs[i + 1];
    legobj.seg = new Array();
    itin.push(legobj);
  }
  // extract basefares
  var re = /Carrier\s([\w]{2})\s([\w]+).*?Covers\s([\w\(\)\s\-,]+)/g;
  var bfs = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* exRE */ "b"])(html, re);
  var bf = { c: "", f: "", l: new Array() };
  for (i = 0; i < bfs.length; i += 3) {
    bf.c = bfs[i];
    bf.f = bfs[i + 1];
    farebases.push(bf.f);
    bf.l = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* exRE */ "b"])(bfs[i + 2], /(\w\w\w\-\w\w\w)/g);
    for (j = 0; j < bf.l.length; j++) {
      dirtyFare.push(bf.l[j] + "-" + bf.f + "-" + bf.c);
    }
  }
  var segs = new Array();
  var re = /35px\/(\w{2}).png[^\(]+\(([A-Z]{3})[^\(]+\(([A-Z]{3})[^\,]*\,\s*([a-zA-Z]{3})\s*([0-9]{1,2}).*?gwt-Label.*?([0-9]*)\<.*?Dep:[^0-9]+(.*?)\<.*?Arr:[^0-9]+(.*?)\<.*?([0-9]{1,2})h\s([0-9]{1,2})m.*?gwt-Label.*?\>(.*?)\<.*?gwt-Label\"\>(\w).*?\((\w)\).*?\<.*?tr(.*?)(table|airline_logos)/g;
  segs = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* exRE */ "b"])(html, re);
  // used massive regex to get all our segment-info in one extraction
  var legnr = 0;
  var segnr = 0;
  for (i = 0; i < segs.length; i += 15) {
    const dep12 = return12htime(segs[i + 6]);
    const dep24 = (dep12.length == 4 ? "0" : "") + dep12;
    const arr12 = return12htime(segs[i + 7]);
    const arr24 = (arr12.length == 4 ? "0" : "") + arr12;
    const addinformations = parseAddInfo(segs[i + 13]);
    const day = parseInt(segs[i + 4]);
    const month = monthnameToNumber(segs[i + 3]);
    const year = getFlightYear(day, month);
    let seg = {
      carrier: segs[i],
      orig: segs[i + 1],
      dest: segs[i + 2],
      dep: {
        day,
        month,
        year,
        timeDisplay: segs[i + 6],
        time: dep12,
        time24: dep24
      },
      arr: {
        day: addinformations.arrDate ? addinformations.arrDate.day : day,
        month: addinformations.arrDate ? addinformations.arrDate.month : month,
        year: addinformations.arrDate ? addinformations.arrDate.year : year,
        timeDisplay: segs[i + 7],
        time: arr12,
        time24: arr24
      },
      fnr: segs[i + 5],
      duration: parseInt(segs[i + 8]) * 60 + parseInt(segs[i + 9]),
      aircraft: segs[i + 10],
      cabin: getcabincode(segs[i + 11]),
      bookingclass: segs[i + 12],
      codeshare: addinformations.codeshare,
      layoverduration: addinformations.layoverduration,
      airportchange: addinformations.airportchange,
      farebase: "",
      farecarrier: ""
    };

    // find farecode for leg
    for (var j = 0; j < dirtyFare.length; j++) {
      if (dirtyFare[j].indexOf(seg.orig + "-" + seg.dest + "-") != -1) {
        //found farebase of this segment
        var tmp = dirtyFare[j].split("-");
        seg.farebase = tmp[2];
        seg.farecarrier = tmp[3];
        dirtyFare[j] = seg.farebase; // avoid reuse
        j = dirtyFare.length;
      }
    }
    if (itin[legnr] === undefined) itin[legnr] = new Object();
    if (itin[legnr].seg === undefined) itin[legnr].seg = new Array();
    itin[legnr].seg.push(seg);
    // push carrier
    if (!carrieruarray.some(cxr => cxr === seg.carrier)) {
      carrieruarray.push(seg.carrier);
    }
    // push dates and times into leg-array
    if (segnr == 0) {
      if (itin[legnr].dep === undefined) itin[legnr].dep = new Object();
      itin[legnr].dep.day = seg.dep.day;
      itin[legnr].dep.month = seg.dep.month;
      itin[legnr].dep.year = seg.dep.year;
      itin[legnr].dep.time = seg.dep.time;
    }
    if (itin[legnr].arr === undefined) itin[legnr].arr = new Object();
    itin[legnr].arr.day = seg.arr.day;
    itin[legnr].arr.month = seg.arr.month;
    itin[legnr].arr.year = seg.arr.year;
    itin[legnr].arr.time = seg.arr.time;
    segnr++;
    // check for legchange
    if (segs[i + 14] == "table") {
      legnr++;
      segnr = 0;
    }
  }
  // We need to apply remaining fares (Not nonstop - but direct flights)
  for (var i = 0; i < dirtyFare.length; i++) {
    var curfare = dirtyFare[i].split("-");
    if (curfare.length > 1) {
      var l = 0;
      //currently unused so walk through itin to find flights
      for (var legnr = 0; legnr < itin.length; legnr++) {
        for (var segnr = 0; segnr < itin[legnr].seg.length; segnr++) {
          if (
            itin[legnr].seg[segnr].orig == curfare[0] &&
            itin[legnr].seg[segnr].dest == curfare[1] &&
            itin[legnr].seg[segnr].farebase == ""
          ) {
            // found seg for fare
            itin[legnr].seg[segnr].farebase = curfare[2];
            itin[legnr].seg[segnr].farecarrier = curfare[3];
            dirtyFare[i] = curfare[2];
            segnr = itin[legnr].seg.length;
            l = 1;
          } else if (
            itin[legnr].seg[segnr].orig == curfare[0] &&
            itin[legnr].seg[segnr].dest != curfare[1] &&
            itin[legnr].seg[segnr].farebase == ""
          ) {
            // found start but multiple segs -> find end
            for (var j = segnr + 1; j < itin[legnr].seg.length; j++) {
              if (
                itin[legnr].seg[j].dest == curfare[1] &&
                itin[legnr].seg[j].farebase == ""
              ) {
                //found end attach fares
                for (var k = segnr; k <= j; k++) {
                  itin[legnr].seg[k].farebase = curfare[2];
                  itin[legnr].seg[k].farecarrier = curfare[3];
                  dirtyFare[i] = curfare[2];
                }
                j = itin[legnr].seg.length;
                segnr = itin[legnr].seg.length;
                l = 1;
              } else if (itin[legnr].seg[segnr + j].farebase != "") {
                //farebase attached - skip
                j = itin[legnr].seg.length;
              }
            }
          }
        }
        if (l == 1) {
          legnr = itin.length;
        }
      }
      if (l == 0) {
        Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* printNotification */ "g"])("Unused fare:" + dirtyFare[i]);
      }
    }
  }
  // Combine technical stops into a single segment
  itin.forEach(itin => {
    if (itin.seg) itin.seg = combineTechnicalStops(itin.seg);
  });
  // extract mileage paxcount and total price
  var milepaxprice = new Array();
  var re = /Mileage.*?([0-9,]+)\stotal\smiles.*?Total\scost\sfor\s([0-9])\spassenger.*?<div.*?>(.*?([1-9][0-9,.]+)[^\<]*)/g;
  milepaxprice = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* exRE */ "b"])(html, re);
  // detect currency
  for (i = 0; i < matrixCurrencies.length; i++) {
    if (matrixCurrencies[i].p.test(milepaxprice[2]) === true) {
      itinCur = matrixCurrencies[i].c;
      i = matrixCurrencies.length;
    }
  }
  currentItin = {
    itin: itin,
    price: Number(milepaxprice[3].replace(/\,/, "")),
    numPax: Number(milepaxprice[1]),
    carriers: carrieruarray,
    cur: itinCur,
    farebases: farebases,
    dist: Number(milepaxprice[0].replace(/\,/, ""))
  };
  console.log("parsed itinerary: ", currentItin);
}

function parseAddInfo(info) {
  var ret = {
    codeshare: 0,
    layoverduration: 0,
    airportchange: 0,
    arrDate: null
  };
  var re = /contains\s*airport\s*changes/g;
  if (re.test(info) === true) {
    ret.airportchange = 1;
  }
  var re = /OPERATED\s*BY/g;
  if (re.test(info) === true) {
    ret.codeshare = 1;
  }
  var temp = new Array();
  var re = /\,\s*([a-zA-Z]{3})\s*([0-9]{1,2})/g;
  temp = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* exRE */ "b"])(info, re);
  if (temp.length == 2) {
    // Got datechange
    const month = monthnameToNumber(temp[0]);
    const day = parseInt(temp[1]);
    ret.arrDate = {
      month,
      day,
      year: getFlightYear(day, month)
    };
  }
  var temp = new Array();
  var re = /([0-9]{1,2})h\s([0-9]{1,2})m/g;
  temp = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* exRE */ "b"])(info, re);
  if (temp.length == 2) {
    // Got layover
    ret.layoverduration = parseInt(temp[0]) * 60 + parseInt(temp[1]);
  }
  return ret;
}

function getCurrentSegs() {
  return currentItin.itin
    .map(function(p) {
      return p.seg;
    })
    .reduce(function(a, b) {
      return a.concat(b);
    }, []);
}

function combineTechnicalStops(allSegs) {
  if (allSegs.length <= 1) return allSegs;

  const segs = [];

  for (let i = 0; i < allSegs.length; i++) {
    const currSeg = allSegs[i];
    const nextSeg = allSegs[i + 1];

    if (
      nextSeg &&
      nextSeg.fnr === currSeg.fnr &&
      nextSeg.orig === currSeg.dest
    ) {
      segs.push({
        ...currSeg,
        dest: nextSeg.dest,
        arr: nextSeg.arr
      });
      i++;
    } else {
      segs.push(currSeg);
    }
  }

  return segs;
}

/**************************************** General Functions *****************************************/
function getcabincode(cabin) {
  switch (cabin) {
    case "E":
      cabin = 0;
      break;
    case "P":
      cabin = 1;
      break;
    case "B":
      cabin = 2;
      break;
    case "F":
      cabin = 3;
      break;
    default:
      cabin = 0;
  }
  return cabin;
}

function monthnameToNumber(month) {
  var monthnames = [
    "JAN",
    "FEB",
    "MAR",
    "APR",
    "MAY",
    "JUN",
    "JUL",
    "AUG",
    "SEP",
    "OCT",
    "NOV",
    "DEC"
  ];
  return monthnames.indexOf(month.toUpperCase()) + 1;
}

function getFlightYear(day, month) {
  //Do date magic
  var d = new Date();
  var cmonth = d.getMonth();
  var cday = d.getDate();
  var cyear = d.getFullYear();
  // make sure to handle the 0-11 issue of getMonth()
  if (cmonth > month - 1 || (cmonth == month - 1 && day < cday)) {
    cyear += 1; // The flight is next year
  }
  return cyear;
}

function return12htime(match) {
  var regex = /([01]?\d)(:\d{2})(AM|PM|am|pm| AM| PM| am| pm)/g;
  match = regex.exec(match);
  var offset = 0;
  match[3] = trimStr(match[3]);
  if ((match[3] == "AM" || match[3] == "am") && match[1] == "12") {
    offset = -12;
  } else if ((match[3] == "PM" || match[3] == "pm") && match[1] != "12") {
    offset = 12;
  }
  return +match[1] + offset + match[2];
}

function trimStr(x) {
  return x.replace(/^\s+|\s+$/gm, "");
}




/***/ }),
/* 1 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return findtarget; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return findtargets; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return hasClass; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return toggleVis; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return clearNotification; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return printNotification; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return exRE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return to2digits; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return to4digits; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return to4digitTime; });
/* unused harmony export uuidv4 */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return monthnumberToName; });
function findtarget(tclass, nth) {
  var elems = document.getElementsByTagName("*"),
    i;
  let j = 0;
  for (i in elems) {
    if ((" " + elems[i].className + " ").indexOf(" " + tclass + " ") > -1) {
      j++;
      if (j == nth) {
        return elems[i];
        break;
      }
    }
  }
}

function findtargets(tclass) {
  var elems = document.getElementsByTagName("*"),
    i;
  var ret = new Array();
  for (i in elems) {
    if ((" " + elems[i].className + " ").indexOf(" " + tclass + " ") > -1) {
      ret.push(elems[i]);
    }
  }
  return ret;
}

function hasClass(element, cls) {
  return (" " + element.className + " ").indexOf(" " + cls + " ") > -1;
}

function toggleVis(target, blockType = "block") {
  if (hasClass(target, "vis")) {
    target.setAttribute("class", "invis");
    target.style.display = "none";
  } else {
    target.setAttribute("class", "vis");
    target.style.display = blockType;
  }
}

function clearNotification() {
  var target = document.getElementById("mtpNotification");
  target.innerHTML = "";
}

function printNotification(text) {
  // log the text to the browser's developer console:
  console.log(text);
  // display for user:
  var target = document.getElementById("mtpNotification");
  if (target === null) {
    //alert("mtp Error: Notification container not Found");
    console.log("mtp Error: Notification container not Found");
  } else {
    //possibility to print multiple notifications
    var temp = document.createElement("div");
    temp.appendChild(document.createTextNode(text));
    target.appendChild(temp);
  }
}

//Parses all of the outputs of regexp matches into an array
function exRE(str, re) {
  var ret = new Array();
  var m;
  var i = 0;
  while ((m = re.exec(str)) != null) {
    if (m.index === re.lastIndex) {
      re.lastIndex++;
    }
    for (let k = 1; k < m.length; k++) {
      ret[i++] = m[k];
    }
  }
  return ret;
}

function to2digits(str) {
  return ("00" + str).slice(-2);
}

function to4digits(str) {
  return ("0000" + str).slice(-4);
}

function to4digitTime(time) {
  return to4digits(time.replace(":", ""));
}

function uuidv4() {
  return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(c) {
    var r = (Math.random() * 16) | 0,
      v = c == "x" ? r : (r & 0x3) | 0x8;
    return v.toString(16);
  });
}

function monthnumberToName(month) {
  var monthnames = [
    "JAN",
    "FEB",
    "MAR",
    "APR",
    "MAY",
    "JUN",
    "JUL",
    "AUG",
    "SEP",
    "OCT",
    "NOV",
    "DEC"
  ];
  return monthnames[month - 1];
}


/***/ }),
/* 2 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return registeredSettings; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return registerSetting; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return saveUserSettings; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return loadUserSettings; });
/* harmony import */ var _appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);


const defaultSettings = {
  timeformat: "12h", // replaces times on resultpage - valid: 12h / 24h
  language: "en", // replaces several items on resultpage - valid: en / de
  linkFontsize: 100, // fontsize of links - valid: 50-200
  showAllAirlines: 0, // shows all airline links regardless of search results

  // booleans to toggle specific settings:
  enableDeviders: 1, // Print deviders in links after group (airlines/otas/other stuff) - valid: 0 / 1
  enableInlineMode: 1, // enables inline mode - valid: 0 / 1
  enableEditormode: 0, // prevents the script from automatically parsing the itinerary - valid: 0 / 1
  enableIMGautoload: 0, // enables images to auto load - valid: 0 / 1
  enableFarerules: 1, // enables fare rule opening in new window - valid: 0 / 1
  enablePricebreakdown: 1, // enables price breakdown - valid: 0 / 1
  enableDarkmode: 0, // enables dark mode - valid: 0 / 1
  enablePlanefinder: 1, // enables Planefinder - click on flight numbers to open Planefinder for this flight - valid: 0 / 1
  enableSeatguru: 1, // enables Seatguru - click on plane type to open Seatguru for this flight - valid: 0 / 1
  enableWheretocredit: 1, // enables Wheretocredit - click on booking class to open wheretocredit for this flight - valid: 0 / 1

  enableAffiliates: 1
};

const registeredSettings = {};

/**
 * Registers a link
 * @param {string} name
 * @param {string} id
 * @param {{ name: string, value: string }[]} values
 * @param {string} defaultValue
 */
function registerSetting(name, id, values, defaultValue) {
  registeredSettings[id] = { name, values };
  defaultSettings[id] = defaultValue;
}

async function saveUserSettings(settings = defaultSettings) {
  switch (_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].scriptEngine) {
    case 0:
      localStorage.setItem("mptUserSettings", JSON.stringify(settings));
      break;
    case 1:
      await GM.setValue("mptUserSettings", JSON.stringify(settings));
      break;
  }
}

async function loadUserSettings() {
  let gmSavedUserSettings;
  switch (_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].scriptEngine) {
    case 0:
      gmSavedUserSettings = localStorage.getItem("mptUserSettings");
      break;
    case 1:
      gmSavedUserSettings = await GM.getValue("mptUserSettings");
      break;
  }
  console.log("mptSavedUserSettings: " + gmSavedUserSettings);
  if (!gmSavedUserSettings || typeof gmSavedUserSettings !== "string") return;

  /** @type typeof defaultSettings */
  const savedUserSettings = JSON.parse(gmSavedUserSettings);
  if (!savedUserSettings) return;

  Object.assign(defaultSettings, savedUserSettings);
}

/* harmony default export */ __webpack_exports__["a"] = (defaultSettings);


/***/ }),
/* 3 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "register", function() { return register; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "allCarriers", function() { return allCarriers; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "anyCarriers", function() { return anyCarriers; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "validatePax", function() { return validatePax; });
/* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
/* harmony import */ var _settings_paxSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);
/* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9);
/* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);





const req = __webpack_require__(11);

req.keys().forEach(req);

/**
 * Registers a link
 * @param {() => { url: string, title: string, img?: string, desc?: string, extra?: string, target?: string }} factory
 */
function register(type, factory) {
  Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* registerLink */ "b"])(type, factory);
}

function allCarriers() {
  const args = Array.from(arguments);
  return (
    _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].showAllAirlines ||
    _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].carriers.every(cxr => args.some(arg => cxr === arg))
  );
}

function anyCarriers() {
  const args = Array.from(arguments);
  return (
    _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].showAllAirlines ||
    _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].carriers.some(cxr => args.some(arg => cxr === arg))
  );
}

function validatePax(config) {
  //{maxPaxcount:7, countInf:false, childAsAdult:12, sepInfSeat:false, childMinAge:2}
  var tmpChildren = new Array();
  // push cur children
  for (var i = 0; i < _settings_paxSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].cAges.length; i++) {
    tmpChildren.push(_settings_paxSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].cAges[i]);
  }
  var ret = {
    adults: _settings_paxSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].adults,
    children: new Array(),
    infLap: _settings_paxSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].infantsLap,
    infSeat: 0
  };
  if (config.sepInfSeat === true) {
    ret.infSeat = _settings_paxSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].infantsSeat;
  } else {
    for (var i = 0; i < _settings_paxSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].infantsSeat; i++) {
      tmpChildren.push(config.childMinAge);
    }
  }
  // process children
  for (var i = 0; i < tmpChildren.length; i++) {
    if (tmpChildren[i] < config.childAsAdult) {
      ret.children.push(tmpChildren[i]);
    } else {
      ret.adults++;
    }
  }
  // check Pax-Count
  if (
    config.maxPaxcount <=
    ret.adults +
      (config.countInf && ret.infLap) +
      ret.infSeat +
      ret.children.length
  ) {
    console.log("Too many passengers");
    return;
  }
  if (0 === ret.adults + ret.infSeat + ret.children.length) {
    console.log("No passengers");
    return;
  }
  return ret;
}


/***/ }),
/* 4 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return reset; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getCabin; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getForcedCabin; });
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);


// General settings
const appSettings = {
  scriptEngine:
    typeof GM === "undefined" || typeof GM.info === "undefined" ? 0 : 1, // 0 - console mode, 1 - tamper or grease mode
  itaLanguage: "en",
  version: "0.48.0",
  retrycount: 1,
  laststatus: "",
  scriptrunning: 1,
  cabin: "Auto"
};

function reset() {
  // reset Notification due to pagechange
  Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* clearNotification */ "a"])();

  // reset Editor Mode
  document.getElementById("mptStartparse").setAttribute("class", "invis");
  document.getElementById("mptStartparse").style.display = "none";
  appSettings.itaLanguage = "en";
  appSettings.retrycount = 1;
}

function getCabin(autoCabin) {
  return appSettings.cabin === "Auto" ? autoCabin : getForcedCabin();
}

function getForcedCabin() {
  switch (appSettings.cabin) {
    case "Y":
      return 0;
    case "Y+":
      return 1;
    case "C":
      return 2;
    case "F":
      return 3;
    default:
      return 0;
  }
}

/* harmony default export */ __webpack_exports__["a"] = (appSettings);


/***/ }),
/* 5 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return findTargetSetVersion; });
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);


// ITA Matrix CSS class definitions:
const itaSettings = [
  {
    startpage: {
      maindiv: "KIR33AB-w-d" //Container of main content. Unfortunately id "contentwrapper" is used twice
    },
    resultpage: {
      itin: "KIR33AB-v-d", //Container with headline: "Itinerary"
      itinRow: "KIR33AB-j-i", // TR in itin with Orig, Dest and date
      milagecontainer: "KIR33AB-v-e", // TD-Container on the right
      rulescontainer: "KIR33AB-k-d", // First container before rulelinks (the one with Fare X:)
      htbContainer: "KIR33AB-k-k", // full "how to buy"-container inner div (td=>div=>div)
      htbLeft: "KIR33AB-k-g", // Left column in the "how to buy"-container
      htbRight: "KIR33AB-k-f", // Class for normal right column
      htbGreyBorder: "KIR33AB-k-l", // Class for right cell with light grey border (used for subtotal of passenger)
      //inline
      mcDiv: "KIR33AB-y-d", // Right menu sections class (3 divs surrounding entire Mileage, Emissions, and Airport Info)
      mcHeader: "KIR33AB-y-b", // Right menu header class ("Mileage", etc.)
      mcLinkList: "KIR33AB-y-c" // Right menu ul list class (immediately following header)
    }
  },
  {
    startpage: {
      maindiv: "IR6M2QD-w-d" //Container of main content. Unfortunately id "contentwrapper" is used twice
    },
    resultpage: {
      itin: "IR6M2QD-v-d", //Container with headline: "Itinerary"
      itinRow: "IR6M2QD-j-i", // TR in itin with Orig, Dest and date
      milagecontainer: "IR6M2QD-v-e", // TD-Container on the right
      rulescontainer: "IR6M2QD-k-d", // First container before rulelinks (the one with Fare X:)
      htbContainer: "IR6M2QD-k-k", // full "how to buy"-container inner div (td=>div=>div)
      htbLeft: "IR6M2QD-k-g", // Left column in the "how to buy"-container
      htbRight: "IR6M2QD-k-f", // Class for normal right column
      htbGreyBorder: "IR6M2QD-k-l", // Class for right cell with light grey border (used for subtotal of passenger)
      //inline
      mcDiv: "IR6M2QD-y-d", // Right menu sections class (3 divs surrounding entire Mileage, Emissions, and Airport Info)
      mcHeader: "IR6M2QD-y-b", // Right menu header class ("Mileage", etc.)
      mcLinkList: "IR6M2QD-y-c" // Right menu ul list class (immediately following header)
    }
  }
];

const classSettings = itaSettings[0];

function findTargetSetVersion(classSelector, nth) {
  for (let setting of itaSettings) {
    const className = classSelector(setting);
    const target = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* findtarget */ "c"])(className, nth);
    if (target) {
      console.log(`ITA Version detected: ${className}`);
      Object.assign(classSettings, setting);
      return target;
    }
  }
}

/* harmony default export */ __webpack_exports__["a"] = (classSettings);


/***/ }),
/* 6 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
// initialize local storage for passenger details
/* harmony default export */ __webpack_exports__["a"] = ({
  adults: 1,
  infantsLap: 0,
  infantsSeat: 0,
  cAges: new Array()
});


/***/ }),
/* 7 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getAmadeusUrl; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getAmadeusPax; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getAmadeusTriptype; });
/* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
/* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(0);



// **** START AMADEUS ****
function getAmadeusUrl(config) {
  config = config || {
    sepcabin: 1,
    detailed: 0,
    inctimes: 1,
    enablesegskip: 1,
    allowpremium: 1
  };
  config.sepcabin = config.sepcabin === undefined ? 1 : config.sepcabin;
  config.detailed = config.detailed === undefined ? 0 : config.detailed;
  config.inctimes = config.inctimes === undefined ? 1 : config.inctimes;
  config.enablesegskip =
    config.enablesegskip === undefined ? 1 : config.enablesegskip;
  config.allowpremium =
    config.allowpremium === undefined ? 1 : config.allowpremium;
  var curleg = 0;
  var lastcabin = 0;
  var curseg = 0;
  var lastdest = "";
  var maxcabin = 0;
  var url = "";
  var lastarrtime = "";
  var cabins = ["E", "N", "B", "F"];
  cabins[1] = config.allowpremium != 1 ? cabins[0] : cabins[1];
  //Build multi-city search based on legs
  for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin.length; i++) {
    curseg = 3; // need to toggle segskip on first leg
    lastcabin = _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[0].cabin;
    // walks each leg
    for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg.length; j++) {
      //walks each segment of leg
      var k = 0;
      // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover
      while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg.length - 1) {
        if (
          _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].fnr !=
            _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr ||
          _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440 ||
          config.enablesegskip == 0
        )
          break;
        k++;
      }
      curseg++;
      if (
        curseg > 3 ||
        (_parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].cabin != lastcabin && config.sepcabin == 1)
      ) {
        if (lastdest != "") {
          //close prior flight
          url += "&E_LOCATION_" + curleg + "=" + lastdest;
          url += "&E_DATE_" + curleg + "=" + lastarrtime;
        }
        curseg = 1;
        curleg++;
        url += "&B_LOCATION_" + curleg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].orig;
        url += "&B_ANY_TIME_" + curleg + "=FALSE";
        url +=
          "&B_DATE_" +
          curleg +
          "=" +
          _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.year +
          ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) +
          ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2) +
          (config.inctimes == 1
            ? (
                "0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.time.replace(":", "")
              ).slice(-4)
            : "0000");
        url +=
          "&CABIN_" + curleg + "=" + cabins[_parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].cabin];
        url += "&ALLOW_ALTERNATE_AVAILABILITY_" + curleg + "=FALSE";
        url += "&DATE_RANGE_VALUE_" + curleg + "=0";
      }
      lastarrtime =
        _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].arr.year +
        ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].arr.month).slice(-2) +
        ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].arr.day).slice(-2) +
        (config.inctimes == 1
          ? (
              "0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].arr.time.replace(":", "")
            ).slice(-4)
          : "0000");
      if (config.detailed === 1) {
        url +=
          "&B_LOCATION_" +
          curleg +
          "_" +
          curseg +
          "=" +
          _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].orig;
        url +=
          "&B_LOCATION_CITY_" +
          curleg +
          "_" +
          curseg +
          "=" +
          _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].orig;
        url +=
          "&B_DATE_" +
          curleg +
          "_" +
          curseg +
          "=" +
          _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.year +
          ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) +
          ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2) +
          (config.inctimes == 1
            ? (
                "0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.time.replace(":", "")
              ).slice(-4)
            : "0000");
        url +=
          "&E_LOCATION_" +
          curleg +
          "_" +
          curseg +
          "=" +
          _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].dest;
        url +=
          "&E_LOCATION_CITY_" +
          curleg +
          "_" +
          curseg +
          "=" +
          _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].dest;
        url += "&E_DATE_" + curleg + "_" + curseg + "=" + lastarrtime;
      }
      url +=
        "&AIRLINE_" +
        curleg +
        "_" +
        curseg +
        "=" +
        _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].carrier;
      url +=
        "&FLIGHT_NUMBER_" +
        curleg +
        "_" +
        curseg +
        "=" +
        _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].fnr;
      url +=
        "&RBD_" +
        curleg +
        "_" +
        curseg +
        "=" +
        _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].bookingclass;
      url +=
        "&FARE_CLASS_" +
        curleg +
        "_" +
        curseg +
        "=" +
        _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].farebase;
      lastdest = _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].dest;
      lastcabin = _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].cabin;
      if (_parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].cabin > maxcabin)
        maxcabin = _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].cabin;
      j += k;
    }
  }
  url += "&E_LOCATION_" + curleg + "=" + lastdest; // push final dest
  url += "&E_DATE_" + curleg + "=" + lastarrtime; // push arr time
  url +=
    "&CABIN=" +
    cabins[_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? maxcabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])()] +
    ""; // push cabin
  return url;
}

function getAmadeusPax(pax, config) {
  config = config || {
    allowinf: 1,
    youthage: 0
  };
  config.allowinf = config.allowinf === undefined ? 1 : config.allowinf;
  config.youthage = config.sepyouth === undefined ? 0 : config.sepyouth;
  var tmpPax = { c: 0, y: 0 };
  var curPax = 1;
  var url = "&IS_PRIMARY_TRAVELLER_1=True";
  for (let i = 0; i < pax.children.length; i++) {
    if (pax.children[i] >= config.youthage && config.youthage > 0) {
      tmpPax.y++;
    } else if (pax.children[i] >= 12) {
      pax.adults++;
    } else {
      tmpPax.c++;
    }
  }
  for (let i = 0; i < pax.adults; i++) {
    url += "&TRAVELLER_TYPE_" + curPax + "=ADT";
    url +=
      "&HAS_INFANT_" +
      curPax +
      "=" +
      (i < pax.infLap && config.allowinf == 1 ? "True" : "False");
    url += "&IS_YOUTH_" + curPax + "=False";
    curPax++;
  }
  for (let i = 0; i < tmpPax.y; i++) {
    url += "&TRAVELLER_TYPE_" + curPax + "=ADT";
    url += "&HAS_INFANT_" + curPax + "=False";
    url += "&IS_YOUTH_" + curPax + "=True";
    curPax++;
  }
  for (let i = 0; i < tmpPax.c; i++) {
    url += "&TRAVELLER_TYPE_" + curPax + "=CHD";
    url += "&HAS_INFANT_" + curPax + "=False";
    url += "&IS_YOUTH_" + curPax + "=False";
    curPax++;
  }
  return {
    url: url,
    adults: pax.adults,
    youth: tmpPax.y,
    children: tmpPax.c,
    infants: pax.infLap
  };
}

function getAmadeusTriptype() {
  return _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin.length > 1
    ? _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin.length == 2 &&
      _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[1].dest &&
      _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[1].orig
      ? "R"
      : "M"
    : "O";
}
// **** END AMADEUS ****


/***/ }),
/* 8 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
// Supported translations for the PowerTools interface:
const de = {
  use: "&Ouml;ffne ",
  resultpage: {
    "Dep:": "Abflug:",
    "Arr:": "Ankunft:",
    "Layover in": "Umst. in",
    " to ": " nach ",
    "Mon,": "Mo.,",
    "Tue,": "Di.,",
    "Wed,": "Mi.,",
    "Thu,": "Do.,",
    "Fri,": "Fr.,",
    "Sat,": "Sa.,",
    "Sun,": "So.,",
    " Jan ": " Januar ",
    " Feb ": " Februar ",
    " Mar ": " M&auml,rz ",
    " Apr ": " April ",
    " May ": " Mai ",
    " Jun ": " Juni ",
    " Jul ": " Juli ",
    " Aug ": " August ",
    " Sep ": " September ",
    " Oct ": " Oktober ",
    " Nov ": " November ",
    " Dec ": " Dezember ",
    "OPERATED BY ": "Durchgef&uuml,hrt von "
  }
};

/* harmony default export */ __webpack_exports__["a"] = ({
  de
});


/***/ }),
/* 9 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return registerLink; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return printLinksContainer; });
/* unused harmony export printImage */
/* unused harmony export getSidebarContainer */
/* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
/* harmony import */ var _settings_itaSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5);
/* harmony import */ var _settings_translations__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1);






/** @type {{ [key: string]: (() => { url: string, title: string, img?: string, desc?: string, extra?: string, target?: string })[]}} */
const links = {};

__webpack_require__(3);

var skimlinks = document.createElement("script");
skimlinks.setAttribute(
  "src",
  "https://s.skimresources.com/js/122783X1611548.skimlinks.js"
);

/**
 * Registers a link
 * @param {() => { url: string, title: string, img?: string, desc?: string, extra?: string, target?: string }} factory
 */
function registerLink(type, factory) {
  if (!links[type]) links[type] = [];
  links[type].push(factory);
}

function printLinksContainer() {
  // do nothing if editor mode is active
  if (Object(_utils__WEBPACK_IMPORTED_MODULE_3__[/* findtargets */ "d"])("editoritem").length > 0) {
    return false;
  }

  // empty outputcontainer
  const div = getSidebarContainer();
  div.innerHTML = "";

  //  S&D powertool items
  const elems = Object(_utils__WEBPACK_IMPORTED_MODULE_3__[/* findtargets */ "d"])("powertoolsitem");
  for (let i = elems.length - 1; i >= 1; i--) {
    elems[i].parentElement.removeChild(elems[i]);
  }

  const groups = Object.keys(links);
  groups.forEach((group, i) => {
    const groupLinks = links[group]
      .map(link => link())
      .sort((a, b) => {
        return a.title.localeCompare(b.title);
      });
    groupLinks.forEach(link => {
      if (!link) return;

      if (link.img) {
        printImage(link);
      } else if (_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].enableInlineMode == 1) {
        printUrlInline(link);
      } else {
        printUrl(link);
      }
    });

    _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].enableDeviders == 1 &&
      links[group].length &&
      i != groups.length - 1 &&
      printSeperator();
  });

  /*** attach JS events after building link container  ***/
  bindLinkClicks();
}

function bindLinkClicks() {
  if (_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].enableAffiliates == 1) {
    skimlinks.parentNode && skimlinks.parentNode.removeChild(skimlinks);
    document.body.appendChild(skimlinks);
  }
}

// Inline Stuff
function printUrlInline(link) {
  var item = `<li class="powertoolsitem">${printLink(link)}</li>`;
  const container = getSidebarContainer();
  container.insertAdjacentHTML("beforeend", item);
}

function printImage(link) {
  const div = getSidebarContainer();
  const imgLink =
    (link.url
      ? '<a href="' + link.url + '" target="_blank" class="powertoolsitem">'
      : "") +
    '<img src="' +
    link.img +
    '" style="margin-top:10px;"' +
    (!link.url ? ' class="powertoolsitem"' : "") +
    "/>" +
    (link.url ? "</a>" : "");
  if (_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].enableIMGautoload == 1) {
    div.insertAdjacentHTML("beforeend", imgLink);
  } else {
    var id = Math.random().toString();
    div.insertAdjacentHTML(
      "beforeend",
      `<div id="${id}" class="powertoolsitem powertoolsimage"><span>${link.title}</span></div>`
    );

    document.getElementById(id).addEventListener("click", function() {
      this.outerHTML = imgLink;
    });
  }
}

function getSidebarContainer() {
  return (
    document.getElementById("powertoolslinkcontainer") ||
    (_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].enableInlineMode == 1
      ? createUrlContainerInline()
      : createUrlContainer())
  );
}

function createUrlContainerInline() {
  var newdiv = document.createElement("div");
  newdiv.classList.add(_settings_itaSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].resultpage.mcDiv);
  newdiv.classList.add(`powertoolslinkinlinecontainer`);
  newdiv.innerHTML =
    '<div class="' +
    _settings_itaSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].resultpage.mcHeader +
    '">Powertools</div><ul id="powertoolslinkcontainer" class="' +
    _settings_itaSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].resultpage.mcLinkList +
    '"></ul>';
  Object(_utils__WEBPACK_IMPORTED_MODULE_3__[/* findtarget */ "c"])(_settings_itaSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].resultpage.mcDiv, 1).parentElement.appendChild(
    newdiv
  );
  return document.getElementById("powertoolslinkcontainer");
}

// Printing Stuff
function printUrl(link) {
  var item = `<div class="powertoolsitem" style="margin:5px 0px 10px 0px">${printLink(
    link
  )}</div>`;
  const container = getSidebarContainer();
  container.insertAdjacentHTML("beforeend", item);
}

function printLink(link) {
  let html = `<div><label style="font-size:${Number(
    _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].linkFontsize
  )}%;font-weight:600">
    <a href="${link.url}" target=${link.target || "_blank"}>${(_settings_translations__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"][
    _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language
  ] &&
    _settings_translations__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"][_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language]["use"]) ||
    "Use "} ${link.title}</a>
  </label>`;
  if (link.extra) html += link.extra;
  if (link.desc)
    html += `<br/><label style="font-size:${Number(
      _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].linkFontsize
    ) - 15}%">${link.desc}</label>`;
  html += "</div";
  return html;
}

function createUrlContainer() {
  var newdiv = document.createElement("div");
  newdiv.setAttribute("id", "powertoolslinkcontainer");
  newdiv.setAttribute("style", "margin:15px 0px 0px 10px");
  return Object(_utils__WEBPACK_IMPORTED_MODULE_3__[/* findtarget */ "c"])(_settings_itaSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].resultpage.milagecontainer, 1).appendChild(
    newdiv
  );
}

function printSeperator() {
  var container = getSidebarContainer();
  if (container) {
    container.insertAdjacentHTML(
      "beforeend",
      _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].enableInlineMode
        ? '<hr class="powertoolsitem"/>'
        : "<hr/>"
    );
  }
}


/***/ }),
/* 10 */
/***/ (function(module) {

module.exports = JSON.parse("{\"AAA\":\"Pacific/Tahiti\",\"AAB\":\"Australia/Brisbane\",\"AAC\":\"Africa/Cairo\",\"AAD\":\"Africa/Mogadishu\",\"AAE\":\"Africa/Algiers\",\"AAF\":\"America/New_York\",\"AAG\":\"America/Sao_Paulo\",\"AAH\":\"Europe/Berlin\",\"AAI\":\"America/Belem\",\"AAJ\":\"America/Paramaribo\",\"AAK\":\"Pacific/Tarawa\",\"AAL\":\"Europe/Copenhagen\",\"AAM\":\"Africa/Johannesburg\",\"AAN\":\"Asia/Dubai\",\"AAO\":\"America/Caracas\",\"AAP\":\"Asia/Makassar\",\"AAQ\":\"Europe/Moscow\",\"AAR\":\"Europe/Copenhagen\",\"AAS\":\"Asia/Jayapura\",\"AAT\":\"Asia/Shanghai\",\"AAU\":\"Pacific/Apia\",\"AAV\":\"Asia/Manila\",\"AAW\":\"Asia/Karachi\",\"AAX\":\"America/Sao_Paulo\",\"AAY\":\"Asia/Aden\",\"ABA\":\"Asia/Krasnoyarsk\",\"ABB\":\"Africa/Lagos\",\"ABC\":\"Europe/Madrid\",\"ABD\":\"Asia/Tehran\",\"ABE\":\"America/New_York\",\"ABF\":\"Pacific/Tarawa\",\"ABG\":\"Australia/Brisbane\",\"ABH\":\"Australia/Brisbane\",\"ABI\":\"America/Chicago\",\"ABJ\":\"Africa/Abidjan\",\"ABK\":\"Africa/Addis_Ababa\",\"ABL\":\"America/Anchorage\",\"ABM\":\"Australia/Brisbane\",\"ABN\":\"America/Paramaribo\",\"ABO\":\"Africa/Abidjan\",\"ABP\":\"Pacific/Port_Moresby\",\"ABQ\":\"America/Denver\",\"ABR\":\"America/Chicago\",\"ABS\":\"Africa/Cairo\",\"ABT\":\"Asia/Riyadh\",\"ABU\":\"Asia/Makassar\",\"ABV\":\"Africa/Lagos\",\"ABW\":\"Pacific/Port_Moresby\",\"ABX\":\"Australia/Sydney\",\"ABY\":\"America/New_York\",\"ABZ\":\"Europe/London\",\"ACA\":\"America/Mexico_City\",\"ACB\":\"America/New_York\",\"ACC\":\"Africa/Accra\",\"ACD\":\"America/Bogota\",\"ACE\":\"Atlantic/Canary\",\"ACH\":\"Europe/Zurich\",\"ACI\":\"Europe/London\",\"ACJ\":\"Asia/Colombo\",\"ACK\":\"America/New_York\",\"ACL\":\"America/Bogota\",\"ACM\":\"America/Bogota\",\"ACN\":\"America/Matamoros\",\"ACO\":\"Europe/Zurich\",\"ACP\":\"Asia/Tehran\",\"ACR\":\"America/Bogota\",\"ACS\":\"Asia/Krasnoyarsk\",\"ACT\":\"America/Chicago\",\"ACU\":\"America/Panama\",\"ACV\":\"America/Los_Angeles\",\"ACX\":\"Asia/Shanghai\",\"ACY\":\"America/New_York\",\"ACZ\":\"Asia/Tehran\",\"ADA\":\"Europe/Istanbul\",\"ADB\":\"Europe/Istanbul\",\"ADC\":\"Pacific/Port_Moresby\",\"ADD\":\"Africa/Addis_Ababa\",\"ADE\":\"Asia/Aden\",\"ADF\":\"Europe/Istanbul\",\"ADG\":\"America/New_York\",\"ADH\":\"Asia/Yakutsk\",\"ADI\":\"Africa/Windhoek\",\"ADJ\":\"Asia/Amman\",\"ADK\":\"America/Adak\",\"ADL\":\"Australia/Adelaide\",\"ADM\":\"America/Chicago\",\"ADN\":\"America/Bogota\",\"ADO\":\"Australia/Adelaide\",\"ADP\":\"Asia/Colombo\",\"ADQ\":\"America/Anchorage\",\"ADR\":\"America/New_York\",\"ADS\":\"America/Chicago\",\"ADT\":\"America/Chicago\",\"ADU\":\"Asia/Tehran\",\"ADV\":\"Africa/Khartoum\",\"ADW\":\"America/New_York\",\"ADX\":\"Europe/London\",\"ADY\":\"Africa/Johannesburg\",\"ADZ\":\"America/Bogota\",\"AEA\":\"Pacific/Tarawa\",\"AEB\":\"Asia/Shanghai\",\"AED\":\"America/Anchorage\",\"AEE\":\"Africa/Juba\",\"AEG\":\"Asia/Jakarta\",\"AEH\":\"Africa/Ndjamena\",\"AEI\":\"Europe/Madrid\",\"AEK\":\"Pacific/Port_Moresby\",\"AEL\":\"America/Chicago\",\"AEM\":\"Asia/Vladivostok\",\"AEO\":\"Africa/Nouakchott\",\"AEP\":\"America/Argentina/Buenos_Aires\",\"AEQ\":\"Asia/Shanghai\",\"AER\":\"Europe/Moscow\",\"AES\":\"Europe/Oslo\",\"AET\":\"America/Anchorage\",\"AEU\":\"Asia/Tehran\",\"AEX\":\"America/Chicago\",\"AEY\":\"Atlantic/Reykjavik\",\"AFA\":\"America/Argentina/Buenos_Aires\",\"AFD\":\"Africa/Johannesburg\",\"AFF\":\"America/Denver\",\"AFI\":\"America/Bogota\",\"AFL\":\"America/Campo_Grande\",\"AFN\":\"America/New_York\",\"AFO\":\"America/Denver\",\"AFR\":\"Pacific/Port_Moresby\",\"AFS\":\"Asia/Tashkent\",\"AFT\":\"Pacific/Guadalcanal\",\"AFW\":\"America/Chicago\",\"AFY\":\"Europe/Istanbul\",\"AFZ\":\"Asia/Tehran\",\"AGA\":\"Africa/Casablanca\",\"AGB\":\"Europe/Berlin\",\"AGC\":\"America/New_York\",\"AGD\":\"Asia/Jayapura\",\"AGE\":\"Europe/Berlin\",\"AGF\":\"Europe/Paris\",\"AGG\":\"Pacific/Port_Moresby\",\"AGH\":\"Europe/Stockholm\",\"AGI\":\"America/Paramaribo\",\"AGJ\":\"Asia/Tokyo\",\"AGK\":\"Pacific/Port_Moresby\",\"AGL\":\"Pacific/Port_Moresby\",\"AGM\":\"America/Godthab\",\"AGN\":\"America/Anchorage\",\"AGO\":\"America/Chicago\",\"AGP\":\"Europe/Madrid\",\"AGQ\":\"Europe/Athens\",\"AGR\":\"Asia/Kolkata\",\"AGS\":\"America/New_York\",\"AGT\":\"America/Asuncion\",\"AGU\":\"America/Mexico_City\",\"AGV\":\"America/Caracas\",\"AGW\":\"Australia/Brisbane\",\"AGX\":\"Asia/Kolkata\",\"AGY\":\"Australia/Perth\",\"AGZ\":\"Africa/Johannesburg\",\"AHA\":\"Asia/Tokyo\",\"AHB\":\"Asia/Riyadh\",\"AHC\":\"America/Los_Angeles\",\"AHD\":\"America/Chicago\",\"AHE\":\"Pacific/Tahiti\",\"AHF\":\"America/Chicago\",\"AHH\":\"America/Chicago\",\"AHI\":\"Asia/Jayapura\",\"AHJ\":\"Asia/Shanghai\",\"AHL\":\"America/Guyana\",\"AHN\":\"America/New_York\",\"AHO\":\"Europe/Rome\",\"AHS\":\"America/Tegucigalpa\",\"AHT\":\"America/Adak\",\"AHU\":\"Africa/Casablanca\",\"AHY\":\"Indian/Antananarivo\",\"AHZ\":\"Europe/Paris\",\"AIA\":\"America/Denver\",\"AIB\":\"America/Anchorage\",\"AIC\":\"Pacific/Majuro\",\"AID\":\"America/Indiana/Indianapolis\",\"AIE\":\"Pacific/Port_Moresby\",\"AIF\":\"America/Sao_Paulo\",\"AIG\":\"Africa/Bangui\",\"AIH\":\"Pacific/Port_Moresby\",\"AII\":\"Africa/Djibouti\",\"AIK\":\"America/New_York\",\"AIL\":\"America/Panama\",\"AIM\":\"Pacific/Majuro\",\"AIN\":\"America/Anchorage\",\"AIO\":\"America/Chicago\",\"AIP\":\"Asia/Kolkata\",\"AIR\":\"America/Campo_Grande\",\"AIS\":\"Pacific/Tarawa\",\"AIT\":\"Pacific/Rarotonga\",\"AIU\":\"Pacific/Rarotonga\",\"AIV\":\"America/Chicago\",\"AIW\":\"Africa/Windhoek\",\"AIY\":\"America/New_York\",\"AIZ\":\"America/Chicago\",\"AJA\":\"Europe/Paris\",\"AJF\":\"Asia/Riyadh\",\"AJI\":\"Europe/Istanbul\",\"AJJ\":\"Africa/Nouakchott\",\"AJK\":\"Asia/Tehran\",\"AJL\":\"Asia/Kolkata\",\"AJN\":\"Indian/Comoro\",\"AJO\":\"Asia/Aden\",\"AJR\":\"Europe/Stockholm\",\"AJS\":\"America/Tijuana\",\"AJU\":\"America/Belem\",\"AJY\":\"Africa/Niamey\",\"AKA\":\"Asia/Shanghai\",\"AKB\":\"America/Adak\",\"AKC\":\"America/New_York\",\"AKD\":\"Asia/Kolkata\",\"AKE\":\"Africa/Libreville\",\"AKF\":\"Africa/Tripoli\",\"AKG\":\"Pacific/Port_Moresby\",\"AKH\":\"Asia/Riyadh\",\"AKI\":\"America/Anchorage\",\"AKJ\":\"Asia/Tokyo\",\"AKK\":\"America/Anchorage\",\"AKL\":\"Pacific/Auckland\",\"AKM\":\"Africa/Ndjamena\",\"AKN\":\"America/Anchorage\",\"AKO\":\"America/Denver\",\"AKP\":\"America/Anchorage\",\"AKQ\":\"Asia/Jakarta\",\"AKR\":\"Africa/Lagos\",\"AKS\":\"Pacific/Guadalcanal\",\"AKT\":\"Asia/Nicosia\",\"AKU\":\"Asia/Shanghai\",\"AKV\":\"America/Toronto\",\"AKW\":\"Asia/Tehran\",\"AKX\":\"Asia/Aqtobe\",\"AKY\":\"Asia/Yangon\",\"ALA\":\"Asia/Almaty\",\"ALB\":\"America/New_York\",\"ALC\":\"Europe/Madrid\",\"ALD\":\"America/Lima\",\"ALE\":\"America/Chicago\",\"ALF\":\"Europe/Oslo\",\"ALG\":\"Africa/Algiers\",\"ALH\":\"Australia/Perth\",\"ALI\":\"America/Chicago\",\"ALJ\":\"Africa/Johannesburg\",\"ALK\":\"Africa/Addis_Ababa\",\"ALL\":\"Europe/Rome\",\"ALM\":\"America/Denver\",\"ALN\":\"America/Chicago\",\"ALO\":\"America/Chicago\",\"ALP\":\"Asia/Damascus\",\"ALQ\":\"America/Sao_Paulo\",\"ALR\":\"Pacific/Auckland\",\"ALS\":\"America/Denver\",\"ALT\":\"America/Porto_Velho\",\"ALU\":\"Africa/Mogadishu\",\"ALV\":\"Europe/Andorra\",\"ALW\":\"America/Los_Angeles\",\"ALX\":\"America/Chicago\",\"ALY\":\"Africa/Cairo\",\"ALZ\":\"America/Anchorage\",\"AMA\":\"America/Chicago\",\"AMB\":\"Indian/Antananarivo\",\"AMC\":\"Africa/Ndjamena\",\"AMD\":\"Asia/Kolkata\",\"AME\":\"Africa/Maputo\",\"AMF\":\"Pacific/Port_Moresby\",\"AMG\":\"Pacific/Port_Moresby\",\"AMH\":\"Africa/Addis_Ababa\",\"AMI\":\"Asia/Makassar\",\"AMJ\":\"America/Sao_Paulo\",\"AMK\":\"America/Denver\",\"AML\":\"America/Panama\",\"AMM\":\"Asia/Amman\",\"AMN\":\"America/New_York\",\"AMO\":\"Africa/Ndjamena\",\"AMP\":\"Indian/Antananarivo\",\"AMQ\":\"Asia/Jayapura\",\"AMR\":\"Europe/Madrid\",\"AMS\":\"Europe/Amsterdam\",\"AMT\":\"Australia/Darwin\",\"AMU\":\"Pacific/Port_Moresby\",\"AMV\":\"Europe/Moscow\",\"AMW\":\"America/Chicago\",\"AMX\":\"Australia/Darwin\",\"AMY\":\"Indian/Antananarivo\",\"AMZ\":\"Pacific/Auckland\",\"ANA\":\"Africa/Nairobi\",\"ANB\":\"America/Chicago\",\"ANC\":\"America/Anchorage\",\"AND\":\"America/New_York\",\"ANE\":\"Europe/Paris\",\"ANF\":\"America/Santiago\",\"ANG\":\"Europe/Paris\",\"ANH\":\"Pacific/Guadalcanal\",\"ANI\":\"America/Anchorage\",\"ANJ\":\"Africa/Brazzaville\",\"ANK\":\"Europe/Istanbul\",\"ANL\":\"Africa/Luanda\",\"ANM\":\"Indian/Antananarivo\",\"ANN\":\"America/Anchorage\",\"ANO\":\"Africa/Maputo\",\"ANP\":\"America/New_York\",\"ANQ\":\"America/Indiana/Indianapolis\",\"ANR\":\"Europe/Brussels\",\"ANS\":\"America/Lima\",\"ANT\":\"Europe/Vienna\",\"ANU\":\"America/Antigua\",\"ANV\":\"America/Anchorage\",\"ANW\":\"America/Chicago\",\"ANX\":\"Europe/Oslo\",\"ANY\":\"America/Chicago\",\"ANZ\":\"Australia/Darwin\",\"AOA\":\"Pacific/Port_Moresby\",\"AOB\":\"Pacific/Port_Moresby\",\"AOC\":\"Europe/Berlin\",\"AOD\":\"Africa/Ndjamena\",\"AOE\":\"Europe/Istanbul\",\"AOG\":\"Asia/Shanghai\",\"AOH\":\"America/New_York\",\"AOI\":\"Europe/Rome\",\"AOJ\":\"Asia/Tokyo\",\"AOK\":\"Europe/Athens\",\"AOL\":\"America/Argentina/Buenos_Aires\",\"AOM\":\"Asia/Muscat\",\"AON\":\"Pacific/Port_Moresby\",\"AOO\":\"America/New_York\",\"AOP\":\"America/Lima\",\"AOQ\":\"America/Godthab\",\"AOR\":\"Asia/Kuala_Lumpur\",\"AOS\":\"America/Anchorage\",\"AOT\":\"Europe/Rome\",\"AOU\":\"Asia/Vientiane\",\"AOY\":\"Asia/Tehran\",\"APA\":\"America/Denver\",\"APB\":\"America/La_Paz\",\"APC\":\"America/Los_Angeles\",\"APE\":\"America/Lima\",\"APF\":\"America/New_York\",\"APG\":\"America/New_York\",\"APH\":\"America/New_York\",\"API\":\"America/Bogota\",\"APK\":\"Pacific/Tahiti\",\"APL\":\"Africa/Maputo\",\"APN\":\"America/New_York\",\"APO\":\"America/Bogota\",\"APP\":\"Pacific/Port_Moresby\",\"APQ\":\"America/Belem\",\"APR\":\"Pacific/Port_Moresby\",\"APS\":\"America/Sao_Paulo\",\"APT\":\"America/Chicago\",\"APU\":\"America/Sao_Paulo\",\"APV\":\"America/Los_Angeles\",\"APW\":\"Pacific/Apia\",\"APX\":\"America/Sao_Paulo\",\"APY\":\"America/Belem\",\"APZ\":\"America/Argentina/Buenos_Aires\",\"AQA\":\"America/Sao_Paulo\",\"AQG\":\"Asia/Shanghai\",\"AQI\":\"Asia/Riyadh\",\"AQJ\":\"Asia/Amman\",\"AQM\":\"America/Porto_Velho\",\"AQP\":\"America/Lima\",\"AQS\":\"Pacific/Fiji\",\"AQY\":\"America/Anchorage\",\"ARA\":\"America/Chicago\",\"ARB\":\"America/New_York\",\"ARC\":\"America/Anchorage\",\"ARD\":\"Asia/Makassar\",\"ARE\":\"America/Puerto_Rico\",\"ARF\":\"America/Bogota\",\"ARG\":\"America/Chicago\",\"ARH\":\"Europe/Moscow\",\"ARI\":\"America/Santiago\",\"ARJ\":\"Asia/Jayapura\",\"ARK\":\"Africa/Dar_es_Salaam\",\"ARL\":\"Africa/Ouagadougou\",\"ARM\":\"Australia/Sydney\",\"ARN\":\"Europe/Stockholm\",\"ARO\":\"America/Bogota\",\"ARP\":\"Pacific/Port_Moresby\",\"ARQ\":\"America/Bogota\",\"ARR\":\"America/Argentina/Buenos_Aires\",\"ARS\":\"America/Sao_Paulo\",\"ART\":\"America/New_York\",\"ARU\":\"America/Sao_Paulo\",\"ARV\":\"America/Chicago\",\"ARW\":\"Europe/Bucharest\",\"ARX\":\"America/Belem\",\"ARY\":\"Australia/Sydney\",\"ARZ\":\"Africa/Luanda\",\"ASA\":\"Africa/Asmara\",\"ASB\":\"Asia/Ashgabat\",\"ASC\":\"America/La_Paz\",\"ASD\":\"America/Nassau\",\"ASE\":\"America/Denver\",\"ASF\":\"Europe/Samara\",\"ASG\":\"Pacific/Auckland\",\"ASH\":\"America/New_York\",\"ASI\":\"Atlantic/St_Helena\",\"ASJ\":\"Asia/Tokyo\",\"ASK\":\"Africa/Abidjan\",\"ASL\":\"America/Chicago\",\"ASM\":\"Africa/Asmara\",\"ASN\":\"America/Chicago\",\"ASO\":\"Africa/Addis_Ababa\",\"ASP\":\"Australia/Darwin\",\"ASQ\":\"America/Los_Angeles\",\"ASR\":\"Europe/Istanbul\",\"ASS\":\"Africa/Johannesburg\",\"AST\":\"America/Los_Angeles\",\"ASU\":\"America/Asuncion\",\"ASV\":\"Africa/Nairobi\",\"ASW\":\"Africa/Cairo\",\"ASX\":\"America/Chicago\",\"ASY\":\"America/Chicago\",\"ASZ\":\"Pacific/Port_Moresby\",\"ATA\":\"America/Lima\",\"ATB\":\"Africa/Khartoum\",\"ATC\":\"America/Nassau\",\"ATD\":\"Pacific/Guadalcanal\",\"ATE\":\"America/Chicago\",\"ATF\":\"America/Guayaquil\",\"ATG\":\"Asia/Karachi\",\"ATH\":\"Europe/Athens\",\"ATI\":\"America/Montevideo\",\"ATJ\":\"Indian/Antananarivo\",\"ATK\":\"America/Anchorage\",\"ATL\":\"America/New_York\",\"ATM\":\"America/Belem\",\"ATN\":\"Pacific/Port_Moresby\",\"ATO\":\"America/New_York\",\"ATP\":\"Pacific/Port_Moresby\",\"ATQ\":\"Asia/Kolkata\",\"ATR\":\"Africa/Nouakchott\",\"ATS\":\"America/Denver\",\"ATT\":\"America/Anchorage\",\"ATU\":\"America/Adak\",\"ATV\":\"Africa/Ndjamena\",\"ATW\":\"America/Chicago\",\"ATX\":\"Asia/Almaty\",\"ATY\":\"America/Chicago\",\"ATZ\":\"Africa/Cairo\",\"AUA\":\"America/Aruba\",\"AUB\":\"America/Campo_Grande\",\"AUC\":\"America/Bogota\",\"AUD\":\"Australia/Brisbane\",\"AUE\":\"Africa/Cairo\",\"AUF\":\"Europe/Paris\",\"AUG\":\"America/New_York\",\"AUH\":\"Asia/Dubai\",\"AUI\":\"Pacific/Port_Moresby\",\"AUJ\":\"Pacific/Port_Moresby\",\"AUK\":\"America/Anchorage\",\"AUL\":\"Pacific/Majuro\",\"AUM\":\"America/Chicago\",\"AUN\":\"America/Los_Angeles\",\"AUO\":\"America/Chicago\",\"AUP\":\"Pacific/Port_Moresby\",\"AUQ\":\"Pacific/Marquesas\",\"AUR\":\"Europe/Paris\",\"AUS\":\"America/Chicago\",\"AUT\":\"Asia/Jayapura\",\"AUU\":\"Australia/Brisbane\",\"AUV\":\"Pacific/Port_Moresby\",\"AUW\":\"America/Chicago\",\"AUX\":\"America/Belem\",\"AUY\":\"Pacific/Efate\",\"AUZ\":\"America/Chicago\",\"AVA\":\"Asia/Shanghai\",\"AVB\":\"Europe/Rome\",\"AVF\":\"Europe/Paris\",\"AVG\":\"Australia/Darwin\",\"AVI\":\"America/Havana\",\"AVK\":\"Asia/Ulaanbaatar\",\"AVL\":\"America/New_York\",\"AVN\":\"Europe/Paris\",\"AVO\":\"America/New_York\",\"AVP\":\"America/New_York\",\"AVR\":\"Europe/Lisbon\",\"AVU\":\"Pacific/Guadalcanal\",\"AVV\":\"Australia/Sydney\",\"AVW\":\"America/Phoenix\",\"AVX\":\"America/Los_Angeles\",\"AWA\":\"Africa/Addis_Ababa\",\"AWB\":\"Pacific/Port_Moresby\",\"AWD\":\"Pacific/Efate\",\"AWE\":\"Africa/Libreville\",\"AWH\":\"Africa/Addis_Ababa\",\"AWK\":\"Pacific/Wake\",\"AWM\":\"America/Chicago\",\"AWN\":\"Australia/Adelaide\",\"AWP\":\"Australia/Darwin\",\"AWR\":\"Pacific/Port_Moresby\",\"AWT\":\"Asia/Kolkata\",\"AWZ\":\"Asia/Tehran\",\"AXA\":\"America/Anguilla\",\"AXB\":\"America/New_York\",\"AXC\":\"Australia/Brisbane\",\"AXD\":\"Europe/Athens\",\"AXE\":\"America/Sao_Paulo\",\"AXF\":\"Asia/Shanghai\",\"AXG\":\"America/Chicago\",\"AXJ\":\"Asia/Tokyo\",\"AXK\":\"Asia/Aden\",\"AXL\":\"Australia/Darwin\",\"AXM\":\"America/Bogota\",\"AXN\":\"America/Chicago\",\"AXP\":\"America/Nassau\",\"AXR\":\"Pacific/Tahiti\",\"AXS\":\"America/Chicago\",\"AXT\":\"Asia/Tokyo\",\"AXU\":\"Africa/Addis_Ababa\",\"AXV\":\"America/New_York\",\"AXX\":\"America/Denver\",\"AYA\":\"America/Bogota\",\"AYC\":\"America/Bogota\",\"AYD\":\"Australia/Darwin\",\"AYE\":\"America/New_York\",\"AYG\":\"America/Bogota\",\"AYH\":\"Europe/London\",\"AYI\":\"America/Bogota\",\"AYK\":\"Asia/Qostanay\",\"AYL\":\"Australia/Darwin\",\"AYN\":\"Asia/Shanghai\",\"AYO\":\"America/Asuncion\",\"AYP\":\"America/Lima\",\"AYQ\":\"Australia/Darwin\",\"AYR\":\"Australia/Brisbane\",\"AYS\":\"America/New_York\",\"AYT\":\"Europe/Istanbul\",\"AYU\":\"Pacific/Port_Moresby\",\"AYW\":\"Asia/Jayapura\",\"AYX\":\"America/Lima\",\"AYZ\":\"America/New_York\",\"AZA\":\"America/Phoenix\",\"AZB\":\"Pacific/Port_Moresby\",\"AZD\":\"Asia/Tehran\",\"AZG\":\"America/Mexico_City\",\"AZI\":\"Asia/Dubai\",\"AZN\":\"Asia/Tashkent\",\"AZO\":\"America/New_York\",\"AZP\":\"America/Mexico_City\",\"AZR\":\"Africa/Algiers\",\"AZS\":\"America/Santo_Domingo\",\"AZT\":\"America/Bogota\",\"AZZ\":\"Africa/Luanda\",\"BAA\":\"Pacific/Port_Moresby\",\"BAB\":\"America/Los_Angeles\",\"BAC\":\"America/Bogota\",\"BAD\":\"America/Chicago\",\"BAE\":\"Europe/Paris\",\"BAF\":\"America/New_York\",\"BAG\":\"Asia/Manila\",\"BAH\":\"Asia/Bahrain\",\"BAI\":\"America/Costa_Rica\",\"BAJ\":\"Pacific/Port_Moresby\",\"BAK\":\"Asia/Baku\",\"BAL\":\"Europe/Istanbul\",\"BAM\":\"America/Los_Angeles\",\"BAN\":\"Africa/Lubumbashi\",\"BAP\":\"Pacific/Port_Moresby\",\"BAQ\":\"America/Bogota\",\"BAR\":\"Asia/Shanghai\",\"BAS\":\"Pacific/Guadalcanal\",\"BAT\":\"America/Sao_Paulo\",\"BAV\":\"Asia/Shanghai\",\"BAW\":\"Africa/Libreville\",\"BAX\":\"Asia/Krasnoyarsk\",\"BAY\":\"Europe/Bucharest\",\"BAZ\":\"America/Porto_Velho\",\"BBA\":\"America/Santiago\",\"BBB\":\"America/Chicago\",\"BBC\":\"America/Chicago\",\"BBD\":\"America/Chicago\",\"BBE\":\"Australia/Perth\",\"BBF\":\"America/New_York\",\"BBG\":\"Pacific/Tarawa\",\"BBH\":\"Europe/Berlin\",\"BBI\":\"Asia/Kolkata\",\"BBJ\":\"Europe/Berlin\",\"BBK\":\"Africa/Gaborone\",\"BBL\":\"Australia/Brisbane\",\"BBM\":\"Asia/Phnom_Penh\",\"BBN\":\"Asia/Kuala_Lumpur\",\"BBO\":\"Africa/Mogadishu\",\"BBP\":\"Europe/London\",\"BBQ\":\"America/Antigua\",\"BBR\":\"America/Guadeloupe\",\"BBS\":\"Europe/London\",\"BBT\":\"Africa/Bangui\",\"BBU\":\"Europe/Bucharest\",\"BBV\":\"Africa/Abidjan\",\"BBW\":\"America/Chicago\",\"BBX\":\"America/New_York\",\"BBY\":\"Africa/Bangui\",\"BBZ\":\"Africa/Lusaka\",\"BCA\":\"America/Havana\",\"BCB\":\"America/New_York\",\"BCC\":\"America/Anchorage\",\"BCD\":\"Asia/Manila\",\"BCE\":\"America/Denver\",\"BCF\":\"Africa/Bangui\",\"BCG\":\"America/Guyana\",\"BCH\":\"Asia/Jayapura\",\"BCI\":\"Australia/Brisbane\",\"BCJ\":\"America/Denver\",\"BCK\":\"Australia/Brisbane\",\"BCL\":\"America/Costa_Rica\",\"BCM\":\"Europe/Bucharest\",\"BCN\":\"Europe/Madrid\",\"BCO\":\"Africa/Addis_Ababa\",\"BCP\":\"Pacific/Port_Moresby\",\"BCQ\":\"Africa/Tripoli\",\"BCR\":\"America/Porto_Velho\",\"BCS\":\"America/Chicago\",\"BCT\":\"America/New_York\",\"BCU\":\"Africa/Lagos\",\"BCV\":\"America/Belize\",\"BCW\":\"Africa/Maputo\",\"BCX\":\"Asia/Yekaterinburg\",\"BCY\":\"Africa/Addis_Ababa\",\"BCZ\":\"Australia/Darwin\",\"BDA\":\"Atlantic/Bermuda\",\"BDB\":\"Australia/Brisbane\",\"BDC\":\"America/Belem\",\"BDD\":\"Australia/Brisbane\",\"BDE\":\"America/Chicago\",\"BDF\":\"America/Chicago\",\"BDG\":\"America/Denver\",\"BDH\":\"Asia/Tehran\",\"BDI\":\"Indian/Mahe\",\"BDJ\":\"Asia/Makassar\",\"BDK\":\"Africa/Abidjan\",\"BDL\":\"America/New_York\",\"BDM\":\"Europe/Istanbul\",\"BDN\":\"Asia/Karachi\",\"BDO\":\"Asia/Jakarta\",\"BDP\":\"Asia/Kathmandu\",\"BDQ\":\"Asia/Kolkata\",\"BDR\":\"America/New_York\",\"BDS\":\"Europe/Rome\",\"BDT\":\"Africa/Kinshasa\",\"BDU\":\"Europe/Oslo\",\"BDV\":\"Africa/Lubumbashi\",\"BDW\":\"Australia/Perth\",\"BDX\":\"America/Denver\",\"BDY\":\"America/Los_Angeles\",\"BDZ\":\"Pacific/Port_Moresby\",\"BEA\":\"Pacific/Port_Moresby\",\"BEB\":\"Europe/London\",\"BEC\":\"America/Chicago\",\"BED\":\"America/New_York\",\"BEE\":\"Australia/Perth\",\"BEF\":\"America/Managua\",\"BEG\":\"Europe/Belgrade\",\"BEH\":\"America/New_York\",\"BEI\":\"Africa/Addis_Ababa\",\"BEJ\":\"Asia/Makassar\",\"BEK\":\"Asia/Kolkata\",\"BEL\":\"America/Belem\",\"BEM\":\"Africa/Casablanca\",\"BEN\":\"Africa/Tripoli\",\"BEO\":\"Australia/Sydney\",\"BEP\":\"Asia/Kolkata\",\"BEQ\":\"Europe/London\",\"BES\":\"Europe/Paris\",\"BET\":\"America/Anchorage\",\"BEU\":\"Australia/Brisbane\",\"BEV\":\"Asia/Jerusalem\",\"BEW\":\"Africa/Maputo\",\"BEX\":\"Europe/London\",\"BEY\":\"Asia/Beirut\",\"BEZ\":\"Pacific/Tarawa\",\"BFA\":\"America/Asuncion\",\"BFB\":\"America/Anchorage\",\"BFC\":\"Australia/Brisbane\",\"BFD\":\"America/New_York\",\"BFE\":\"Europe/Berlin\",\"BFF\":\"America/Denver\",\"BFG\":\"America/Denver\",\"BFH\":\"America/Sao_Paulo\",\"BFI\":\"America/Los_Angeles\",\"BFJ\":\"Asia/Shanghai\",\"BFK\":\"America/Denver\",\"BFL\":\"America/Los_Angeles\",\"BFM\":\"America/Chicago\",\"BFN\":\"Africa/Johannesburg\",\"BFO\":\"Africa/Harare\",\"BFP\":\"America/New_York\",\"BFQ\":\"America/Panama\",\"BFR\":\"America/Indiana/Indianapolis\",\"BFS\":\"Europe/London\",\"BFT\":\"America/New_York\",\"BFU\":\"Asia/Shanghai\",\"BFV\":\"Asia/Bangkok\",\"BFW\":\"Africa/Algiers\",\"BFX\":\"Africa/Douala\",\"BGA\":\"America/Bogota\",\"BGB\":\"Africa/Libreville\",\"BGC\":\"Europe/Lisbon\",\"BGD\":\"America/Chicago\",\"BGE\":\"America/New_York\",\"BGF\":\"Africa/Bangui\",\"BGG\":\"Europe/Istanbul\",\"BGH\":\"Africa/Nouakchott\",\"BGI\":\"America/Barbados\",\"BGJ\":\"Atlantic/Reykjavik\",\"BGK\":\"America/Belize\",\"BGL\":\"Asia/Kathmandu\",\"BGM\":\"America/New_York\",\"BGN\":\"Asia/Magadan\",\"BGO\":\"Europe/Oslo\",\"BGP\":\"Africa/Libreville\",\"BGQ\":\"America/Anchorage\",\"BGR\":\"America/New_York\",\"BGS\":\"America/Chicago\",\"BGT\":\"America/Phoenix\",\"BGU\":\"Africa/Bangui\",\"BGV\":\"America/Sao_Paulo\",\"BGW\":\"Asia/Baghdad\",\"BGX\":\"America/Sao_Paulo\",\"BGY\":\"Europe/Rome\",\"BGZ\":\"Europe/Lisbon\",\"BHA\":\"America/Guayaquil\",\"BHB\":\"America/New_York\",\"BHC\":\"Asia/Karachi\",\"BHD\":\"Europe/London\",\"BHE\":\"Pacific/Auckland\",\"BHF\":\"America/Bogota\",\"BHG\":\"America/Tegucigalpa\",\"BHH\":\"Asia/Riyadh\",\"BHI\":\"America/Argentina/Buenos_Aires\",\"BHJ\":\"Asia/Kolkata\",\"BHK\":\"Asia/Tashkent\",\"BHL\":\"America/Tijuana\",\"BHM\":\"America/Chicago\",\"BHN\":\"Asia/Aden\",\"BHO\":\"Asia/Kolkata\",\"BHP\":\"Asia/Kathmandu\",\"BHQ\":\"Australia/Adelaide\",\"BHR\":\"Asia/Kathmandu\",\"BHS\":\"Australia/Sydney\",\"BHT\":\"Australia/Brisbane\",\"BHU\":\"Asia/Kolkata\",\"BHV\":\"Asia/Karachi\",\"BHW\":\"Asia/Karachi\",\"BHX\":\"Europe/London\",\"BHY\":\"Asia/Shanghai\",\"BIA\":\"Europe/Paris\",\"BIB\":\"Africa/Mogadishu\",\"BIC\":\"America/Anchorage\",\"BID\":\"America/New_York\",\"BIE\":\"America/Chicago\",\"BIF\":\"America/Denver\",\"BIG\":\"America/Anchorage\",\"BIH\":\"America/Los_Angeles\",\"BII\":\"Pacific/Majuro\",\"BIJ\":\"Pacific/Port_Moresby\",\"BIK\":\"Asia/Jayapura\",\"BIL\":\"America/Denver\",\"BIM\":\"America/Nassau\",\"BIN\":\"Asia/Kabul\",\"BIO\":\"Europe/Madrid\",\"BIP\":\"Australia/Brisbane\",\"BIQ\":\"Europe/Paris\",\"BIR\":\"Asia/Kathmandu\",\"BIS\":\"America/Chicago\",\"BIT\":\"Asia/Kathmandu\",\"BIU\":\"Atlantic/Reykjavik\",\"BIV\":\"Africa/Bangui\",\"BIW\":\"Australia/Perth\",\"BIX\":\"America/Chicago\",\"BIY\":\"Africa/Johannesburg\",\"BIZ\":\"Pacific/Port_Moresby\",\"BJA\":\"Africa/Algiers\",\"BJB\":\"Asia/Tehran\",\"BJC\":\"America/Denver\",\"BJD\":\"Atlantic/Reykjavik\",\"BJE\":\"Africa/Khartoum\",\"BJF\":\"Europe/Oslo\",\"BJG\":\"Asia/Makassar\",\"BJH\":\"Asia/Kathmandu\",\"BJI\":\"America/Chicago\",\"BJJ\":\"America/New_York\",\"BJK\":\"Asia/Jayapura\",\"BJL\":\"Africa/Banjul\",\"BJM\":\"Africa/Bujumbura\",\"BJN\":\"Africa/Maputo\",\"BJO\":\"America/La_Paz\",\"BJP\":\"America/Sao_Paulo\",\"BJQ\":\"Asia/Muscat\",\"BJR\":\"Africa/Addis_Ababa\",\"BJT\":\"Asia/Colombo\",\"BJU\":\"Asia/Kathmandu\",\"BJV\":\"Europe/Istanbul\",\"BJW\":\"Asia/Makassar\",\"BJX\":\"America/Mexico_City\",\"BJY\":\"Europe/Belgrade\",\"BJZ\":\"Europe/Madrid\",\"BKB\":\"Asia/Kolkata\",\"BKC\":\"America/Anchorage\",\"BKD\":\"America/Chicago\",\"BKE\":\"America/Los_Angeles\",\"BKF\":\"America/Anchorage\",\"BKG\":\"America/Chicago\",\"BKH\":\"Pacific/Honolulu\",\"BKI\":\"Asia/Kuala_Lumpur\",\"BKJ\":\"Africa/Conakry\",\"BKK\":\"Asia/Bangkok\",\"BKL\":\"America/New_York\",\"BKM\":\"Asia/Kuala_Lumpur\",\"BKN\":\"Asia/Ashgabat\",\"BKO\":\"Africa/Bamako\",\"BKP\":\"Australia/Brisbane\",\"BKQ\":\"Australia/Brisbane\",\"BKR\":\"Africa/Ndjamena\",\"BKS\":\"Asia/Jakarta\",\"BKT\":\"America/New_York\",\"BKU\":\"Indian/Antananarivo\",\"BKV\":\"Asia/Shanghai\",\"BKW\":\"America/New_York\",\"BKX\":\"America/Chicago\",\"BKY\":\"Africa/Lubumbashi\",\"BKZ\":\"Africa/Dar_es_Salaam\",\"BLA\":\"America/Caracas\",\"BLB\":\"America/Panama\",\"BLC\":\"Africa/Douala\",\"BLD\":\"America/Los_Angeles\",\"BLE\":\"Europe/Stockholm\",\"BLF\":\"America/New_York\",\"BLG\":\"Asia/Kuala_Lumpur\",\"BLH\":\"America/Los_Angeles\",\"BLI\":\"America/Los_Angeles\",\"BLJ\":\"Africa/Algiers\",\"BLK\":\"Europe/London\",\"BLL\":\"Europe/Copenhagen\",\"BLM\":\"America/New_York\",\"BLN\":\"Australia/Sydney\",\"BLO\":\"Atlantic/Reykjavik\",\"BLP\":\"America/Lima\",\"BLQ\":\"Europe/Rome\",\"BLR\":\"Asia/Kolkata\",\"BLS\":\"Australia/Brisbane\",\"BLT\":\"Australia/Brisbane\",\"BLU\":\"America/Los_Angeles\",\"BLV\":\"America/Chicago\",\"BLW\":\"Africa/Mogadishu\",\"BLX\":\"Europe/Rome\",\"BLY\":\"Europe/Dublin\",\"BLZ\":\"Africa/Blantyre\",\"BMA\":\"Europe/Stockholm\",\"BMB\":\"Africa/Kinshasa\",\"BMC\":\"America/Denver\",\"BMD\":\"Indian/Antananarivo\",\"BME\":\"Australia/Perth\",\"BMF\":\"Africa/Bangui\",\"BMG\":\"America/Indiana/Indianapolis\",\"BMH\":\"Pacific/Port_Moresby\",\"BMI\":\"America/Chicago\",\"BMJ\":\"America/Guyana\",\"BMK\":\"Europe/Berlin\",\"BML\":\"America/New_York\",\"BMM\":\"Africa/Libreville\",\"BMN\":\"Asia/Baghdad\",\"BMO\":\"Asia/Yangon\",\"BMP\":\"Australia/Brisbane\",\"BMQ\":\"Africa/Nairobi\",\"BMR\":\"Europe/Berlin\",\"BMS\":\"America/Belem\",\"BMT\":\"America/Chicago\",\"BMU\":\"Asia/Makassar\",\"BMV\":\"Asia/Ho_Chi_Minh\",\"BMW\":\"Africa/Algiers\",\"BMX\":\"America/Anchorage\",\"BMY\":\"Pacific/Noumea\",\"BMZ\":\"Pacific/Port_Moresby\",\"BNA\":\"America/Chicago\",\"BNB\":\"Africa/Kinshasa\",\"BNC\":\"Africa/Lubumbashi\",\"BND\":\"Asia/Tehran\",\"BNE\":\"Australia/Brisbane\",\"BNF\":\"America/Anchorage\",\"BNG\":\"America/Los_Angeles\",\"BNH\":\"America/New_York\",\"BNI\":\"Africa/Lagos\",\"BNK\":\"Australia/Sydney\",\"BNL\":\"America/New_York\",\"BNM\":\"Pacific/Port_Moresby\",\"BNN\":\"Europe/Oslo\",\"BNO\":\"America/Los_Angeles\",\"BNP\":\"Asia/Karachi\",\"BNQ\":\"Asia/Manila\",\"BNR\":\"Africa/Ouagadougou\",\"BNS\":\"America/Caracas\",\"BNT\":\"Pacific/Port_Moresby\",\"BNU\":\"America/Sao_Paulo\",\"BNV\":\"Pacific/Port_Moresby\",\"BNW\":\"America/Chicago\",\"BNX\":\"Europe/Sarajevo\",\"BNY\":\"Pacific/Guadalcanal\",\"BNZ\":\"Pacific/Port_Moresby\",\"BOA\":\"Africa/Kinshasa\",\"BOB\":\"Pacific/Tahiti\",\"BOC\":\"America/Panama\",\"BOD\":\"Europe/Paris\",\"BOE\":\"Africa/Brazzaville\",\"BOF\":\"America/New_York\",\"BOG\":\"America/Bogota\",\"BOH\":\"Europe/London\",\"BOI\":\"America/Denver\",\"BOJ\":\"Europe/Sofia\",\"BOK\":\"America/Los_Angeles\",\"BOL\":\"Europe/London\",\"BOM\":\"Asia/Kolkata\",\"BON\":\"America/Curacao\",\"BOO\":\"Europe/Oslo\",\"BOP\":\"Africa/Bangui\",\"BOQ\":\"Pacific/Port_Moresby\",\"BOR\":\"Europe/Paris\",\"BOS\":\"America/New_York\",\"BOT\":\"Pacific/Port_Moresby\",\"BOU\":\"Europe/Paris\",\"BOV\":\"Pacific/Port_Moresby\",\"BOW\":\"America/New_York\",\"BOX\":\"Australia/Darwin\",\"BOY\":\"Africa/Ouagadougou\",\"BOZ\":\"Africa/Bangui\",\"BPA\":\"America/New_York\",\"BPB\":\"Pacific/Port_Moresby\",\"BPC\":\"Africa/Douala\",\"BPD\":\"Pacific/Port_Moresby\",\"BPE\":\"Asia/Shanghai\",\"BPF\":\"Pacific/Guadalcanal\",\"BPG\":\"America/Campo_Grande\",\"BPH\":\"Asia/Manila\",\"BPI\":\"America/Denver\",\"BPK\":\"Pacific/Port_Moresby\",\"BPL\":\"Asia/Shanghai\",\"BPN\":\"Asia/Makassar\",\"BPS\":\"America/Belem\",\"BPT\":\"America/Chicago\",\"BPU\":\"Asia/Tokyo\",\"BPX\":\"Asia/Shanghai\",\"BPY\":\"Indian/Antananarivo\",\"BQA\":\"Asia/Manila\",\"BQB\":\"Australia/Perth\",\"BQE\":\"Africa/Bissau\",\"BQG\":\"Asia/Vladivostok\",\"BQH\":\"Europe/London\",\"BQI\":\"Africa/Windhoek\",\"BQJ\":\"Asia/Vladivostok\",\"BQK\":\"America/New_York\",\"BQL\":\"Australia/Brisbane\",\"BQN\":\"America/Puerto_Rico\",\"BQO\":\"Africa/Abidjan\",\"BQQ\":\"America/Belem\",\"BQS\":\"Asia/Yakutsk\",\"BQT\":\"Europe/Minsk\",\"BQU\":\"America/St_Vincent\",\"BQV\":\"America/Anchorage\",\"BQW\":\"Australia/Perth\",\"BRA\":\"America/Belem\",\"BRB\":\"America/Belem\",\"BRC\":\"America/Argentina/Buenos_Aires\",\"BRD\":\"America/Chicago\",\"BRE\":\"Europe/Berlin\",\"BRG\":\"America/New_York\",\"BRH\":\"Pacific/Port_Moresby\",\"BRI\":\"Europe/Rome\",\"BRJ\":\"Australia/Sydney\",\"BRK\":\"Australia/Sydney\",\"BRL\":\"America/Chicago\",\"BRM\":\"America/Caracas\",\"BRN\":\"Europe/Zurich\",\"BRO\":\"America/Chicago\",\"BRP\":\"Pacific/Port_Moresby\",\"BRQ\":\"Europe/Prague\",\"BRR\":\"Europe/London\",\"BRS\":\"Europe/London\",\"BRT\":\"Australia/Darwin\",\"BRU\":\"Europe/Brussels\",\"BRV\":\"Europe/Berlin\",\"BRW\":\"America/Anchorage\",\"BRX\":\"America/Santo_Domingo\",\"BRY\":\"America/New_York\",\"BSA\":\"Africa/Mogadishu\",\"BSB\":\"America/Sao_Paulo\",\"BSC\":\"America/Bogota\",\"BSD\":\"Asia/Shanghai\",\"BSE\":\"Asia/Kuala_Lumpur\",\"BSF\":\"Pacific/Honolulu\",\"BSG\":\"Africa/Malabo\",\"BSH\":\"Europe/London\",\"BSI\":\"Asia/Manila\",\"BSJ\":\"Australia/Sydney\",\"BSK\":\"Africa/Algiers\",\"BSL\":\"Europe/Paris\",\"BSM\":\"Asia/Tehran\",\"BSN\":\"Africa/Bangui\",\"BSO\":\"Asia/Manila\",\"BSP\":\"Pacific/Port_Moresby\",\"BSQ\":\"America/Phoenix\",\"BSR\":\"Asia/Baghdad\",\"BSS\":\"America/Belem\",\"BST\":\"Asia/Kabul\",\"BSU\":\"Africa/Kinshasa\",\"BSV\":\"Indian/Antananarivo\",\"BSW\":\"America/Anchorage\",\"BSX\":\"Asia/Yangon\",\"BSY\":\"Africa/Mogadishu\",\"BSZ\":\"America/Anchorage\",\"BTA\":\"Africa/Douala\",\"BTB\":\"Africa/Brazzaville\",\"BTC\":\"Asia/Colombo\",\"BTD\":\"Australia/Darwin\",\"BTE\":\"Africa/Freetown\",\"BTF\":\"America/Denver\",\"BTG\":\"Africa/Bangui\",\"BTH\":\"Asia/Jakarta\",\"BTI\":\"America/Anchorage\",\"BTJ\":\"Asia/Jakarta\",\"BTK\":\"Asia/Irkutsk\",\"BTL\":\"America/New_York\",\"BTM\":\"America/Denver\",\"BTN\":\"America/New_York\",\"BTO\":\"America/Paramaribo\",\"BTP\":\"America/New_York\",\"BTQ\":\"Africa/Kigali\",\"BTR\":\"America/Chicago\",\"BTS\":\"Europe/Bratislava\",\"BTT\":\"America/Anchorage\",\"BTU\":\"Asia/Kuala_Lumpur\",\"BTV\":\"America/New_York\",\"BTW\":\"Asia/Makassar\",\"BTX\":\"Australia/Brisbane\",\"BTY\":\"America/Los_Angeles\",\"BUA\":\"Pacific/Bougainville\",\"BUB\":\"America/Chicago\",\"BUC\":\"Australia/Brisbane\",\"BUD\":\"Europe/Budapest\",\"BUF\":\"America/New_York\",\"BUG\":\"Africa/Luanda\",\"BUI\":\"Asia/Jayapura\",\"BUJ\":\"Africa/Algiers\",\"BUK\":\"Asia/Aden\",\"BUL\":\"Pacific/Port_Moresby\",\"BUM\":\"America/Chicago\",\"BUN\":\"America/Bogota\",\"BUO\":\"Africa/Mogadishu\",\"BUP\":\"Asia/Kolkata\",\"BUQ\":\"Africa/Harare\",\"BUR\":\"America/Los_Angeles\",\"BUS\":\"Asia/Tbilisi\",\"BUT\":\"Asia/Thimphu\",\"BUU\":\"Asia/Jakarta\",\"BUV\":\"America/Montevideo\",\"BUW\":\"Asia/Makassar\",\"BUX\":\"Africa/Lubumbashi\",\"BUY\":\"Australia/Perth\",\"BUZ\":\"Asia/Tehran\",\"BVA\":\"Europe/Paris\",\"BVB\":\"America/Porto_Velho\",\"BVC\":\"Atlantic/Cape_Verde\",\"BVD\":\"America/Anchorage\",\"BVE\":\"Europe/Paris\",\"BVF\":\"Pacific/Fiji\",\"BVG\":\"Europe/Oslo\",\"BVH\":\"America/Porto_Velho\",\"BVI\":\"Australia/Brisbane\",\"BVJ\":\"Asia/Yekaterinburg\",\"BVK\":\"America/La_Paz\",\"BVL\":\"America/La_Paz\",\"BVM\":\"America/Belem\",\"BVO\":\"America/Chicago\",\"BVP\":\"Pacific/Port_Moresby\",\"BVR\":\"Atlantic/Cape_Verde\",\"BVS\":\"America/Belem\",\"BVU\":\"America/Anchorage\",\"BVV\":\"Asia/Magadan\",\"BVW\":\"Australia/Brisbane\",\"BVX\":\"America/Chicago\",\"BVY\":\"America/New_York\",\"BVZ\":\"Australia/Perth\",\"BWA\":\"Asia/Kathmandu\",\"BWB\":\"Australia/Perth\",\"BWC\":\"America/Los_Angeles\",\"BWD\":\"America/Chicago\",\"BWE\":\"Europe/Berlin\",\"BWF\":\"Europe/London\",\"BWG\":\"America/Chicago\",\"BWH\":\"Asia/Kuala_Lumpur\",\"BWI\":\"America/New_York\",\"BWJ\":\"Pacific/Port_Moresby\",\"BWK\":\"Europe/Zagreb\",\"BWL\":\"America/Chicago\",\"BWM\":\"America/Denver\",\"BWN\":\"Asia/Brunei\",\"BWO\":\"Europe/Saratov\",\"BWP\":\"Pacific/Port_Moresby\",\"BWQ\":\"Australia/Sydney\",\"BWS\":\"America/Los_Angeles\",\"BWT\":\"Australia/Hobart\",\"BWU\":\"Australia/Sydney\",\"BWX\":\"Asia/Jakarta\",\"BWY\":\"Europe/London\",\"BXA\":\"America/Chicago\",\"BXB\":\"Asia/Jayapura\",\"BXC\":\"America/New_York\",\"BXD\":\"Asia/Jayapura\",\"BXE\":\"Africa/Dakar\",\"BXF\":\"Australia/Perth\",\"BXG\":\"Australia/Sydney\",\"BXH\":\"Asia/Almaty\",\"BXI\":\"Africa/Abidjan\",\"BXJ\":\"Asia/Almaty\",\"BXK\":\"America/Phoenix\",\"BXL\":\"Pacific/Fiji\",\"BXM\":\"Asia/Jayapura\",\"BXN\":\"Europe/Istanbul\",\"BXO\":\"Europe/Zurich\",\"BXR\":\"Asia/Tehran\",\"BXS\":\"America/Los_Angeles\",\"BXT\":\"Asia/Makassar\",\"BXU\":\"Asia/Manila\",\"BXV\":\"Atlantic/Reykjavik\",\"BXX\":\"Africa/Mogadishu\",\"BXY\":\"Asia/Qyzylorda\",\"BXZ\":\"Pacific/Port_Moresby\",\"BYA\":\"America/Anchorage\",\"BYB\":\"Asia/Muscat\",\"BYC\":\"America/La_Paz\",\"BYD\":\"Asia/Aden\",\"BYF\":\"Europe/Paris\",\"BYG\":\"America/Denver\",\"BYH\":\"America/Chicago\",\"BYI\":\"America/Denver\",\"BYJ\":\"Europe/Lisbon\",\"BYK\":\"Africa/Abidjan\",\"BYL\":\"Africa/Monrovia\",\"BYM\":\"America/Havana\",\"BYN\":\"Asia/Ulaanbaatar\",\"BYO\":\"America/Campo_Grande\",\"BYP\":\"Australia/Perth\",\"BYQ\":\"Asia/Makassar\",\"BYR\":\"Europe/Copenhagen\",\"BYS\":\"America/Los_Angeles\",\"BYT\":\"Europe/Dublin\",\"BYU\":\"Europe/Berlin\",\"BYW\":\"America/Los_Angeles\",\"BYX\":\"Australia/Darwin\",\"BZA\":\"America/Managua\",\"BZB\":\"Africa/Maputo\",\"BZC\":\"America/Sao_Paulo\",\"BZD\":\"Australia/Sydney\",\"BZE\":\"America/Belize\",\"BZF\":\"America/Los_Angeles\",\"BZG\":\"Europe/Warsaw\",\"BZH\":\"Africa/Harare\",\"BZI\":\"Europe/Istanbul\",\"BZK\":\"Europe/Moscow\",\"BZL\":\"Asia/Dhaka\",\"BZM\":\"Indian/Antananarivo\",\"BZN\":\"America/Denver\",\"BZO\":\"Europe/Rome\",\"BZP\":\"Australia/Brisbane\",\"BZR\":\"Europe/Paris\",\"BZS\":\"America/New_York\",\"BZT\":\"America/Chicago\",\"BZU\":\"Africa/Lubumbashi\",\"BZV\":\"Africa/Brazzaville\",\"BZX\":\"Asia/Shanghai\",\"BZY\":\"Europe/Chisinau\",\"BZZ\":\"Europe/London\",\"CAA\":\"America/Tegucigalpa\",\"CAB\":\"Africa/Luanda\",\"CAC\":\"America/Sao_Paulo\",\"CAD\":\"America/New_York\",\"CAE\":\"America/New_York\",\"CAF\":\"America/Porto_Velho\",\"CAG\":\"Europe/Rome\",\"CAH\":\"Asia/Ho_Chi_Minh\",\"CAI\":\"Africa/Cairo\",\"CAJ\":\"America/Caracas\",\"CAK\":\"America/New_York\",\"CAL\":\"Europe/London\",\"CAM\":\"America/La_Paz\",\"CAN\":\"Asia/Shanghai\",\"CAO\":\"America/Denver\",\"CAP\":\"America/Port-au-Prince\",\"CAQ\":\"America/Bogota\",\"CAR\":\"America/New_York\",\"CAS\":\"Africa/Casablanca\",\"CAT\":\"Europe/Lisbon\",\"CAU\":\"America/Belem\",\"CAV\":\"Africa/Luanda\",\"CAW\":\"America/Sao_Paulo\",\"CAX\":\"Europe/London\",\"CAY\":\"America/Cayenne\",\"CAZ\":\"Australia/Sydney\",\"CBA\":\"America/Anchorage\",\"CBB\":\"America/La_Paz\",\"CBC\":\"Australia/Perth\",\"CBD\":\"Asia/Kolkata\",\"CBE\":\"America/New_York\",\"CBF\":\"America/Chicago\",\"CBG\":\"Europe/London\",\"CBH\":\"Africa/Algiers\",\"CBI\":\"Australia/Hobart\",\"CBJ\":\"America/Santo_Domingo\",\"CBK\":\"America/Chicago\",\"CBL\":\"America/Caracas\",\"CBM\":\"America/Chicago\",\"CBN\":\"Asia/Jakarta\",\"CBO\":\"Asia/Manila\",\"CBP\":\"Europe/Lisbon\",\"CBQ\":\"Africa/Lagos\",\"CBR\":\"Australia/Sydney\",\"CBS\":\"America/Caracas\",\"CBT\":\"Africa/Luanda\",\"CBU\":\"Europe/Berlin\",\"CBV\":\"America/Guatemala\",\"CBW\":\"America/Sao_Paulo\",\"CBX\":\"Australia/Sydney\",\"CBY\":\"Australia/Brisbane\",\"CBZ\":\"America/Anchorage\",\"CCA\":\"America/La_Paz\",\"CCB\":\"America/Los_Angeles\",\"CCC\":\"America/Havana\",\"CCD\":\"America/Los_Angeles\",\"CCE\":\"Africa/Cairo\",\"CCF\":\"Europe/Paris\",\"CCG\":\"America/Chicago\",\"CCH\":\"America/Santiago\",\"CCI\":\"America/Sao_Paulo\",\"CCJ\":\"Asia/Kolkata\",\"CCK\":\"Indian/Cocos\",\"CCL\":\"Australia/Brisbane\",\"CCM\":\"America/Sao_Paulo\",\"CCN\":\"Asia/Kabul\",\"CCO\":\"America/Bogota\",\"CCP\":\"America/Santiago\",\"CCQ\":\"America/Belem\",\"CCR\":\"America/Los_Angeles\",\"CCS\":\"America/Caracas\",\"CCT\":\"America/Argentina/Buenos_Aires\",\"CCU\":\"Asia/Kolkata\",\"CCV\":\"Pacific/Efate\",\"CCW\":\"Australia/Adelaide\",\"CCX\":\"America/Campo_Grande\",\"CCY\":\"America/Chicago\",\"CCZ\":\"America/Nassau\",\"CDA\":\"Australia/Darwin\",\"CDB\":\"America/Anchorage\",\"CDC\":\"America/Denver\",\"CDD\":\"America/Tegucigalpa\",\"CDE\":\"Asia/Shanghai\",\"CDF\":\"Europe/Rome\",\"CDG\":\"Europe/Paris\",\"CDH\":\"America/Chicago\",\"CDI\":\"America/Sao_Paulo\",\"CDJ\":\"America/Belem\",\"CDK\":\"America/New_York\",\"CDL\":\"America/Anchorage\",\"CDN\":\"America/New_York\",\"CDO\":\"Africa/Johannesburg\",\"CDP\":\"Asia/Kolkata\",\"CDQ\":\"Australia/Brisbane\",\"CDR\":\"America/Denver\",\"CDS\":\"America/Chicago\",\"CDT\":\"Europe/Madrid\",\"CDU\":\"Australia/Sydney\",\"CDV\":\"America/Anchorage\",\"CDW\":\"America/New_York\",\"CDY\":\"Asia/Manila\",\"CDZ\":\"Europe/Madrid\",\"CEA\":\"America/Chicago\",\"CEB\":\"Asia/Manila\",\"CEC\":\"America/Los_Angeles\",\"CED\":\"Australia/Adelaide\",\"CEE\":\"Europe/Moscow\",\"CEF\":\"America/New_York\",\"CEG\":\"Europe/London\",\"CEH\":\"Africa/Blantyre\",\"CEI\":\"Asia/Bangkok\",\"CEK\":\"Asia/Yekaterinburg\",\"CEM\":\"America/Anchorage\",\"CEN\":\"America/Hermosillo\",\"CEO\":\"Africa/Luanda\",\"CEP\":\"America/La_Paz\",\"CEQ\":\"Europe/Paris\",\"CER\":\"Europe/Paris\",\"CES\":\"Australia/Sydney\",\"CET\":\"Europe/Paris\",\"CEU\":\"America/New_York\",\"CEV\":\"America/Indiana/Indianapolis\",\"CEW\":\"America/New_York\",\"CEX\":\"America/Anchorage\",\"CEY\":\"America/Chicago\",\"CEZ\":\"America/Denver\",\"CFA\":\"America/Anchorage\",\"CFB\":\"America/Sao_Paulo\",\"CFC\":\"America/Sao_Paulo\",\"CFD\":\"America/Chicago\",\"CFE\":\"Europe/Paris\",\"CFF\":\"Africa/Luanda\",\"CFG\":\"America/Havana\",\"CFH\":\"Australia/Adelaide\",\"CFI\":\"Australia/Darwin\",\"CFK\":\"Africa/Algiers\",\"CFM\":\"America/Edmonton\",\"CFN\":\"Europe/Dublin\",\"CFO\":\"America/Campo_Grande\",\"CFP\":\"Australia/Brisbane\",\"CFQ\":\"America/Vancouver\",\"CFR\":\"Europe/Paris\",\"CFS\":\"Australia/Sydney\",\"CFT\":\"America/Phoenix\",\"CFU\":\"Europe/Athens\",\"CFV\":\"America/Chicago\",\"CGA\":\"America/Anchorage\",\"CGB\":\"America/Campo_Grande\",\"CGC\":\"Pacific/Port_Moresby\",\"CGD\":\"Asia/Shanghai\",\"CGE\":\"America/New_York\",\"CGF\":\"America/New_York\",\"CGG\":\"Asia/Manila\",\"CGH\":\"America/Sao_Paulo\",\"CGI\":\"America/Chicago\",\"CGJ\":\"Africa/Lusaka\",\"CGK\":\"Asia/Jakarta\",\"CGM\":\"Asia/Manila\",\"CGN\":\"Europe/Berlin\",\"CGO\":\"Asia/Shanghai\",\"CGP\":\"Asia/Dhaka\",\"CGQ\":\"Asia/Shanghai\",\"CGR\":\"America/Campo_Grande\",\"CGS\":\"America/New_York\",\"CGT\":\"Africa/Nouakchott\",\"CGV\":\"Australia/Perth\",\"CGY\":\"Asia/Manila\",\"CGZ\":\"America/Phoenix\",\"CHA\":\"America/New_York\",\"CHB\":\"Asia/Karachi\",\"CHC\":\"Pacific/Auckland\",\"CHE\":\"Europe/Tallinn\",\"CHF\":\"Asia/Seoul\",\"CHG\":\"Asia/Shanghai\",\"CHH\":\"America/Lima\",\"CHJ\":\"Africa/Harare\",\"CHK\":\"America/Chicago\",\"CHL\":\"America/Denver\",\"CHM\":\"America/Lima\",\"CHN\":\"Asia/Seoul\",\"CHO\":\"America/New_York\",\"CHP\":\"America/Anchorage\",\"CHQ\":\"Europe/Athens\",\"CHR\":\"Europe/Paris\",\"CHS\":\"America/New_York\",\"CHT\":\"Pacific/Chatham\",\"CHU\":\"America/Anchorage\",\"CHV\":\"Europe/Lisbon\",\"CHX\":\"America/Panama\",\"CHY\":\"Pacific/Guadalcanal\",\"CHZ\":\"America/Los_Angeles\",\"CIA\":\"Europe/Rome\",\"CIC\":\"America/Los_Angeles\",\"CID\":\"America/Chicago\",\"CIE\":\"Australia/Perth\",\"CIF\":\"Asia/Shanghai\",\"CIG\":\"America/Denver\",\"CIH\":\"Asia/Shanghai\",\"CIJ\":\"America/La_Paz\",\"CIK\":\"America/Anchorage\",\"CIL\":\"America/Anchorage\",\"CIM\":\"America/Bogota\",\"CIN\":\"America/Chicago\",\"CIO\":\"America/Asuncion\",\"CIP\":\"Africa/Lusaka\",\"CIQ\":\"America/Guatemala\",\"CIR\":\"America/Chicago\",\"CIS\":\"Pacific/Enderbury\",\"CIT\":\"Asia/Almaty\",\"CIU\":\"America/New_York\",\"CIV\":\"America/Anchorage\",\"CIW\":\"America/St_Vincent\",\"CIX\":\"America/Lima\",\"CIY\":\"Europe/Rome\",\"CIZ\":\"America/Porto_Velho\",\"CJA\":\"America/Lima\",\"CJB\":\"Asia/Kolkata\",\"CJC\":\"America/Santiago\",\"CJD\":\"America/Bogota\",\"CJF\":\"Australia/Perth\",\"CJH\":\"America/Vancouver\",\"CJJ\":\"Asia/Seoul\",\"CJL\":\"Asia/Karachi\",\"CJM\":\"Asia/Bangkok\",\"CJN\":\"Asia/Jakarta\",\"CJS\":\"America/Ojinaga\",\"CJT\":\"America/Mexico_City\",\"CJU\":\"Asia/Seoul\",\"CKA\":\"America/Chicago\",\"CKB\":\"America/New_York\",\"CKC\":\"Europe/Kiev\",\"CKD\":\"America/Anchorage\",\"CKE\":\"America/Los_Angeles\",\"CKG\":\"Asia/Shanghai\",\"CKH\":\"Asia/Magadan\",\"CKI\":\"Australia/Darwin\",\"CKK\":\"America/Chicago\",\"CKL\":\"Europe/Moscow\",\"CKM\":\"America/Chicago\",\"CKN\":\"America/Chicago\",\"CKO\":\"America/Sao_Paulo\",\"CKR\":\"America/Los_Angeles\",\"CKS\":\"America/Belem\",\"CKT\":\"Asia/Tehran\",\"CKU\":\"America/Anchorage\",\"CKV\":\"America/Chicago\",\"CKW\":\"Australia/Perth\",\"CKX\":\"America/Anchorage\",\"CKY\":\"Africa/Conakry\",\"CKZ\":\"Europe/Istanbul\",\"CLA\":\"Asia/Dhaka\",\"CLD\":\"America/Los_Angeles\",\"CLE\":\"America/New_York\",\"CLF\":\"Europe/London\",\"CLG\":\"America/Los_Angeles\",\"CLH\":\"Australia/Sydney\",\"CLI\":\"America/Chicago\",\"CLJ\":\"Europe/Bucharest\",\"CLK\":\"America/Chicago\",\"CLL\":\"America/Chicago\",\"CLM\":\"America/Los_Angeles\",\"CLN\":\"America/Belem\",\"CLO\":\"America/Bogota\",\"CLP\":\"America/Anchorage\",\"CLQ\":\"America/Mexico_City\",\"CLR\":\"America/Los_Angeles\",\"CLS\":\"America/Los_Angeles\",\"CLT\":\"America/New_York\",\"CLU\":\"America/Indiana/Indianapolis\",\"CLV\":\"America/Sao_Paulo\",\"CLW\":\"America/New_York\",\"CLX\":\"America/Argentina/Buenos_Aires\",\"CLY\":\"Europe/Paris\",\"CLZ\":\"America/Caracas\",\"CMA\":\"Australia/Brisbane\",\"CMB\":\"Asia/Colombo\",\"CMC\":\"America/Belem\",\"CMD\":\"Australia/Sydney\",\"CME\":\"America/Mexico_City\",\"CMF\":\"Europe/Paris\",\"CMG\":\"America/Campo_Grande\",\"CMH\":\"America/New_York\",\"CMI\":\"America/Chicago\",\"CMJ\":\"Asia/Taipei\",\"CMK\":\"Africa/Blantyre\",\"CML\":\"Australia/Brisbane\",\"CMM\":\"America/Guatemala\",\"CMN\":\"Africa/Casablanca\",\"CMO\":\"Africa/Mogadishu\",\"CMP\":\"America/Belem\",\"CMQ\":\"Australia/Brisbane\",\"CMR\":\"Europe/Paris\",\"CMS\":\"Africa/Mogadishu\",\"CMT\":\"America/Belem\",\"CMU\":\"Pacific/Port_Moresby\",\"CMV\":\"Pacific/Auckland\",\"CMW\":\"America/Havana\",\"CMX\":\"America/New_York\",\"CMY\":\"America/Chicago\",\"CMZ\":\"Africa/Maputo\",\"CNA\":\"America/Hermosillo\",\"CNB\":\"Australia/Sydney\",\"CNC\":\"Australia/Brisbane\",\"CND\":\"Europe/Bucharest\",\"CNE\":\"America/Denver\",\"CNF\":\"America/Sao_Paulo\",\"CNG\":\"Europe/Paris\",\"CNH\":\"America/New_York\",\"CNI\":\"Asia/Shanghai\",\"CNJ\":\"Australia/Brisbane\",\"CNK\":\"America/Chicago\",\"CNL\":\"Europe/Copenhagen\",\"CNM\":\"America/Denver\",\"CNN\":\"Asia/Kolkata\",\"CNO\":\"America/Los_Angeles\",\"CNP\":\"America/Scoresbysund\",\"CNQ\":\"America/Argentina/Buenos_Aires\",\"CNR\":\"America/Santiago\",\"CNS\":\"Australia/Brisbane\",\"CNT\":\"America/Argentina/Buenos_Aires\",\"CNU\":\"America/Chicago\",\"CNV\":\"America/Belem\",\"CNW\":\"America/Chicago\",\"CNX\":\"Asia/Bangkok\",\"CNY\":\"America/Denver\",\"CNZ\":\"Africa/Luanda\",\"COA\":\"America/Los_Angeles\",\"COB\":\"Australia/Darwin\",\"COC\":\"America/Argentina/Buenos_Aires\",\"COD\":\"America/Denver\",\"COE\":\"America/Los_Angeles\",\"COF\":\"America/New_York\",\"COG\":\"America/Bogota\",\"COH\":\"Asia/Kolkata\",\"COI\":\"America/New_York\",\"COJ\":\"Australia/Sydney\",\"COK\":\"Asia/Kolkata\",\"COL\":\"Europe/London\",\"COM\":\"America/Chicago\",\"CON\":\"America/New_York\",\"COO\":\"Africa/Porto-Novo\",\"COP\":\"America/New_York\",\"COQ\":\"Asia/Ulaanbaatar\",\"COR\":\"America/Argentina/Buenos_Aires\",\"COS\":\"America/Denver\",\"COT\":\"America/Chicago\",\"COU\":\"America/Chicago\",\"COV\":\"Europe/Lisbon\",\"COW\":\"America/Santiago\",\"COY\":\"Australia/Perth\",\"COZ\":\"America/Santo_Domingo\",\"CPA\":\"Africa/Monrovia\",\"CPB\":\"America/Bogota\",\"CPC\":\"America/Argentina/Buenos_Aires\",\"CPD\":\"Australia/Adelaide\",\"CPE\":\"America/Mexico_City\",\"CPF\":\"Asia/Jakarta\",\"CPG\":\"America/Argentina/Buenos_Aires\",\"CPH\":\"Europe/Copenhagen\",\"CPI\":\"Pacific/Port_Moresby\",\"CPL\":\"America/Bogota\",\"CPM\":\"America/Los_Angeles\",\"CPN\":\"Pacific/Port_Moresby\",\"CPO\":\"America/Santiago\",\"CPP\":\"America/Santiago\",\"CPQ\":\"America/Sao_Paulo\",\"CPR\":\"America/Denver\",\"CPS\":\"America/Chicago\",\"CPT\":\"Africa/Johannesburg\",\"CPU\":\"America/Belem\",\"CPV\":\"America/Belem\",\"CPX\":\"America/Puerto_Rico\",\"CQA\":\"America/Campo_Grande\",\"CQD\":\"Asia/Tehran\",\"CQF\":\"Europe/Paris\",\"CQP\":\"Australia/Brisbane\",\"CQS\":\"America/Porto_Velho\",\"CQT\":\"America/Bogota\",\"CQW\":\"Asia/Shanghai\",\"CRA\":\"Europe/Bucharest\",\"CRB\":\"Australia/Sydney\",\"CRC\":\"America/Bogota\",\"CRD\":\"America/Argentina/Buenos_Aires\",\"CRE\":\"America/New_York\",\"CRF\":\"Africa/Bangui\",\"CRG\":\"America/New_York\",\"CRH\":\"Australia/Brisbane\",\"CRI\":\"America/Nassau\",\"CRJ\":\"Australia/Adelaide\",\"CRK\":\"Asia/Manila\",\"CRL\":\"Europe/Brussels\",\"CRM\":\"Asia/Manila\",\"CRO\":\"America/Los_Angeles\",\"CRP\":\"America/Chicago\",\"CRQ\":\"America/Belem\",\"CRR\":\"America/Argentina/Buenos_Aires\",\"CRS\":\"America/Chicago\",\"CRT\":\"America/Chicago\",\"CRU\":\"America/Grenada\",\"CRV\":\"Europe/Rome\",\"CRW\":\"America/New_York\",\"CRX\":\"America/Chicago\",\"CRY\":\"Australia/Perth\",\"CRZ\":\"Asia/Ashgabat\",\"CSA\":\"Europe/London\",\"CSB\":\"Europe/Bucharest\",\"CSC\":\"America/Costa_Rica\",\"CSD\":\"Australia/Darwin\",\"CSE\":\"America/Denver\",\"CSF\":\"Europe/Paris\",\"CSG\":\"America/New_York\",\"CSH\":\"Europe/Moscow\",\"CSI\":\"Australia/Sydney\",\"CSJ\":\"Asia/Ho_Chi_Minh\",\"CSK\":\"Africa/Dakar\",\"CSM\":\"America/Chicago\",\"CSN\":\"America/Los_Angeles\",\"CSO\":\"Europe/Berlin\",\"CSP\":\"America/Anchorage\",\"CSQ\":\"America/Chicago\",\"CSR\":\"America/Bogota\",\"CSS\":\"America/Campo_Grande\",\"CST\":\"Pacific/Fiji\",\"CSU\":\"America/Sao_Paulo\",\"CSV\":\"America/Chicago\",\"CSW\":\"America/Porto_Velho\",\"CSX\":\"Asia/Shanghai\",\"CSY\":\"Europe/Moscow\",\"CSZ\":\"America/Argentina/Buenos_Aires\",\"CTA\":\"Europe/Rome\",\"CTB\":\"America/Denver\",\"CTC\":\"America/Argentina/Buenos_Aires\",\"CTD\":\"America/Panama\",\"CTE\":\"America/Panama\",\"CTF\":\"America/Guatemala\",\"CTG\":\"America/Bogota\",\"CTH\":\"America/New_York\",\"CTI\":\"Africa/Luanda\",\"CTK\":\"America/Chicago\",\"CTL\":\"Australia/Brisbane\",\"CTM\":\"America/Cancun\",\"CTN\":\"Australia/Brisbane\",\"CTO\":\"America/New_York\",\"CTP\":\"America/Belem\",\"CTQ\":\"America/Sao_Paulo\",\"CTR\":\"Australia/Darwin\",\"CTS\":\"Asia/Tokyo\",\"CTT\":\"Europe/Paris\",\"CTU\":\"Asia/Shanghai\",\"CTW\":\"America/Phoenix\",\"CTX\":\"America/New_York\",\"CTY\":\"America/New_York\",\"CTZ\":\"America/New_York\",\"CUA\":\"America/Mazatlan\",\"CUB\":\"America/New_York\",\"CUC\":\"America/Bogota\",\"CUD\":\"Australia/Brisbane\",\"CUE\":\"America/Guayaquil\",\"CUF\":\"Europe/Rome\",\"CUG\":\"Australia/Sydney\",\"CUH\":\"America/Chicago\",\"CUI\":\"America/Bogota\",\"CUJ\":\"Asia/Manila\",\"CUK\":\"America/Belize\",\"CUL\":\"America/Mazatlan\",\"CUM\":\"America/Caracas\",\"CUN\":\"America/Cancun\",\"CUO\":\"America/Bogota\",\"CUP\":\"America/Caracas\",\"CUQ\":\"Australia/Brisbane\",\"CUR\":\"America/Curacao\",\"CUS\":\"America/Denver\",\"CUT\":\"America/Argentina/Buenos_Aires\",\"CUU\":\"America/Mazatlan\",\"CUV\":\"America/Caracas\",\"CUW\":\"America/Anchorage\",\"CUX\":\"America/Chicago\",\"CUY\":\"Australia/Perth\",\"CUZ\":\"America/Lima\",\"CVA\":\"America/New_York\",\"CVB\":\"Pacific/Port_Moresby\",\"CVC\":\"Australia/Adelaide\",\"CVE\":\"America/Bogota\",\"CVF\":\"Europe/Paris\",\"CVG\":\"America/New_York\",\"CVH\":\"America/Argentina/Buenos_Aires\",\"CVI\":\"America/Argentina/Buenos_Aires\",\"CVJ\":\"America/Mexico_City\",\"CVL\":\"Pacific/Port_Moresby\",\"CVM\":\"America/Mexico_City\",\"CVN\":\"America/Denver\",\"CVO\":\"America/Los_Angeles\",\"CVQ\":\"Australia/Perth\",\"CVR\":\"America/Los_Angeles\",\"CVS\":\"America/Denver\",\"CVT\":\"Europe/London\",\"CVU\":\"Atlantic/Azores\",\"CWA\":\"America/Chicago\",\"CWB\":\"America/Sao_Paulo\",\"CWC\":\"Europe/Kiev\",\"CWF\":\"America/Chicago\",\"CWG\":\"America/New_York\",\"CWI\":\"America/Chicago\",\"CWJ\":\"Asia/Shanghai\",\"CWL\":\"Europe/London\",\"CWO\":\"America/Chicago\",\"CWP\":\"Asia/Karachi\",\"CWR\":\"Australia/Adelaide\",\"CWS\":\"America/Los_Angeles\",\"CWT\":\"Australia/Sydney\",\"CWW\":\"Australia/Sydney\",\"CXA\":\"America/Caracas\",\"CXB\":\"Asia/Dhaka\",\"CXC\":\"America/Anchorage\",\"CXF\":\"America/Anchorage\",\"CXH\":\"America/Vancouver\",\"CXI\":\"Pacific/Kiritimati\",\"CXJ\":\"America/Sao_Paulo\",\"CXL\":\"America/Los_Angeles\",\"CXN\":\"Africa/Mogadishu\",\"CXO\":\"America/Chicago\",\"CXP\":\"Asia/Jakarta\",\"CXQ\":\"Australia/Perth\",\"CXR\":\"Asia/Ho_Chi_Minh\",\"CXT\":\"Australia/Brisbane\",\"CXY\":\"America/Nassau\",\"CYA\":\"America/Port-au-Prince\",\"CYB\":\"America/Cayman\",\"CYC\":\"America/Belize\",\"CYD\":\"America/Belize\",\"CYE\":\"America/New_York\",\"CYF\":\"America/Anchorage\",\"CYG\":\"Australia/Sydney\",\"CYI\":\"Asia/Taipei\",\"CYL\":\"America/Tegucigalpa\",\"CYM\":\"America/Anchorage\",\"CYO\":\"America/Havana\",\"CYP\":\"Asia/Manila\",\"CYR\":\"America/Montevideo\",\"CYS\":\"America/Denver\",\"CYT\":\"America/Anchorage\",\"CYU\":\"Asia/Manila\",\"CYW\":\"America/Mexico_City\",\"CYX\":\"Asia/Magadan\",\"CYZ\":\"Asia/Manila\",\"CZA\":\"America/Mexico_City\",\"CZB\":\"America/Sao_Paulo\",\"CZC\":\"America/Anchorage\",\"CZE\":\"America/Caracas\",\"CZF\":\"America/Anchorage\",\"CZH\":\"America/Belize\",\"CZJ\":\"America/Panama\",\"CZK\":\"America/Los_Angeles\",\"CZL\":\"Africa/Algiers\",\"CZM\":\"America/Cancun\",\"CZN\":\"America/Anchorage\",\"CZO\":\"America/Anchorage\",\"CZP\":\"America/Anchorage\",\"CZS\":\"America/Rio_Branco\",\"CZT\":\"America/Chicago\",\"CZU\":\"America/Bogota\",\"CZW\":\"Europe/Warsaw\",\"CZX\":\"Asia/Shanghai\",\"CZY\":\"Australia/Brisbane\",\"CZZ\":\"America/Los_Angeles\",\"DAA\":\"America/New_York\",\"DAB\":\"America/New_York\",\"DAC\":\"Asia/Dhaka\",\"DAD\":\"Asia/Ho_Chi_Minh\",\"DAE\":\"Asia/Kolkata\",\"DAF\":\"Pacific/Port_Moresby\",\"DAG\":\"America/Los_Angeles\",\"DAH\":\"Asia/Aden\",\"DAI\":\"Asia/Kolkata\",\"DAJ\":\"Australia/Brisbane\",\"DAK\":\"Africa/Cairo\",\"DAL\":\"America/Chicago\",\"DAM\":\"Asia/Damascus\",\"DAN\":\"America/New_York\",\"DAO\":\"Pacific/Port_Moresby\",\"DAP\":\"Asia/Kathmandu\",\"DAR\":\"Africa/Dar_es_Salaam\",\"DAS\":\"America/Edmonton\",\"DAT\":\"Asia/Shanghai\",\"DAU\":\"Pacific/Port_Moresby\",\"DAV\":\"America/Panama\",\"DAX\":\"Asia/Shanghai\",\"DAY\":\"America/New_York\",\"DAZ\":\"Asia/Kabul\",\"DBA\":\"Asia/Karachi\",\"DBB\":\"Africa/Cairo\",\"DBC\":\"Asia/Shanghai\",\"DBD\":\"Asia/Kolkata\",\"DBM\":\"Africa/Addis_Ababa\",\"DBN\":\"America/New_York\",\"DBO\":\"Australia/Sydney\",\"DBP\":\"Pacific/Port_Moresby\",\"DBQ\":\"America/Chicago\",\"DBS\":\"America/Denver\",\"DBT\":\"Africa/Addis_Ababa\",\"DBU\":\"Asia/Colombo\",\"DBV\":\"Europe/Zagreb\",\"DBY\":\"Australia/Brisbane\",\"DCA\":\"America/New_York\",\"DCF\":\"America/Dominica\",\"DCI\":\"Europe/Rome\",\"DCK\":\"America/Anchorage\",\"DCM\":\"Europe/Paris\",\"DCN\":\"Australia/Perth\",\"DCR\":\"America/Indiana/Indianapolis\",\"DCT\":\"America/Nassau\",\"DCU\":\"America/Chicago\",\"DCY\":\"Asia/Shanghai\",\"DDC\":\"America/Chicago\",\"DDD\":\"Indian/Maldives\",\"DDG\":\"Asia/Shanghai\",\"DDI\":\"Australia/Brisbane\",\"DDM\":\"Pacific/Port_Moresby\",\"DDN\":\"Australia/Brisbane\",\"DDU\":\"Asia/Karachi\",\"DEA\":\"Asia/Karachi\",\"DEB\":\"Europe/Budapest\",\"DEC\":\"America/Chicago\",\"DED\":\"Asia/Kolkata\",\"DEE\":\"Asia/Magadan\",\"DEF\":\"Asia/Tehran\",\"DEH\":\"America/Chicago\",\"DEI\":\"Indian/Mahe\",\"DEL\":\"Asia/Kolkata\",\"DEM\":\"Africa/Addis_Ababa\",\"DEN\":\"America/Denver\",\"DEO\":\"America/New_York\",\"DEP\":\"Asia/Kolkata\",\"DEQ\":\"Asia/Shanghai\",\"DER\":\"Pacific/Port_Moresby\",\"DES\":\"Indian/Mahe\",\"DET\":\"America/New_York\",\"DEX\":\"Asia/Jayapura\",\"DEZ\":\"Asia/Damascus\",\"DFI\":\"America/New_York\",\"DFP\":\"Australia/Brisbane\",\"DFW\":\"America/Chicago\",\"DGA\":\"America/Belize\",\"DGB\":\"America/Anchorage\",\"DGC\":\"Africa/Addis_Ababa\",\"DGD\":\"Australia/Perth\",\"DGE\":\"Australia/Sydney\",\"DGF\":\"America/Vancouver\",\"DGL\":\"America/Phoenix\",\"DGM\":\"Asia/Colombo\",\"DGN\":\"America/New_York\",\"DGO\":\"America/Mexico_City\",\"DGP\":\"Europe/Riga\",\"DGR\":\"Pacific/Auckland\",\"DGT\":\"Asia/Manila\",\"DGU\":\"Africa/Ouagadougou\",\"DGW\":\"America/Denver\",\"DHA\":\"Asia/Riyadh\",\"DHB\":\"America/Los_Angeles\",\"DHD\":\"Australia/Brisbane\",\"DHF\":\"Asia/Dubai\",\"DHG\":\"Asia/Vladivostok\",\"DHI\":\"Asia/Kathmandu\",\"DHL\":\"Asia/Aden\",\"DHM\":\"Asia/Kolkata\",\"DHN\":\"America/Chicago\",\"DHR\":\"Europe/Amsterdam\",\"DHT\":\"America/Chicago\",\"DIB\":\"Asia/Kolkata\",\"DIC\":\"Africa/Lubumbashi\",\"DIE\":\"Indian/Antananarivo\",\"DIG\":\"Asia/Shanghai\",\"DIJ\":\"Europe/Paris\",\"DIK\":\"America/Denver\",\"DIL\":\"Asia/Dili\",\"DIM\":\"Africa/Abidjan\",\"DIN\":\"Asia/Ho_Chi_Minh\",\"DIO\":\"America/Anchorage\",\"DIP\":\"Africa/Ouagadougou\",\"DIQ\":\"America/Sao_Paulo\",\"DIR\":\"Africa/Addis_Ababa\",\"DIS\":\"Africa/Brazzaville\",\"DIU\":\"Asia/Kolkata\",\"DIV\":\"Africa/Abidjan\",\"DIW\":\"Asia/Colombo\",\"DIY\":\"Europe/Istanbul\",\"DJA\":\"Africa/Porto-Novo\",\"DJB\":\"Asia/Jakarta\",\"DJE\":\"Africa/Tunis\",\"DJG\":\"Africa/Algiers\",\"DJJ\":\"Asia/Jayapura\",\"DJM\":\"Africa/Brazzaville\",\"DJN\":\"America/Anchorage\",\"DJO\":\"Africa/Abidjan\",\"DJU\":\"Atlantic/Reykjavik\",\"DKA\":\"Africa/Lagos\",\"DKI\":\"Australia/Brisbane\",\"DKK\":\"America/New_York\",\"DKR\":\"Africa/Dakar\",\"DKS\":\"Asia/Krasnoyarsk\",\"DKV\":\"Australia/Darwin\",\"DLA\":\"Africa/Douala\",\"DLC\":\"Asia/Shanghai\",\"DLD\":\"Europe/Oslo\",\"DLE\":\"Europe/Paris\",\"DLF\":\"America/Chicago\",\"DLG\":\"America/Anchorage\",\"DLH\":\"America/Chicago\",\"DLI\":\"Asia/Ho_Chi_Minh\",\"DLK\":\"Australia/Adelaide\",\"DLL\":\"America/New_York\",\"DLM\":\"Europe/Istanbul\",\"DLN\":\"America/Denver\",\"DLO\":\"America/Anchorage\",\"DLP\":\"Europe/Paris\",\"DLR\":\"Asia/Vladivostok\",\"DLS\":\"America/Los_Angeles\",\"DLU\":\"Asia/Shanghai\",\"DLV\":\"Australia/Darwin\",\"DLY\":\"Pacific/Efate\",\"DLZ\":\"Asia/Ulaanbaatar\",\"DMA\":\"America/Phoenix\",\"DMB\":\"Asia/Almaty\",\"DMD\":\"Australia/Brisbane\",\"DME\":\"Europe/Moscow\",\"DMK\":\"Asia/Bangkok\",\"DMM\":\"Asia/Riyadh\",\"DMN\":\"America/Denver\",\"DMO\":\"America/Chicago\",\"DMR\":\"Asia/Aden\",\"DMT\":\"America/Campo_Grande\",\"DMU\":\"Asia/Kolkata\",\"DNA\":\"Asia/Tokyo\",\"DNB\":\"Australia/Brisbane\",\"DNC\":\"Africa/Abidjan\",\"DND\":\"Europe/London\",\"DNF\":\"Africa/Tripoli\",\"DNG\":\"Australia/Perth\",\"DNH\":\"Asia/Shanghai\",\"DNI\":\"Africa/Khartoum\",\"DNK\":\"Europe/Kiev\",\"DNL\":\"America/New_York\",\"DNM\":\"Australia/Perth\",\"DNN\":\"America/New_York\",\"DNO\":\"America/Belem\",\"DNP\":\"Asia/Kathmandu\",\"DNQ\":\"Australia/Sydney\",\"DNR\":\"Europe/Paris\",\"DNS\":\"America/Chicago\",\"DNU\":\"Pacific/Port_Moresby\",\"DNV\":\"America/Chicago\",\"DNX\":\"Africa/Khartoum\",\"DNZ\":\"Europe/Istanbul\",\"DOA\":\"Indian/Antananarivo\",\"DOB\":\"Asia/Jayapura\",\"DOC\":\"Europe/London\",\"DOD\":\"Africa/Dar_es_Salaam\",\"DOE\":\"America/Paramaribo\",\"DOF\":\"America/Anchorage\",\"DOG\":\"Africa/Khartoum\",\"DOH\":\"Asia/Qatar\",\"DOI\":\"Pacific/Port_Moresby\",\"DOL\":\"Europe/Paris\",\"DOM\":\"America/Dominica\",\"DON\":\"America/Guatemala\",\"DOO\":\"Pacific/Port_Moresby\",\"DOP\":\"Asia/Kathmandu\",\"DOR\":\"Africa/Ouagadougou\",\"DOS\":\"Pacific/Bougainville\",\"DOU\":\"America/Campo_Grande\",\"DOV\":\"America/New_York\",\"DOX\":\"Australia/Perth\",\"DOY\":\"Asia/Shanghai\",\"DPA\":\"America/Chicago\",\"DPB\":\"America/Argentina/Salta\",\"DPE\":\"Europe/Paris\",\"DPG\":\"America/Denver\",\"DPK\":\"America/New_York\",\"DPL\":\"Asia/Manila\",\"DPO\":\"Australia/Hobart\",\"DPS\":\"Asia/Makassar\",\"DPT\":\"Asia/Vladivostok\",\"DPU\":\"Pacific/Port_Moresby\",\"DQA\":\"Asia/Shanghai\",\"DQM\":\"Asia/Muscat\",\"DQO\":\"America/Chicago\",\"DRA\":\"America/Los_Angeles\",\"DRB\":\"Australia/Perth\",\"DRC\":\"Africa/Luanda\",\"DRD\":\"Australia/Brisbane\",\"DRE\":\"America/New_York\",\"DRF\":\"America/Anchorage\",\"DRG\":\"America/Anchorage\",\"DRH\":\"Asia/Jayapura\",\"DRI\":\"America/Chicago\",\"DRJ\":\"America/Paramaribo\",\"DRK\":\"America/Costa_Rica\",\"DRM\":\"Europe/Athens\",\"DRN\":\"Australia/Brisbane\",\"DRO\":\"America/Denver\",\"DRR\":\"Australia/Brisbane\",\"DRS\":\"Europe/Berlin\",\"DRT\":\"America/Chicago\",\"DRU\":\"America/Denver\",\"DRV\":\"Indian/Maldives\",\"DRW\":\"Australia/Darwin\",\"DRY\":\"Australia/Perth\",\"DSA\":\"Europe/London\",\"DSC\":\"Africa/Douala\",\"DSD\":\"America/Guadeloupe\",\"DSE\":\"Africa/Addis_Ababa\",\"DSG\":\"Asia/Manila\",\"DSI\":\"America/Chicago\",\"DSK\":\"Asia/Karachi\",\"DSL\":\"Africa/Freetown\",\"DSM\":\"America/Chicago\",\"DSN\":\"Asia/Shanghai\",\"DSS\":\"Africa/Dakar\",\"DSV\":\"America/New_York\",\"DSX\":\"Asia/Taipei\",\"DTA\":\"America/Denver\",\"DTB\":\"Asia/Jakarta\",\"DTD\":\"Asia/Makassar\",\"DTE\":\"Asia/Manila\",\"DTH\":\"America/Los_Angeles\",\"DTI\":\"America/Sao_Paulo\",\"DTL\":\"America/Chicago\",\"DTM\":\"Europe/Berlin\",\"DTN\":\"America/Chicago\",\"DTR\":\"America/Los_Angeles\",\"DTU\":\"Asia/Shanghai\",\"DTW\":\"America/New_York\",\"DUA\":\"America/Chicago\",\"DUB\":\"Europe/Dublin\",\"DUC\":\"America/Chicago\",\"DUD\":\"Pacific/Auckland\",\"DUE\":\"Africa/Luanda\",\"DUF\":\"America/New_York\",\"DUG\":\"America/Phoenix\",\"DUH\":\"Europe/Tirane\",\"DUJ\":\"America/New_York\",\"DUK\":\"Africa/Johannesburg\",\"DUM\":\"Asia/Jakarta\",\"DUN\":\"America/Godthab\",\"DUQ\":\"America/Vancouver\",\"DUR\":\"Africa/Johannesburg\",\"DUS\":\"Europe/Berlin\",\"DUT\":\"America/Anchorage\",\"DVA\":\"Europe/Bucharest\",\"DVD\":\"Indian/Antananarivo\",\"DVK\":\"America/Edmonton\",\"DVL\":\"America/Chicago\",\"DVN\":\"America/Chicago\",\"DVO\":\"Asia/Manila\",\"DVP\":\"Australia/Brisbane\",\"DVR\":\"Australia/Darwin\",\"DVT\":\"America/Phoenix\",\"DWA\":\"Africa/Blantyre\",\"DWB\":\"Indian/Antananarivo\",\"DWC\":\"Asia/Dubai\",\"DWD\":\"Asia/Riyadh\",\"DWF\":\"America/New_York\",\"DWH\":\"America/Chicago\",\"DWN\":\"America/Chicago\",\"DWO\":\"Asia/Colombo\",\"DWR\":\"Asia/Kabul\",\"DWS\":\"America/New_York\",\"DXA\":\"Europe/Paris\",\"DXB\":\"Asia/Dubai\",\"DXD\":\"Australia/Brisbane\",\"DXE\":\"America/Chicago\",\"DXR\":\"America/New_York\",\"DYA\":\"Australia/Brisbane\",\"DYG\":\"Asia/Shanghai\",\"DYL\":\"America/New_York\",\"DYM\":\"Australia/Brisbane\",\"DYR\":\"Asia/Anadyr\",\"DYS\":\"America/Chicago\",\"DYU\":\"Asia/Dushanbe\",\"DYW\":\"Australia/Darwin\",\"DZA\":\"Indian/Mayotte\",\"DZI\":\"America/Bogota\",\"DZN\":\"Asia/Almaty\",\"DZO\":\"America/Montevideo\",\"DZU\":\"Asia/Shanghai\",\"EAA\":\"America/Anchorage\",\"EAB\":\"Asia/Aden\",\"EAE\":\"Pacific/Efate\",\"EAL\":\"Pacific/Majuro\",\"EAM\":\"Asia/Riyadh\",\"EAN\":\"America/Denver\",\"EAR\":\"America/Chicago\",\"EAS\":\"Europe/Madrid\",\"EAT\":\"America/Los_Angeles\",\"EAU\":\"America/Chicago\",\"EBA\":\"Europe/Rome\",\"EBB\":\"Africa/Kampala\",\"EBD\":\"Africa/Khartoum\",\"EBG\":\"America/Bogota\",\"EBH\":\"Africa/Algiers\",\"EBJ\":\"Europe/Copenhagen\",\"EBL\":\"Asia/Baghdad\",\"EBM\":\"Africa/Tunis\",\"EBN\":\"Pacific/Majuro\",\"EBO\":\"Pacific/Majuro\",\"EBR\":\"America/Chicago\",\"EBS\":\"America/Chicago\",\"EBU\":\"Europe/Paris\",\"EBW\":\"Africa/Douala\",\"ECA\":\"America/New_York\",\"ECG\":\"America/New_York\",\"ECH\":\"Australia/Sydney\",\"ECI\":\"America/Managua\",\"ECN\":\"Asia/Famagusta\",\"ECO\":\"America/Bogota\",\"ECP\":\"America/Chicago\",\"ECR\":\"America/Bogota\",\"ECS\":\"America/Denver\",\"EDA\":\"America/Anchorage\",\"EDB\":\"Africa/Khartoum\",\"EDC\":\"America/Chicago\",\"EDD\":\"Australia/Darwin\",\"EDE\":\"America/New_York\",\"EDF\":\"America/Anchorage\",\"EDG\":\"America/New_York\",\"EDI\":\"Europe/London\",\"EDK\":\"America/Chicago\",\"EDL\":\"Africa/Nairobi\",\"EDM\":\"Europe/Paris\",\"EDN\":\"Asia/Vladivostok\",\"EDO\":\"Europe/Istanbul\",\"EDQ\":\"America/Tegucigalpa\",\"EDR\":\"Australia/Brisbane\",\"EDW\":\"America/Los_Angeles\",\"EED\":\"America/Los_Angeles\",\"EEK\":\"America/Anchorage\",\"EEN\":\"America/New_York\",\"EFB\":\"America/Anchorage\",\"EFD\":\"America/Chicago\",\"EFG\":\"Pacific/Port_Moresby\",\"EFK\":\"America/New_York\",\"EFL\":\"Europe/Athens\",\"EFW\":\"America/Chicago\",\"EGA\":\"Pacific/Port_Moresby\",\"EGC\":\"Europe/Paris\",\"EGE\":\"America/Denver\",\"EGI\":\"America/Chicago\",\"EGL\":\"Africa/Addis_Ababa\",\"EGM\":\"Pacific/Guadalcanal\",\"EGN\":\"Africa/Khartoum\",\"EGO\":\"Europe/Moscow\",\"EGP\":\"America/Chicago\",\"EGS\":\"Atlantic/Reykjavik\",\"EGV\":\"America/Chicago\",\"EGX\":\"America/Anchorage\",\"EHL\":\"America/Argentina/Buenos_Aires\",\"EHM\":\"America/Anchorage\",\"EIA\":\"Pacific/Port_Moresby\",\"EIB\":\"Europe/Berlin\",\"EIE\":\"Asia/Krasnoyarsk\",\"EIH\":\"Australia/Brisbane\",\"EIL\":\"America/Anchorage\",\"EIN\":\"Europe/Amsterdam\",\"EIS\":\"America/Tortola\",\"EIY\":\"Asia/Jerusalem\",\"EJA\":\"America/Bogota\",\"EJH\":\"Asia/Riyadh\",\"EJN\":\"Asia/Shanghai\",\"EJT\":\"Pacific/Majuro\",\"EKA\":\"America/Los_Angeles\",\"EKB\":\"Asia/Almaty\",\"EKD\":\"Australia/Darwin\",\"EKE\":\"America/Guyana\",\"EKI\":\"America/Indiana/Indianapolis\",\"EKN\":\"America/New_York\",\"EKO\":\"America/Los_Angeles\",\"EKS\":\"Asia/Magadan\",\"EKT\":\"Europe/Stockholm\",\"EKX\":\"America/New_York\",\"ELA\":\"America/Chicago\",\"ELB\":\"America/Bogota\",\"ELC\":\"Australia/Darwin\",\"ELD\":\"America/Chicago\",\"ELE\":\"America/Panama\",\"ELF\":\"Africa/Khartoum\",\"ELG\":\"Africa/Algiers\",\"ELH\":\"America/Nassau\",\"ELI\":\"America/Anchorage\",\"ELJ\":\"America/Bogota\",\"ELK\":\"America/Chicago\",\"ELL\":\"Africa/Johannesburg\",\"ELM\":\"America/New_York\",\"ELN\":\"America/Los_Angeles\",\"ELO\":\"America/Argentina/Buenos_Aires\",\"ELP\":\"America/Denver\",\"ELQ\":\"Asia/Riyadh\",\"ELR\":\"Asia/Jayapura\",\"ELS\":\"Africa/Johannesburg\",\"ELT\":\"Africa/Cairo\",\"ELU\":\"Africa/Algiers\",\"ELV\":\"America/Anchorage\",\"ELW\":\"America/Anchorage\",\"ELX\":\"America/Caracas\",\"ELY\":\"America/Los_Angeles\",\"ELZ\":\"America/New_York\",\"EMA\":\"Europe/London\",\"EMB\":\"America/Los_Angeles\",\"EMD\":\"Australia/Brisbane\",\"EME\":\"Europe/Berlin\",\"EMG\":\"Africa/Johannesburg\",\"EMI\":\"Pacific/Port_Moresby\",\"EMK\":\"America/Anchorage\",\"EML\":\"Europe/Zurich\",\"EMM\":\"America/Denver\",\"EMN\":\"Africa/Nouakchott\",\"EMO\":\"Pacific/Port_Moresby\",\"EMP\":\"America/Chicago\",\"EMR\":\"America/Guatemala\",\"EMS\":\"Pacific/Port_Moresby\",\"EMT\":\"America/Los_Angeles\",\"EMX\":\"America/Argentina/Buenos_Aires\",\"EMY\":\"Africa/Cairo\",\"ENA\":\"America/Anchorage\",\"ENB\":\"Australia/Perth\",\"ENC\":\"Europe/Paris\",\"END\":\"America/Chicago\",\"ENE\":\"Asia/Makassar\",\"ENF\":\"Europe/Helsinki\",\"ENH\":\"Asia/Shanghai\",\"ENI\":\"Asia/Manila\",\"ENJ\":\"America/Guatemala\",\"ENK\":\"Europe/London\",\"ENL\":\"America/Chicago\",\"ENN\":\"America/Anchorage\",\"ENO\":\"America/Asuncion\",\"ENQ\":\"America/Tegucigalpa\",\"ENS\":\"Europe/Amsterdam\",\"ENT\":\"Pacific/Majuro\",\"ENU\":\"Africa/Lagos\",\"ENV\":\"America/Denver\",\"ENW\":\"America/Chicago\",\"ENY\":\"Asia/Shanghai\",\"EOH\":\"America/Bogota\",\"EOI\":\"Europe/London\",\"EOK\":\"America/Chicago\",\"EOR\":\"America/Caracas\",\"EOS\":\"America/Chicago\",\"EOZ\":\"America/Caracas\",\"EPA\":\"America/Argentina/Buenos_Aires\",\"EPG\":\"America/Chicago\",\"EPH\":\"America/Los_Angeles\",\"EPI\":\"Pacific/Efate\",\"EPK\":\"Asia/Nicosia\",\"EPL\":\"Europe/Paris\",\"EPN\":\"Africa/Brazzaville\",\"EPR\":\"Australia/Perth\",\"EPS\":\"America/Santo_Domingo\",\"EPT\":\"Pacific/Port_Moresby\",\"EPU\":\"Europe/Tallinn\",\"EQS\":\"America/Argentina/Buenos_Aires\",\"ERA\":\"Africa/Mogadishu\",\"ERB\":\"Australia/Adelaide\",\"ERC\":\"Europe/Istanbul\",\"ERD\":\"Europe/Kiev\",\"ERE\":\"Pacific/Port_Moresby\",\"ERF\":\"Europe/Berlin\",\"ERG\":\"Asia/Irkutsk\",\"ERH\":\"Africa/Casablanca\",\"ERI\":\"America/New_York\",\"ERL\":\"Asia/Shanghai\",\"ERM\":\"America/Sao_Paulo\",\"ERN\":\"America/Eirunepe\",\"ERO\":\"America/Anchorage\",\"ERQ\":\"Australia/Brisbane\",\"ERR\":\"America/New_York\",\"ERS\":\"Africa/Windhoek\",\"ERT\":\"Asia/Ulaanbaatar\",\"ERU\":\"Pacific/Port_Moresby\",\"ERV\":\"America/Chicago\",\"ERZ\":\"Europe/Istanbul\",\"ESA\":\"Pacific/Port_Moresby\",\"ESB\":\"Europe/Istanbul\",\"ESC\":\"America/New_York\",\"ESD\":\"America/Los_Angeles\",\"ESE\":\"America/Tijuana\",\"ESF\":\"America/Chicago\",\"ESG\":\"America/Asuncion\",\"ESH\":\"Europe/London\",\"ESI\":\"America/Sao_Paulo\",\"ESK\":\"Europe/Istanbul\",\"ESL\":\"Europe/Moscow\",\"ESM\":\"America/Guayaquil\",\"ESN\":\"America/New_York\",\"ESO\":\"America/Denver\",\"ESP\":\"America/New_York\",\"ESR\":\"America/Santiago\",\"ESS\":\"Europe/Berlin\",\"EST\":\"America/Chicago\",\"ESU\":\"Africa/Casablanca\",\"ESW\":\"America/Los_Angeles\",\"ETB\":\"America/Chicago\",\"ETD\":\"Australia/Adelaide\",\"ETE\":\"Africa/Addis_Ababa\",\"ETH\":\"Asia/Jerusalem\",\"ETL\":\"Asia/Vladivostok\",\"ETM\":\"Asia/Jerusalem\",\"ETN\":\"America/Chicago\",\"ETR\":\"America/Guayaquil\",\"ETS\":\"America/Chicago\",\"ETZ\":\"Europe/Paris\",\"EUA\":\"Pacific/Tongatapu\",\"EUC\":\"Australia/Perth\",\"EUE\":\"America/Los_Angeles\",\"EUF\":\"America/Chicago\",\"EUG\":\"America/Los_Angeles\",\"EUM\":\"Europe/Berlin\",\"EUN\":\"Africa/Casablanca\",\"EUQ\":\"Asia/Manila\",\"EUX\":\"America/Curacao\",\"EVA\":\"America/Chicago\",\"EVD\":\"Australia/Darwin\",\"EVE\":\"Europe/Oslo\",\"EVG\":\"Europe/Stockholm\",\"EVH\":\"Australia/Sydney\",\"EVM\":\"America/Chicago\",\"EVN\":\"Asia/Yerevan\",\"EVV\":\"America/Chicago\",\"EVW\":\"America/Denver\",\"EVX\":\"Europe/Paris\",\"EWB\":\"America/New_York\",\"EWD\":\"America/Anchorage\",\"EWE\":\"Asia/Jayapura\",\"EWI\":\"Asia/Jayapura\",\"EWK\":\"America/Chicago\",\"EWN\":\"America/New_York\",\"EWO\":\"Africa/Brazzaville\",\"EWR\":\"America/New_York\",\"EWY\":\"Europe/London\",\"EXI\":\"America/Anchorage\",\"EXM\":\"Australia/Perth\",\"EXT\":\"Europe/London\",\"EYK\":\"Asia/Yekaterinburg\",\"EYL\":\"Africa/Bamako\",\"EYP\":\"America/Bogota\",\"EYR\":\"America/Los_Angeles\",\"EYS\":\"Africa/Nairobi\",\"EYW\":\"America/New_York\",\"EZE\":\"America/Argentina/Buenos_Aires\",\"EZS\":\"Europe/Istanbul\",\"EZV\":\"Asia/Yekaterinburg\",\"FAA\":\"Africa/Conakry\",\"FAB\":\"Europe/London\",\"FAC\":\"Pacific/Tahiti\",\"FAE\":\"Atlantic/Faroe\",\"FAF\":\"America/New_York\",\"FAG\":\"Atlantic/Reykjavik\",\"FAH\":\"Asia/Kabul\",\"FAI\":\"America/Anchorage\",\"FAJ\":\"America/Puerto_Rico\",\"FAK\":\"America/Anchorage\",\"FAL\":\"America/Chicago\",\"FAM\":\"America/Chicago\",\"FAN\":\"Europe/Oslo\",\"FAO\":\"Europe/Lisbon\",\"FAQ\":\"Pacific/Port_Moresby\",\"FAR\":\"America/Chicago\",\"FAS\":\"Atlantic/Reykjavik\",\"FAT\":\"America/Los_Angeles\",\"FAU\":\"Asia/Muscat\",\"FAV\":\"Pacific/Tahiti\",\"FAY\":\"America/New_York\",\"FAZ\":\"Asia/Tehran\",\"FBA\":\"America/Porto_Velho\",\"FBD\":\"Asia/Kabul\",\"FBE\":\"America/Sao_Paulo\",\"FBG\":\"America/New_York\",\"FBK\":\"America/Anchorage\",\"FBL\":\"America/Chicago\",\"FBM\":\"Africa/Lubumbashi\",\"FBR\":\"America/Denver\",\"FBS\":\"America/Los_Angeles\",\"FBY\":\"America/Chicago\",\"FCA\":\"America/Denver\",\"FCB\":\"Africa/Johannesburg\",\"FCH\":\"America/Los_Angeles\",\"FCM\":\"America/Chicago\",\"FCN\":\"Europe/Berlin\",\"FCO\":\"Europe/Rome\",\"FCS\":\"America/Denver\",\"FCT\":\"America/Los_Angeles\",\"FCY\":\"America/Chicago\",\"FDB\":\"America/Campo_Grande\",\"FDE\":\"Europe/Oslo\",\"FDF\":\"America/Martinique\",\"FDH\":\"Europe/Berlin\",\"FDK\":\"America/New_York\",\"FDR\":\"America/Chicago\",\"FDU\":\"Africa/Kinshasa\",\"FDY\":\"America/New_York\",\"FEA\":\"Europe/London\",\"FEB\":\"Asia/Kathmandu\",\"FEC\":\"America/Belem\",\"FEG\":\"Asia/Tashkent\",\"FEJ\":\"America/Rio_Branco\",\"FEK\":\"Africa/Abidjan\",\"FEL\":\"Europe/Berlin\",\"FEN\":\"America/Noronha\",\"FEP\":\"America/Chicago\",\"FES\":\"Europe/Madrid\",\"FET\":\"America/Chicago\",\"FEW\":\"America/Denver\",\"FEZ\":\"Africa/Casablanca\",\"FFA\":\"America/New_York\",\"FFD\":\"Europe/London\",\"FFL\":\"America/Chicago\",\"FFM\":\"America/Chicago\",\"FFO\":\"America/New_York\",\"FFT\":\"America/New_York\",\"FFU\":\"America/Santiago\",\"FGD\":\"Africa/Nouakchott\",\"FGI\":\"Pacific/Apia\",\"FGL\":\"Pacific/Auckland\",\"FGR\":\"Europe/Madrid\",\"FGU\":\"Pacific/Tahiti\",\"FHU\":\"America/Phoenix\",\"FHZ\":\"Pacific/Tahiti\",\"FIC\":\"America/Anchorage\",\"FID\":\"America/New_York\",\"FIE\":\"Europe/London\",\"FIG\":\"Africa/Conakry\",\"FIH\":\"Africa/Kinshasa\",\"FIK\":\"Australia/Darwin\",\"FIL\":\"America/Denver\",\"FIN\":\"Pacific/Port_Moresby\",\"FIV\":\"America/Anchorage\",\"FIZ\":\"Australia/Perth\",\"FJR\":\"Asia/Dubai\",\"FKB\":\"Europe/Berlin\",\"FKH\":\"Europe/London\",\"FKI\":\"Africa/Lubumbashi\",\"FKJ\":\"Asia/Tokyo\",\"FKL\":\"America/New_York\",\"FKN\":\"America/New_York\",\"FKQ\":\"Asia/Jayapura\",\"FKS\":\"Asia/Tokyo\",\"FLA\":\"America/Bogota\",\"FLB\":\"America/Belem\",\"FLC\":\"Australia/Sydney\",\"FLD\":\"America/Chicago\",\"FLF\":\"Europe/Berlin\",\"FLG\":\"America/Phoenix\",\"FLH\":\"Europe/London\",\"FLI\":\"Atlantic/Reykjavik\",\"FLJ\":\"America/Anchorage\",\"FLL\":\"America/New_York\",\"FLM\":\"America/Asuncion\",\"FLN\":\"America/Sao_Paulo\",\"FLO\":\"America/New_York\",\"FLP\":\"America/Chicago\",\"FLR\":\"Europe/Rome\",\"FLS\":\"Australia/Hobart\",\"FLT\":\"America/Anchorage\",\"FLV\":\"America/Chicago\",\"FLW\":\"Atlantic/Azores\",\"FLX\":\"America/Los_Angeles\",\"FLY\":\"Australia/Sydney\",\"FLZ\":\"Asia/Jakarta\",\"FMA\":\"America/Argentina/Buenos_Aires\",\"FMC\":\"America/Anchorage\",\"FME\":\"America/New_York\",\"FMG\":\"America/Costa_Rica\",\"FMH\":\"America/New_York\",\"FMI\":\"Africa/Lubumbashi\",\"FMM\":\"Europe/Berlin\",\"FMN\":\"America/Denver\",\"FMO\":\"Europe/Berlin\",\"FMS\":\"America/Chicago\",\"FMU\":\"America/Los_Angeles\",\"FMY\":\"America/New_York\",\"FNA\":\"Africa/Freetown\",\"FNB\":\"Europe/Berlin\",\"FNC\":\"Europe/Lisbon\",\"FND\":\"Indian/Maldives\",\"FNE\":\"Pacific/Port_Moresby\",\"FNG\":\"Africa/Ouagadougou\",\"FNH\":\"Africa/Addis_Ababa\",\"FNI\":\"Europe/Paris\",\"FNJ\":\"Asia/Pyongyang\",\"FNK\":\"America/Anchorage\",\"FNL\":\"America/Denver\",\"FNR\":\"America/Anchorage\",\"FNT\":\"America/New_York\",\"FOA\":\"Europe/London\",\"FOB\":\"America/Los_Angeles\",\"FOC\":\"Asia/Shanghai\",\"FOD\":\"America/Chicago\",\"FOE\":\"America/Chicago\",\"FOG\":\"Europe/Rome\",\"FOK\":\"America/New_York\",\"FOM\":\"Africa/Douala\",\"FON\":\"America/Costa_Rica\",\"FOO\":\"Asia/Jayapura\",\"FOP\":\"America/New_York\",\"FOR\":\"America/Belem\",\"FOS\":\"Australia/Perth\",\"FOT\":\"Australia/Sydney\",\"FOU\":\"Africa/Libreville\",\"FOX\":\"America/Anchorage\",\"FOY\":\"Africa/Monrovia\",\"FPO\":\"America/Nassau\",\"FPR\":\"America/New_York\",\"FPY\":\"America/New_York\",\"FRA\":\"Europe/Berlin\",\"FRB\":\"Australia/Sydney\",\"FRC\":\"America/Sao_Paulo\",\"FRD\":\"America/Los_Angeles\",\"FRE\":\"Pacific/Guadalcanal\",\"FRG\":\"America/New_York\",\"FRH\":\"America/Indiana/Indianapolis\",\"FRI\":\"America/Chicago\",\"FRJ\":\"Europe/Paris\",\"FRK\":\"Indian/Mahe\",\"FRL\":\"Europe/Rome\",\"FRM\":\"America/Chicago\",\"FRN\":\"America/Anchorage\",\"FRO\":\"Europe/Oslo\",\"FRP\":\"America/Anchorage\",\"FRQ\":\"Pacific/Port_Moresby\",\"FRR\":\"America/New_York\",\"FRS\":\"America/Guatemala\",\"FRT\":\"America/Santiago\",\"FRU\":\"Asia/Bishkek\",\"FRW\":\"Africa/Gaborone\",\"FRY\":\"America/New_York\",\"FRZ\":\"Europe/Berlin\",\"FSC\":\"Europe/Paris\",\"FSD\":\"America/Chicago\",\"FSI\":\"America/Chicago\",\"FSK\":\"America/Chicago\",\"FSL\":\"Australia/Perth\",\"FSM\":\"America/Chicago\",\"FSN\":\"America/Chicago\",\"FSP\":\"America/Miquelon\",\"FSS\":\"Europe/London\",\"FST\":\"America/Chicago\",\"FSU\":\"America/Denver\",\"FSZ\":\"Asia/Tokyo\",\"FTA\":\"Pacific/Efate\",\"FTE\":\"America/Argentina/Buenos_Aires\",\"FTI\":\"Pacific/Pago_Pago\",\"FTK\":\"America/Chicago\",\"FTL\":\"America/Anchorage\",\"FTU\":\"Indian/Antananarivo\",\"FTW\":\"America/Chicago\",\"FTX\":\"Africa/Brazzaville\",\"FTY\":\"America/New_York\",\"FUB\":\"Pacific/Port_Moresby\",\"FUD\":\"Asia/Shanghai\",\"FUE\":\"Atlantic/Canary\",\"FUG\":\"Asia/Shanghai\",\"FUJ\":\"Asia/Tokyo\",\"FUK\":\"Asia/Tokyo\",\"FUL\":\"America/Los_Angeles\",\"FUM\":\"Pacific/Port_Moresby\",\"FUN\":\"Pacific/Funafuti\",\"FUO\":\"Asia/Shanghai\",\"FUP\":\"Europe/Stockholm\",\"FUT\":\"Pacific/Wallis\",\"FVL\":\"Australia/Perth\",\"FVM\":\"Indian/Maldives\",\"FVR\":\"Australia/Perth\",\"FWA\":\"America/Indiana/Indianapolis\",\"FWH\":\"America/Chicago\",\"FWL\":\"America/Anchorage\",\"FWM\":\"Europe/London\",\"FXE\":\"America/New_York\",\"FXM\":\"America/Anchorage\",\"FXO\":\"Africa/Maputo\",\"FXY\":\"America/Chicago\",\"FYJ\":\"Asia/Shanghai\",\"FYM\":\"America/Chicago\",\"FYN\":\"Asia/Shanghai\",\"FYT\":\"Africa/Ndjamena\",\"FYU\":\"America/Anchorage\",\"FYV\":\"America/Chicago\",\"FZO\":\"Europe/London\",\"GAA\":\"America/Bogota\",\"GAB\":\"America/Los_Angeles\",\"GAC\":\"America/Tegucigalpa\",\"GAD\":\"America/Chicago\",\"GAE\":\"Africa/Tunis\",\"GAF\":\"Africa/Tunis\",\"GAG\":\"America/Chicago\",\"GAH\":\"Australia/Brisbane\",\"GAI\":\"America/New_York\",\"GAJ\":\"Asia/Tokyo\",\"GAK\":\"America/Anchorage\",\"GAL\":\"America/Anchorage\",\"GAM\":\"America/Anchorage\",\"GAN\":\"Indian/Maldives\",\"GAO\":\"America/Havana\",\"GAP\":\"Pacific/Port_Moresby\",\"GAQ\":\"Africa/Bamako\",\"GAR\":\"Pacific/Port_Moresby\",\"GAS\":\"Africa/Nairobi\",\"GAT\":\"Europe/Paris\",\"GAU\":\"Asia/Kolkata\",\"GAV\":\"Asia/Jayapura\",\"GAW\":\"Asia/Yangon\",\"GAX\":\"Africa/Libreville\",\"GAY\":\"Asia/Kolkata\",\"GAZ\":\"Pacific/Port_Moresby\",\"GBA\":\"Pacific/Efate\",\"GBB\":\"Asia/Baku\",\"GBC\":\"Pacific/Port_Moresby\",\"GBD\":\"America/Chicago\",\"GBE\":\"Africa/Gaborone\",\"GBF\":\"Pacific/Port_Moresby\",\"GBG\":\"America/Chicago\",\"GBH\":\"America/Anchorage\",\"GBI\":\"Asia/Kolkata\",\"GBJ\":\"America/Guadeloupe\",\"GBK\":\"Africa/Freetown\",\"GBL\":\"Australia/Darwin\",\"GBM\":\"Africa/Mogadishu\",\"GBO\":\"America/New_York\",\"GBP\":\"Australia/Brisbane\",\"GBR\":\"America/New_York\",\"GBS\":\"Pacific/Auckland\",\"GBT\":\"Asia/Tehran\",\"GBU\":\"Africa/Khartoum\",\"GBV\":\"Australia/Perth\",\"GBW\":\"Australia/Perth\",\"GBZ\":\"Pacific/Auckland\",\"GCA\":\"America/Bogota\",\"GCC\":\"America/Denver\",\"GCH\":\"Asia/Tehran\",\"GCI\":\"Europe/London\",\"GCJ\":\"Africa/Johannesburg\",\"GCK\":\"America/Chicago\",\"GCM\":\"America/Cayman\",\"GCN\":\"America/Phoenix\",\"GCT\":\"America/Phoenix\",\"GCV\":\"America/Sao_Paulo\",\"GCW\":\"America/Phoenix\",\"GCY\":\"America/Chicago\",\"GDA\":\"Africa/Bangui\",\"GDC\":\"America/New_York\",\"GDD\":\"Australia/Perth\",\"GDE\":\"Africa/Addis_Ababa\",\"GDG\":\"Asia/Yakutsk\",\"GDH\":\"America/Anchorage\",\"GDI\":\"Africa/Bangui\",\"GDJ\":\"Africa/Kinshasa\",\"GDL\":\"America/Mexico_City\",\"GDM\":\"America/New_York\",\"GDN\":\"Europe/Warsaw\",\"GDO\":\"America/Caracas\",\"GDP\":\"America/Belem\",\"GDQ\":\"Africa/Addis_Ababa\",\"GDT\":\"America/Grand_Turk\",\"GDV\":\"America/Denver\",\"GDW\":\"America/New_York\",\"GDX\":\"Asia/Magadan\",\"GDZ\":\"Europe/Moscow\",\"GEA\":\"Pacific/Noumea\",\"GEB\":\"Asia/Jayapura\",\"GEC\":\"Asia/Famagusta\",\"GED\":\"America/New_York\",\"GEE\":\"Australia/Hobart\",\"GEF\":\"Pacific/Guadalcanal\",\"GEG\":\"America/Los_Angeles\",\"GEI\":\"Pacific/Bougainville\",\"GEK\":\"America/Anchorage\",\"GEL\":\"America/Sao_Paulo\",\"GEM\":\"Africa/Lagos\",\"GEN\":\"Europe/Madrid\",\"GEO\":\"America/Guyana\",\"GER\":\"America/Havana\",\"GES\":\"Asia/Manila\",\"GET\":\"Australia/Perth\",\"GEV\":\"Europe/Stockholm\",\"GEW\":\"Pacific/Port_Moresby\",\"GEX\":\"Australia/Sydney\",\"GEY\":\"America/Denver\",\"GFA\":\"America/Denver\",\"GFB\":\"America/Anchorage\",\"GFD\":\"America/Indiana/Indianapolis\",\"GFE\":\"Australia/Sydney\",\"GFF\":\"Australia/Sydney\",\"GFK\":\"America/Chicago\",\"GFL\":\"America/New_York\",\"GFN\":\"Australia/Sydney\",\"GFO\":\"America/Guyana\",\"GFR\":\"Europe/Paris\",\"GFY\":\"Africa/Windhoek\",\"GGB\":\"America/Cuiaba\",\"GGC\":\"Africa/Luanda\",\"GGD\":\"Australia/Brisbane\",\"GGE\":\"America/New_York\",\"GGF\":\"America/Santarem\",\"GGG\":\"America/Chicago\",\"GGH\":\"America/Campo_Grande\",\"GGJ\":\"America/Sao_Paulo\",\"GGL\":\"America/Bogota\",\"GGM\":\"Africa/Nairobi\",\"GGN\":\"Africa/Abidjan\",\"GGO\":\"Africa/Abidjan\",\"GGR\":\"Africa/Mogadishu\",\"GGS\":\"America/Argentina/Buenos_Aires\",\"GGT\":\"America/Nassau\",\"GGW\":\"America/Denver\",\"GHA\":\"Africa/Algiers\",\"GHB\":\"America/Nassau\",\"GHC\":\"America/Nassau\",\"GHD\":\"Africa/Addis_Ababa\",\"GHE\":\"America/Panama\",\"GHF\":\"Europe/Berlin\",\"GHK\":\"Asia/Jerusalem\",\"GHM\":\"America/Chicago\",\"GHN\":\"Asia/Shanghai\",\"GHS\":\"Asia/Makassar\",\"GHT\":\"Africa/Tripoli\",\"GHU\":\"America/Argentina/Buenos_Aires\",\"GIB\":\"Europe/Gibraltar\",\"GIC\":\"Australia/Brisbane\",\"GID\":\"Africa/Bujumbura\",\"GIF\":\"America/New_York\",\"GIG\":\"America/Sao_Paulo\",\"GII\":\"Africa/Conakry\",\"GIL\":\"Asia/Karachi\",\"GIM\":\"Africa/Libreville\",\"GIR\":\"America/Bogota\",\"GIS\":\"Pacific/Auckland\",\"GIT\":\"Africa/Dar_es_Salaam\",\"GIU\":\"Asia/Colombo\",\"GIY\":\"Africa/Johannesburg\",\"GIZ\":\"Asia/Riyadh\",\"GJA\":\"America/Tegucigalpa\",\"GJL\":\"Africa/Algiers\",\"GJM\":\"America/Porto_Velho\",\"GJR\":\"Atlantic/Reykjavik\",\"GJT\":\"America/Denver\",\"GKA\":\"Pacific/Port_Moresby\",\"GKE\":\"Europe/Berlin\",\"GKH\":\"Asia/Kathmandu\",\"GKK\":\"Indian/Maldives\",\"GKL\":\"Australia/Brisbane\",\"GKN\":\"America/Anchorage\",\"GKO\":\"Africa/Libreville\",\"GKT\":\"America/New_York\",\"GLA\":\"Europe/London\",\"GLC\":\"Africa/Addis_Ababa\",\"GLD\":\"America/Denver\",\"GLE\":\"America/Chicago\",\"GLF\":\"America/Costa_Rica\",\"GLG\":\"Australia/Brisbane\",\"GLH\":\"America/Chicago\",\"GLI\":\"Australia/Sydney\",\"GLK\":\"Africa/Mogadishu\",\"GLL\":\"Europe/Oslo\",\"GLM\":\"Australia/Brisbane\",\"GLN\":\"Africa/Casablanca\",\"GLO\":\"Europe/London\",\"GLP\":\"Pacific/Port_Moresby\",\"GLQ\":\"America/Anchorage\",\"GLR\":\"America/New_York\",\"GLS\":\"America/Chicago\",\"GLT\":\"Australia/Brisbane\",\"GLU\":\"Asia/Thimphu\",\"GLV\":\"America/Anchorage\",\"GLW\":\"America/Chicago\",\"GLX\":\"Asia/Jayapura\",\"GLY\":\"Australia/Perth\",\"GLZ\":\"Europe/Amsterdam\",\"GMA\":\"Africa/Kinshasa\",\"GMB\":\"Africa/Addis_Ababa\",\"GMC\":\"America/Bogota\",\"GMD\":\"Africa/Casablanca\",\"GME\":\"Europe/Minsk\",\"GMI\":\"Pacific/Port_Moresby\",\"GMM\":\"Africa/Brazzaville\",\"GMN\":\"Pacific/Auckland\",\"GMO\":\"Africa/Lagos\",\"GMP\":\"Asia/Seoul\",\"GMQ\":\"Asia/Shanghai\",\"GMR\":\"Pacific/Gambier\",\"GMS\":\"America/Belem\",\"GMT\":\"America/Anchorage\",\"GMU\":\"America/New_York\",\"GMV\":\"America/Denver\",\"GMY\":\"Europe/Berlin\",\"GMZ\":\"Atlantic/Canary\",\"GNA\":\"Europe/Minsk\",\"GNB\":\"Europe/Paris\",\"GND\":\"America/Grenada\",\"GNE\":\"Europe/Brussels\",\"GNF\":\"America/Los_Angeles\",\"GNG\":\"America/Denver\",\"GNI\":\"Asia/Taipei\",\"GNM\":\"America/Belem\",\"GNN\":\"Africa/Addis_Ababa\",\"GNR\":\"America/Argentina/Buenos_Aires\",\"GNS\":\"Asia/Jakarta\",\"GNT\":\"America/Denver\",\"GNU\":\"America/Anchorage\",\"GNV\":\"America/New_York\",\"GNY\":\"Europe/Istanbul\",\"GNZ\":\"Africa/Gaborone\",\"GOA\":\"Europe/Rome\",\"GOB\":\"Africa/Addis_Ababa\",\"GOC\":\"Pacific/Port_Moresby\",\"GOE\":\"Pacific/Port_Moresby\",\"GOF\":\"America/Chicago\",\"GOG\":\"Africa/Windhoek\",\"GOH\":\"America/Godthab\",\"GOI\":\"Asia/Kolkata\",\"GOJ\":\"Europe/Moscow\",\"GOK\":\"America/Chicago\",\"GOL\":\"America/Los_Angeles\",\"GOM\":\"Africa/Lubumbashi\",\"GON\":\"America/New_York\",\"GOO\":\"Australia/Brisbane\",\"GOP\":\"Asia/Kolkata\",\"GOQ\":\"Asia/Shanghai\",\"GOR\":\"Africa/Addis_Ababa\",\"GOS\":\"Australia/Sydney\",\"GOT\":\"Europe/Stockholm\",\"GOU\":\"Africa/Douala\",\"GOV\":\"Australia/Darwin\",\"GOZ\":\"Europe/Sofia\",\"GPA\":\"Europe/Athens\",\"GPB\":\"America/Sao_Paulo\",\"GPD\":\"Australia/Brisbane\",\"GPI\":\"America/Bogota\",\"GPL\":\"America/Costa_Rica\",\"GPN\":\"Australia/Darwin\",\"GPO\":\"America/Argentina/Buenos_Aires\",\"GPS\":\"Pacific/Galapagos\",\"GPT\":\"America/Chicago\",\"GPZ\":\"America/Chicago\",\"GQJ\":\"Europe/London\",\"GQQ\":\"America/New_York\",\"GRA\":\"America/Bogota\",\"GRB\":\"America/Chicago\",\"GRC\":\"Africa/Monrovia\",\"GRD\":\"America/New_York\",\"GRE\":\"America/Chicago\",\"GRF\":\"America/Los_Angeles\",\"GRG\":\"Asia/Kabul\",\"GRH\":\"Pacific/Port_Moresby\",\"GRI\":\"America/Chicago\",\"GRJ\":\"Africa/Johannesburg\",\"GRK\":\"America/Chicago\",\"GRL\":\"Pacific/Port_Moresby\",\"GRM\":\"America/Chicago\",\"GRN\":\"America/Denver\",\"GRO\":\"Europe/Madrid\",\"GRP\":\"America/Belem\",\"GRQ\":\"Europe/Amsterdam\",\"GRR\":\"America/New_York\",\"GRS\":\"Europe/Rome\",\"GRT\":\"Asia/Karachi\",\"GRU\":\"America/Sao_Paulo\",\"GRV\":\"Europe/Moscow\",\"GRW\":\"Atlantic/Azores\",\"GRX\":\"Europe/Madrid\",\"GRY\":\"Atlantic/Reykjavik\",\"GRZ\":\"Europe/Vienna\",\"GSA\":\"Asia/Kuala_Lumpur\",\"GSB\":\"America/New_York\",\"GSC\":\"Australia/Perth\",\"GSE\":\"Europe/Stockholm\",\"GSH\":\"America/Indiana/Indianapolis\",\"GSI\":\"Pacific/Guadalcanal\",\"GSJ\":\"America/Guatemala\",\"GSL\":\"America/Edmonton\",\"GSM\":\"Asia/Tehran\",\"GSN\":\"Australia/Adelaide\",\"GSO\":\"America/New_York\",\"GSP\":\"America/New_York\",\"GSQ\":\"Africa/Cairo\",\"GSR\":\"Africa/Mogadishu\",\"GSS\":\"Africa/Johannesburg\",\"GST\":\"America/Anchorage\",\"GSU\":\"Africa/Khartoum\",\"GSV\":\"Europe/Saratov\",\"GSY\":\"Europe/London\",\"GTA\":\"Pacific/Guadalcanal\",\"GTB\":\"Asia/Kuala_Lumpur\",\"GTC\":\"America/Nassau\",\"GTE\":\"Australia/Darwin\",\"GTF\":\"America/Denver\",\"GTG\":\"America/Chicago\",\"GTI\":\"Europe/Berlin\",\"GTK\":\"Asia/Kuala_Lumpur\",\"GTN\":\"Pacific/Auckland\",\"GTO\":\"Asia/Makassar\",\"GTP\":\"America/Los_Angeles\",\"GTR\":\"America/Chicago\",\"GTS\":\"Australia/Darwin\",\"GTT\":\"Australia/Brisbane\",\"GTW\":\"Europe/Prague\",\"GTY\":\"America/New_York\",\"GTZ\":\"Africa/Dar_es_Salaam\",\"GUA\":\"America/Guatemala\",\"GUB\":\"America/Mazatlan\",\"GUC\":\"America/Denver\",\"GUD\":\"Africa/Bamako\",\"GUE\":\"Pacific/Port_Moresby\",\"GUF\":\"America/Chicago\",\"GUG\":\"Pacific/Port_Moresby\",\"GUH\":\"Australia/Sydney\",\"GUI\":\"America/Caracas\",\"GUJ\":\"America/Sao_Paulo\",\"GUL\":\"Australia/Sydney\",\"GUM\":\"Pacific/Guam\",\"GUO\":\"Africa/Mogadishu\",\"GUP\":\"America/Denver\",\"GUQ\":\"America/Caracas\",\"GUR\":\"Pacific/Port_Moresby\",\"GUS\":\"America/Indiana/Indianapolis\",\"GUT\":\"Europe/Berlin\",\"GUU\":\"Atlantic/Reykjavik\",\"GUV\":\"Pacific/Port_Moresby\",\"GUW\":\"Asia/Atyrau\",\"GUX\":\"Asia/Kolkata\",\"GUY\":\"America/Chicago\",\"GUZ\":\"America/Sao_Paulo\",\"GVA\":\"Europe/Zurich\",\"GVE\":\"America/New_York\",\"GVI\":\"Pacific/Port_Moresby\",\"GVL\":\"America/New_York\",\"GVP\":\"Australia/Brisbane\",\"GVR\":\"America/Sao_Paulo\",\"GVT\":\"America/Chicago\",\"GVW\":\"America/Chicago\",\"GVX\":\"Europe/Stockholm\",\"GWA\":\"Asia/Yangon\",\"GWD\":\"Asia/Karachi\",\"GWE\":\"Africa/Harare\",\"GWL\":\"Asia/Kolkata\",\"GWN\":\"Pacific/Port_Moresby\",\"GWO\":\"America/Chicago\",\"GWS\":\"America/Denver\",\"GWT\":\"Europe/Berlin\",\"GWV\":\"America/New_York\",\"GWW\":\"Europe/Berlin\",\"GWY\":\"Europe/Dublin\",\"GXA\":\"Asia/Jakarta\",\"GXF\":\"Asia/Aden\",\"GXG\":\"Africa/Luanda\",\"GXH\":\"Asia/Shanghai\",\"GXQ\":\"America/Santiago\",\"GXX\":\"Africa/Douala\",\"GXY\":\"America/Denver\",\"GYA\":\"America/La_Paz\",\"GYB\":\"Australia/Perth\",\"GYD\":\"Asia/Baku\",\"GYE\":\"America/Guayaquil\",\"GYG\":\"Asia/Yakutsk\",\"GYI\":\"Africa/Kigali\",\"GYL\":\"Australia/Perth\",\"GYM\":\"America/Hermosillo\",\"GYN\":\"America/Sao_Paulo\",\"GYP\":\"Australia/Brisbane\",\"GYR\":\"America/Phoenix\",\"GYS\":\"Asia/Shanghai\",\"GYU\":\"Asia/Shanghai\",\"GYZ\":\"Australia/Perth\",\"GZA\":\"Asia/Gaza\",\"GZG\":\"Asia/Shanghai\",\"GZI\":\"Asia/Kabul\",\"GZM\":\"Europe/Malta\",\"GZO\":\"Pacific/Guadalcanal\",\"GZP\":\"Europe/Istanbul\",\"GZT\":\"Europe/Istanbul\",\"GZW\":\"Asia/Tehran\",\"HAA\":\"Europe/Oslo\",\"HAB\":\"America/Chicago\",\"HAC\":\"Asia/Tokyo\",\"HAD\":\"Europe/Stockholm\",\"HAE\":\"America/Phoenix\",\"HAF\":\"America/Los_Angeles\",\"HAH\":\"Indian/Comoro\",\"HAI\":\"America/New_York\",\"HAJ\":\"Europe/Berlin\",\"HAK\":\"Asia/Shanghai\",\"HAL\":\"Africa/Windhoek\",\"HAM\":\"Europe/Berlin\",\"HAN\":\"Asia/Ho_Chi_Minh\",\"HAO\":\"America/New_York\",\"HAP\":\"Australia/Brisbane\",\"HAQ\":\"Indian/Maldives\",\"HAR\":\"America/New_York\",\"HAS\":\"Asia/Riyadh\",\"HAT\":\"Australia/Brisbane\",\"HAU\":\"Europe/Oslo\",\"HAV\":\"America/Havana\",\"HAW\":\"Europe/London\",\"HAX\":\"America/Chicago\",\"HAY\":\"America/Anchorage\",\"HAZ\":\"Pacific/Port_Moresby\",\"HBA\":\"Australia/Hobart\",\"HBB\":\"America/Denver\",\"HBC\":\"America/Anchorage\",\"HBD\":\"Pacific/Port_Moresby\",\"HBE\":\"Africa/Cairo\",\"HBG\":\"America/Chicago\",\"HBH\":\"America/Anchorage\",\"HBI\":\"America/Nassau\",\"HBK\":\"America/Phoenix\",\"HBN\":\"Asia/Ho_Chi_Minh\",\"HBO\":\"America/Chicago\",\"HBQ\":\"Asia/Shanghai\",\"HBR\":\"America/Chicago\",\"HBT\":\"Asia/Colombo\",\"HBU\":\"Asia/Ulaanbaatar\",\"HBX\":\"Asia/Kolkata\",\"HCA\":\"America/Chicago\",\"HCB\":\"America/Anchorage\",\"HCC\":\"America/New_York\",\"HCJ\":\"Asia/Shanghai\",\"HCM\":\"Africa/Mogadishu\",\"HCN\":\"Asia/Taipei\",\"HCQ\":\"Australia/Perth\",\"HCR\":\"America/Anchorage\",\"HCW\":\"America/New_York\",\"HDA\":\"America/Anchorage\",\"HDB\":\"Europe/Berlin\",\"HDD\":\"Asia/Karachi\",\"HDE\":\"America/Chicago\",\"HDF\":\"Europe/Berlin\",\"HDG\":\"Asia/Shanghai\",\"HDH\":\"Pacific/Honolulu\",\"HDK\":\"Indian/Maldives\",\"HDM\":\"Asia/Tehran\",\"HDN\":\"America/Denver\",\"HDR\":\"Asia/Tehran\",\"HDS\":\"Africa/Johannesburg\",\"HDY\":\"Asia/Bangkok\",\"HEA\":\"Asia/Kabul\",\"HEB\":\"Asia/Yangon\",\"HED\":\"America/Anchorage\",\"HEE\":\"America/Chicago\",\"HEH\":\"Asia/Yangon\",\"HEI\":\"Europe/Berlin\",\"HEK\":\"Asia/Shanghai\",\"HEL\":\"Europe/Helsinki\",\"HEM\":\"Europe/Helsinki\",\"HEO\":\"Pacific/Port_Moresby\",\"HER\":\"Europe/Athens\",\"HES\":\"America/Los_Angeles\",\"HET\":\"Asia/Shanghai\",\"HEV\":\"Europe/Madrid\",\"HEW\":\"Asia/Shanghai\",\"HEX\":\"America/Santo_Domingo\",\"HEY\":\"America/Chicago\",\"HEZ\":\"America/Chicago\",\"HFA\":\"Asia/Jerusalem\",\"HFD\":\"America/New_York\",\"HFE\":\"Asia/Shanghai\",\"HFF\":\"America/New_York\",\"HFN\":\"Atlantic/Reykjavik\",\"HFS\":\"Europe/Stockholm\",\"HFT\":\"Europe/Oslo\",\"HGA\":\"Africa/Mogadishu\",\"HGD\":\"Australia/Brisbane\",\"HGE\":\"America/Caracas\",\"HGH\":\"Asia/Shanghai\",\"HGL\":\"Europe/Berlin\",\"HGN\":\"Asia/Bangkok\",\"HGO\":\"Africa/Abidjan\",\"HGR\":\"America/New_York\",\"HGS\":\"Africa/Freetown\",\"HGT\":\"America/Los_Angeles\",\"HGU\":\"Pacific/Port_Moresby\",\"HGZ\":\"America/Anchorage\",\"HHE\":\"Asia/Tokyo\",\"HHH\":\"America/New_York\",\"HHI\":\"Pacific/Honolulu\",\"HHN\":\"Europe/Berlin\",\"HHP\":\"Asia/Hong_Kong\",\"HHQ\":\"Asia/Bangkok\",\"HHR\":\"America/Los_Angeles\",\"HHZ\":\"Pacific/Tahiti\",\"HIA\":\"Asia/Shanghai\",\"HIB\":\"America/Chicago\",\"HID\":\"Australia/Brisbane\",\"HIE\":\"America/New_York\",\"HIF\":\"America/Denver\",\"HIG\":\"Australia/Brisbane\",\"HIH\":\"Australia/Brisbane\",\"HII\":\"America/Phoenix\",\"HIJ\":\"Asia/Tokyo\",\"HIK\":\"Pacific/Honolulu\",\"HIL\":\"Africa/Addis_Ababa\",\"HIM\":\"Asia/Colombo\",\"HIN\":\"Asia/Seoul\",\"HIO\":\"America/Los_Angeles\",\"HIP\":\"Australia/Brisbane\",\"HIR\":\"Pacific/Guadalcanal\",\"HIS\":\"Australia/Brisbane\",\"HIT\":\"Pacific/Port_Moresby\",\"HIW\":\"Asia/Tokyo\",\"HJJ\":\"Asia/Shanghai\",\"HJR\":\"Asia/Kolkata\",\"HJT\":\"Asia/Ulaanbaatar\",\"HKA\":\"America/Chicago\",\"HKB\":\"America/Anchorage\",\"HKD\":\"Asia/Tokyo\",\"HKG\":\"Asia/Hong_Kong\",\"HKK\":\"Pacific/Auckland\",\"HKN\":\"Pacific/Port_Moresby\",\"HKR\":\"Africa/Nairobi\",\"HKS\":\"America/Chicago\",\"HKT\":\"Asia/Bangkok\",\"HKV\":\"Europe/Sofia\",\"HKY\":\"America/New_York\",\"HLA\":\"Africa/Johannesburg\",\"HLB\":\"America/Indiana/Indianapolis\",\"HLC\":\"America/Chicago\",\"HLD\":\"Asia/Shanghai\",\"HLE\":\"Atlantic/St_Helena\",\"HLF\":\"Europe/Stockholm\",\"HLG\":\"America/New_York\",\"HLH\":\"Asia/Shanghai\",\"HLI\":\"America/Los_Angeles\",\"HLL\":\"Australia/Perth\",\"HLM\":\"America/New_York\",\"HLN\":\"America/Denver\",\"HLP\":\"Asia/Jakarta\",\"HLR\":\"America/Chicago\",\"HLS\":\"Australia/Hobart\",\"HLT\":\"Australia/Sydney\",\"HLU\":\"Pacific/Noumea\",\"HLV\":\"Australia/Brisbane\",\"HLW\":\"Africa/Johannesburg\",\"HLY\":\"Europe/London\",\"HLZ\":\"Pacific/Auckland\",\"HMA\":\"Asia/Yekaterinburg\",\"HMB\":\"Africa/Cairo\",\"HME\":\"Africa/Algiers\",\"HMG\":\"Australia/Darwin\",\"HMI\":\"Asia/Shanghai\",\"HMJ\":\"Europe/Kiev\",\"HMN\":\"America/Denver\",\"HMO\":\"America/Hermosillo\",\"HMR\":\"Europe/Oslo\",\"HMS\":\"America/Anchorage\",\"HMT\":\"America/Los_Angeles\",\"HMV\":\"Europe/Stockholm\",\"HMY\":\"Asia/Seoul\",\"HNA\":\"Asia/Tokyo\",\"HNB\":\"America/Indiana/Indianapolis\",\"HNC\":\"America/New_York\",\"HND\":\"Asia/Tokyo\",\"HNE\":\"America/Anchorage\",\"HNG\":\"Pacific/Noumea\",\"HNH\":\"America/Anchorage\",\"HNI\":\"Pacific/Port_Moresby\",\"HNK\":\"Australia/Brisbane\",\"HNL\":\"Pacific/Honolulu\",\"HNM\":\"Pacific/Honolulu\",\"HNN\":\"Pacific/Port_Moresby\",\"HNS\":\"America/Anchorage\",\"HNX\":\"America/Denver\",\"HNY\":\"Asia/Shanghai\",\"HOA\":\"Africa/Nairobi\",\"HOB\":\"America/Denver\",\"HOC\":\"Pacific/Port_Moresby\",\"HOD\":\"Asia/Aden\",\"HOE\":\"Asia/Vientiane\",\"HOF\":\"Asia/Riyadh\",\"HOG\":\"America/Havana\",\"HOH\":\"Europe/Vienna\",\"HOI\":\"Pacific/Tahiti\",\"HOK\":\"Australia/Darwin\",\"HOL\":\"America/Anchorage\",\"HOM\":\"America/Anchorage\",\"HON\":\"America/Chicago\",\"HOO\":\"Asia/Ho_Chi_Minh\",\"HOP\":\"America/Chicago\",\"HOQ\":\"Europe/Berlin\",\"HOR\":\"Atlantic/Azores\",\"HOS\":\"America/Argentina/Buenos_Aires\",\"HOT\":\"America/Chicago\",\"HOU\":\"America/Chicago\",\"HOV\":\"Europe/Oslo\",\"HOX\":\"Asia/Yangon\",\"HOY\":\"Europe/London\",\"HPA\":\"Pacific/Tongatapu\",\"HPB\":\"America/Anchorage\",\"HPE\":\"Australia/Brisbane\",\"HPG\":\"Asia/Shanghai\",\"HPH\":\"Asia/Ho_Chi_Minh\",\"HPN\":\"America/New_York\",\"HPT\":\"America/Chicago\",\"HPV\":\"Pacific/Honolulu\",\"HPY\":\"America/Chicago\",\"HQM\":\"America/Los_Angeles\",\"HRA\":\"Asia/Karachi\",\"HRB\":\"Asia/Shanghai\",\"HRC\":\"Asia/Almaty\",\"HRE\":\"Africa/Harare\",\"HRG\":\"Africa/Cairo\",\"HRI\":\"Asia/Colombo\",\"HRK\":\"Europe/Kiev\",\"HRL\":\"America/Chicago\",\"HRM\":\"Africa/Algiers\",\"HRN\":\"Australia/Brisbane\",\"HRO\":\"America/Chicago\",\"HRR\":\"America/Bogota\",\"HRS\":\"Africa/Johannesburg\",\"HRT\":\"Europe/London\",\"HRY\":\"Australia/Darwin\",\"HRZ\":\"America/Sao_Paulo\",\"HSB\":\"America/Chicago\",\"HSC\":\"Asia/Shanghai\",\"HSG\":\"Asia/Tokyo\",\"HSH\":\"America/Los_Angeles\",\"HSI\":\"America/Chicago\",\"HSK\":\"Europe/Madrid\",\"HSL\":\"America/Anchorage\",\"HSM\":\"Australia/Sydney\",\"HSN\":\"Asia/Shanghai\",\"HSP\":\"America/New_York\",\"HSS\":\"Asia/Kolkata\",\"HST\":\"America/New_York\",\"HSV\":\"America/Chicago\",\"HSZ\":\"Asia/Taipei\",\"HTA\":\"Asia/Yakutsk\",\"HTB\":\"America/Guadeloupe\",\"HTF\":\"Europe/London\",\"HTG\":\"Asia/Krasnoyarsk\",\"HTH\":\"America/Los_Angeles\",\"HTI\":\"Australia/Brisbane\",\"HTL\":\"America/New_York\",\"HTM\":\"Asia/Ulaanbaatar\",\"HTN\":\"Asia/Shanghai\",\"HTO\":\"America/New_York\",\"HTR\":\"Asia/Tokyo\",\"HTS\":\"America/New_York\",\"HTT\":\"Asia/Shanghai\",\"HTU\":\"Australia/Sydney\",\"HTV\":\"America/Chicago\",\"HTW\":\"America/New_York\",\"HTY\":\"Europe/Istanbul\",\"HTZ\":\"America/Bogota\",\"HUA\":\"America/Chicago\",\"HUB\":\"Australia/Darwin\",\"HUC\":\"America/Puerto_Rico\",\"HUD\":\"America/Chicago\",\"HUE\":\"Africa/Addis_Ababa\",\"HUF\":\"America/Indiana/Indianapolis\",\"HUG\":\"America/Guatemala\",\"HUH\":\"Pacific/Tahiti\",\"HUI\":\"Asia/Ho_Chi_Minh\",\"HUJ\":\"America/Chicago\",\"HUK\":\"Africa/Gaborone\",\"HUL\":\"America/New_York\",\"HUM\":\"America/Chicago\",\"HUN\":\"Asia/Taipei\",\"HUO\":\"Asia/Shanghai\",\"HUQ\":\"Africa/Tripoli\",\"HUS\":\"America/Anchorage\",\"HUT\":\"America/Chicago\",\"HUU\":\"America/Lima\",\"HUV\":\"Europe/Stockholm\",\"HUW\":\"America/Porto_Velho\",\"HUX\":\"America/Mexico_City\",\"HUY\":\"Europe/London\",\"HUZ\":\"Asia/Shanghai\",\"HVA\":\"Indian/Antananarivo\",\"HVB\":\"Australia/Brisbane\",\"HVD\":\"Asia/Ulaanbaatar\",\"HVE\":\"America/Denver\",\"HVG\":\"Europe/Oslo\",\"HVK\":\"Atlantic/Reykjavik\",\"HVM\":\"Atlantic/Reykjavik\",\"HVN\":\"America/New_York\",\"HVR\":\"America/Denver\",\"HVS\":\"America/New_York\",\"HWA\":\"Pacific/Port_Moresby\",\"HWD\":\"America/Los_Angeles\",\"HWI\":\"America/Anchorage\",\"HWK\":\"Australia/Adelaide\",\"HWN\":\"Africa/Harare\",\"HWO\":\"America/New_York\",\"HXD\":\"Asia/Shanghai\",\"HXX\":\"Australia/Sydney\",\"HYA\":\"America/New_York\",\"HYC\":\"Europe/London\",\"HYD\":\"Asia/Kolkata\",\"HYF\":\"Pacific/Port_Moresby\",\"HYG\":\"America/Anchorage\",\"HYL\":\"America/Anchorage\",\"HYN\":\"Asia/Shanghai\",\"HYR\":\"America/Chicago\",\"HYS\":\"America/Chicago\",\"HYV\":\"Europe/Helsinki\",\"HZB\":\"Europe/Paris\",\"HZG\":\"Asia/Shanghai\",\"HZH\":\"Asia/Shanghai\",\"HZK\":\"Atlantic/Reykjavik\",\"HZL\":\"America/New_York\",\"HZP\":\"America/Edmonton\",\"HZV\":\"Africa/Johannesburg\",\"IAA\":\"Asia/Krasnoyarsk\",\"IAB\":\"America/Chicago\",\"IAD\":\"America/New_York\",\"IAG\":\"America/New_York\",\"IAH\":\"America/Chicago\",\"IAM\":\"Africa/Algiers\",\"IAN\":\"America/Anchorage\",\"IAO\":\"Asia/Manila\",\"IAQ\":\"Asia/Tehran\",\"IAR\":\"Europe/Moscow\",\"IAS\":\"Europe/Bucharest\",\"IAU\":\"Pacific/Port_Moresby\",\"IBA\":\"Africa/Lagos\",\"IBE\":\"America/Bogota\",\"IBI\":\"Pacific/Port_Moresby\",\"IBO\":\"Africa/Maputo\",\"IBP\":\"America/Lima\",\"IBR\":\"Asia/Tokyo\",\"IBZ\":\"Europe/Madrid\",\"ICA\":\"America/Caracas\",\"ICI\":\"Pacific/Fiji\",\"ICK\":\"America/Paramaribo\",\"ICL\":\"America/Chicago\",\"ICN\":\"Asia/Seoul\",\"ICO\":\"Asia/Manila\",\"ICR\":\"America/Havana\",\"ICT\":\"America/Chicago\",\"ICY\":\"America/Anchorage\",\"IDA\":\"America/Denver\",\"IDB\":\"Europe/Stockholm\",\"IDF\":\"Africa/Kinshasa\",\"IDG\":\"America/Chicago\",\"IDI\":\"America/New_York\",\"IDK\":\"Australia/Adelaide\",\"IDN\":\"Pacific/Port_Moresby\",\"IDO\":\"America/Belem\",\"IDP\":\"America/Chicago\",\"IDR\":\"Asia/Kolkata\",\"IDY\":\"Europe/Paris\",\"IEG\":\"Europe/Warsaw\",\"IEJ\":\"Asia/Tokyo\",\"IES\":\"Europe/Berlin\",\"IEV\":\"Europe/Kiev\",\"IFA\":\"America/Chicago\",\"IFF\":\"Australia/Brisbane\",\"IFH\":\"Asia/Tehran\",\"IFJ\":\"Atlantic/Reykjavik\",\"IFL\":\"Australia/Brisbane\",\"IFN\":\"Asia/Tehran\",\"IFO\":\"Europe/Kiev\",\"IFP\":\"America/Phoenix\",\"IFU\":\"Indian/Maldives\",\"IGA\":\"America/Nassau\",\"IGB\":\"America/Argentina/Buenos_Aires\",\"IGD\":\"Europe/Istanbul\",\"IGE\":\"Africa/Libreville\",\"IGG\":\"America/Anchorage\",\"IGH\":\"Australia/Brisbane\",\"IGL\":\"Europe/Istanbul\",\"IGM\":\"America/Phoenix\",\"IGN\":\"Asia/Manila\",\"IGO\":\"America/Bogota\",\"IGR\":\"America/Argentina/Buenos_Aires\",\"IGS\":\"Europe/Berlin\",\"IGT\":\"Europe/Moscow\",\"IGU\":\"America/Sao_Paulo\",\"IHA\":\"Asia/Tokyo\",\"IHC\":\"Africa/Maputo\",\"IHN\":\"Asia/Aden\",\"IHO\":\"Indian/Antananarivo\",\"IHR\":\"Asia/Tehran\",\"IHU\":\"Pacific/Port_Moresby\",\"IIA\":\"Europe/Dublin\",\"IIL\":\"Asia/Tehran\",\"IIN\":\"Asia/Tokyo\",\"IIS\":\"Pacific/Bougainville\",\"IJK\":\"Europe/Samara\",\"IJU\":\"America/Sao_Paulo\",\"IJX\":\"America/Chicago\",\"IKA\":\"Asia/Tehran\",\"IKB\":\"America/New_York\",\"IKE\":\"America/Godthab\",\"IKI\":\"Asia/Tokyo\",\"IKK\":\"America/Chicago\",\"IKL\":\"Africa/Kinshasa\",\"IKO\":\"America/Anchorage\",\"IKP\":\"Australia/Brisbane\",\"IKS\":\"Asia/Yakutsk\",\"IKT\":\"Asia/Irkutsk\",\"IKU\":\"Asia/Bishkek\",\"ILA\":\"Asia/Jayapura\",\"ILB\":\"America/Campo_Grande\",\"ILD\":\"Europe/Madrid\",\"ILE\":\"America/Chicago\",\"ILF\":\"America/Winnipeg\",\"ILG\":\"America/New_York\",\"ILH\":\"Europe/Berlin\",\"ILI\":\"America/Anchorage\",\"ILK\":\"Indian/Antananarivo\",\"ILL\":\"America/Chicago\",\"ILM\":\"America/New_York\",\"ILN\":\"America/New_York\",\"ILO\":\"Asia/Manila\",\"ILP\":\"Pacific/Noumea\",\"ILQ\":\"America/Lima\",\"ILR\":\"Africa/Lagos\",\"ILS\":\"America/El_Salvador\",\"ILU\":\"Africa/Nairobi\",\"ILY\":\"Europe/London\",\"ILZ\":\"Europe/Bratislava\",\"IMA\":\"Pacific/Port_Moresby\",\"IMB\":\"America/Guyana\",\"IMD\":\"Pacific/Port_Moresby\",\"IMF\":\"Asia/Kolkata\",\"IMG\":\"Africa/Maputo\",\"IMI\":\"Pacific/Majuro\",\"IMK\":\"Asia/Kathmandu\",\"IML\":\"America/Denver\",\"IMM\":\"America/New_York\",\"IMN\":\"Pacific/Port_Moresby\",\"IMO\":\"Africa/Bangui\",\"IMP\":\"America/Belem\",\"IMT\":\"America/Chicago\",\"IMZ\":\"Asia/Kabul\",\"INA\":\"Europe/Moscow\",\"INB\":\"America/Belize\",\"INC\":\"Asia/Shanghai\",\"IND\":\"America/Indiana/Indianapolis\",\"INE\":\"Africa/Maputo\",\"INF\":\"Africa/Algiers\",\"ING\":\"America/Argentina/Buenos_Aires\",\"INH\":\"Africa/Maputo\",\"INI\":\"Europe/Belgrade\",\"INJ\":\"Australia/Brisbane\",\"INK\":\"America/Chicago\",\"INL\":\"America/Chicago\",\"INM\":\"Australia/Adelaide\",\"INN\":\"Europe/Vienna\",\"INO\":\"Africa/Kinshasa\",\"INQ\":\"Europe/Dublin\",\"INS\":\"America/Los_Angeles\",\"INT\":\"America/New_York\",\"INU\":\"Pacific/Nauru\",\"INV\":\"Europe/London\",\"INW\":\"America/Phoenix\",\"INX\":\"Asia/Jayapura\",\"INY\":\"Africa/Johannesburg\",\"INZ\":\"Africa/Algiers\",\"IOA\":\"Europe/Athens\",\"IOK\":\"Pacific/Port_Moresby\",\"IOM\":\"Europe/London\",\"ION\":\"Africa/Brazzaville\",\"IOP\":\"Pacific/Port_Moresby\",\"IOQ\":\"America/Godthab\",\"IOR\":\"Europe/Dublin\",\"IOS\":\"America/Belem\",\"IOT\":\"America/Godthab\",\"IOU\":\"Pacific/Noumea\",\"IOW\":\"America/Chicago\",\"IPA\":\"Pacific/Efate\",\"IPC\":\"Pacific/Easter\",\"IPE\":\"Asia/Manila\",\"IPG\":\"America/Porto_Velho\",\"IPH\":\"Asia/Kuala_Lumpur\",\"IPI\":\"America/Bogota\",\"IPL\":\"America/Los_Angeles\",\"IPN\":\"America/Sao_Paulo\",\"IPT\":\"America/New_York\",\"IPU\":\"America/Belem\",\"IPW\":\"Europe/London\",\"IQA\":\"Asia/Baghdad\",\"IQM\":\"Asia/Shanghai\",\"IQN\":\"Asia/Shanghai\",\"IQQ\":\"America/Santiago\",\"IQT\":\"America/Lima\",\"IRA\":\"Pacific/Guadalcanal\",\"IRB\":\"America/Chicago\",\"IRC\":\"America/Anchorage\",\"IRD\":\"Asia/Dhaka\",\"IRE\":\"America/Belem\",\"IRG\":\"Australia/Brisbane\",\"IRI\":\"Africa/Dar_es_Salaam\",\"IRJ\":\"America/Argentina/Buenos_Aires\",\"IRK\":\"America/Chicago\",\"IRM\":\"Asia/Yekaterinburg\",\"IRN\":\"America/Tegucigalpa\",\"IRO\":\"Africa/Bangui\",\"IRP\":\"Africa/Lubumbashi\",\"IRS\":\"America/New_York\",\"IRZ\":\"America/Porto_Velho\",\"ISA\":\"Australia/Brisbane\",\"ISB\":\"Asia/Karachi\",\"ISC\":\"Europe/London\",\"ISD\":\"America/Bogota\",\"ISE\":\"Europe/Istanbul\",\"ISG\":\"Asia/Tokyo\",\"ISH\":\"Europe/Rome\",\"ISI\":\"Australia/Brisbane\",\"ISJ\":\"America/Mexico_City\",\"ISK\":\"Asia/Kolkata\",\"ISL\":\"Europe/Istanbul\",\"ISM\":\"America/New_York\",\"ISN\":\"America/Chicago\",\"ISO\":\"America/New_York\",\"ISP\":\"America/New_York\",\"ISQ\":\"America/New_York\",\"ISS\":\"America/New_York\",\"IST\":\"Europe/Istanbul\",\"ISU\":\"Asia/Baghdad\",\"ISW\":\"America/Chicago\",\"ITA\":\"America/Porto_Velho\",\"ITB\":\"America/Belem\",\"ITE\":\"America/Belem\",\"ITH\":\"America/New_York\",\"ITI\":\"America/Sao_Paulo\",\"ITK\":\"Pacific/Port_Moresby\",\"ITM\":\"Asia/Tokyo\",\"ITN\":\"America/Belem\",\"ITO\":\"Pacific/Honolulu\",\"ITP\":\"America/Sao_Paulo\",\"ITQ\":\"America/Sao_Paulo\",\"ITR\":\"America/Sao_Paulo\",\"ITU\":\"Asia/Magadan\",\"IUE\":\"Pacific/Niue\",\"IUI\":\"America/Godthab\",\"IUL\":\"Asia/Jayapura\",\"IUM\":\"America/Vancouver\",\"IUS\":\"Pacific/Bougainville\",\"IVA\":\"Indian/Antananarivo\",\"IVC\":\"Pacific/Auckland\",\"IVG\":\"Europe/Podgorica\",\"IVH\":\"America/Anchorage\",\"IVL\":\"Europe/Helsinki\",\"IVO\":\"America/Bogota\",\"IVR\":\"Australia/Sydney\",\"IVW\":\"Australia/Darwin\",\"IWA\":\"Europe/Moscow\",\"IWD\":\"America/Chicago\",\"IWJ\":\"Asia/Tokyo\",\"IWK\":\"Asia/Tokyo\",\"IWO\":\"Asia/Tokyo\",\"IWS\":\"America/Chicago\",\"IXA\":\"Asia/Kolkata\",\"IXB\":\"Asia/Kolkata\",\"IXC\":\"Asia/Kolkata\",\"IXD\":\"Asia/Kolkata\",\"IXE\":\"Asia/Kolkata\",\"IXG\":\"Asia/Kolkata\",\"IXH\":\"Asia/Kolkata\",\"IXI\":\"Asia/Kolkata\",\"IXJ\":\"Asia/Kolkata\",\"IXK\":\"Asia/Kolkata\",\"IXL\":\"Asia/Kolkata\",\"IXM\":\"Asia/Kolkata\",\"IXN\":\"Asia/Kolkata\",\"IXP\":\"Asia/Kolkata\",\"IXQ\":\"Asia/Kolkata\",\"IXR\":\"Asia/Kolkata\",\"IXS\":\"Asia/Kolkata\",\"IXT\":\"Asia/Kolkata\",\"IXU\":\"Asia/Kolkata\",\"IXV\":\"Asia/Kolkata\",\"IXW\":\"Asia/Kolkata\",\"IXY\":\"Asia/Kolkata\",\"IXZ\":\"Asia/Kolkata\",\"IYK\":\"America/Los_Angeles\",\"IZA\":\"America/Sao_Paulo\",\"IZO\":\"Asia/Tokyo\",\"IZT\":\"America/Mexico_City\",\"JAA\":\"Asia/Kabul\",\"JAB\":\"Australia/Darwin\",\"JAC\":\"America/Denver\",\"JAD\":\"Australia/Perth\",\"JAE\":\"America/Lima\",\"JAF\":\"Asia/Colombo\",\"JAG\":\"Asia/Karachi\",\"JAH\":\"Europe/Paris\",\"JAI\":\"Asia/Kolkata\",\"JAJ\":\"America/New_York\",\"JAK\":\"America/Port-au-Prince\",\"JAL\":\"America/Mexico_City\",\"JAM\":\"Europe/Sofia\",\"JAN\":\"America/Chicago\",\"JAO\":\"America/New_York\",\"JAP\":\"America/Costa_Rica\",\"JAQ\":\"Pacific/Port_Moresby\",\"JAR\":\"Asia/Tehran\",\"JAS\":\"America/Chicago\",\"JAT\":\"Pacific/Majuro\",\"JAU\":\"America/Lima\",\"JAV\":\"America/Godthab\",\"JAX\":\"America/New_York\",\"JBB\":\"Asia/Jakarta\",\"JBC\":\"America/New_York\",\"JBP\":\"America/Los_Angeles\",\"JBQ\":\"America/Santo_Domingo\",\"JBR\":\"America/Chicago\",\"JBS\":\"America/Sao_Paulo\",\"JBT\":\"America/Anchorage\",\"JCA\":\"Europe/Paris\",\"JCB\":\"America/Sao_Paulo\",\"JCC\":\"America/Los_Angeles\",\"JCD\":\"America/St_Thomas\",\"JCE\":\"America/Los_Angeles\",\"JCH\":\"America/Godthab\",\"JCI\":\"America/Chicago\",\"JCJ\":\"Asia/Seoul\",\"JCK\":\"Australia/Brisbane\",\"JCM\":\"America/Belem\",\"JCN\":\"Asia/Seoul\",\"JCO\":\"Europe/Malta\",\"JCR\":\"America/Porto_Velho\",\"JCT\":\"America/Chicago\",\"JCU\":\"Africa/Ceuta\",\"JCY\":\"America/Chicago\",\"JDA\":\"America/Los_Angeles\",\"JDB\":\"America/Chicago\",\"JDF\":\"America/Sao_Paulo\",\"JDH\":\"Asia/Kolkata\",\"JDM\":\"America/New_York\",\"JDN\":\"America/Denver\",\"JDO\":\"America/Belem\",\"JDP\":\"Europe/Paris\",\"JDR\":\"America/Sao_Paulo\",\"JDT\":\"America/Chicago\",\"JDX\":\"America/Chicago\",\"JDY\":\"America/Los_Angeles\",\"JDZ\":\"Asia/Shanghai\",\"JED\":\"Asia/Riyadh\",\"JEE\":\"America/Port-au-Prince\",\"JEF\":\"America/Chicago\",\"JEG\":\"America/Godthab\",\"JEJ\":\"Pacific/Majuro\",\"JEK\":\"Africa/Lusaka\",\"JEM\":\"America/Los_Angeles\",\"JEQ\":\"America/Belem\",\"JER\":\"Europe/London\",\"JEV\":\"Europe/Paris\",\"JFK\":\"America/New_York\",\"JFM\":\"Australia/Perth\",\"JFN\":\"America/New_York\",\"JFR\":\"America/Godthab\",\"JGA\":\"Asia/Kolkata\",\"JGB\":\"Asia/Kolkata\",\"JGC\":\"America/Phoenix\",\"JGD\":\"Asia/Shanghai\",\"JGE\":\"Asia/Seoul\",\"JGL\":\"America/New_York\",\"JGN\":\"Asia/Shanghai\",\"JGO\":\"America/Godthab\",\"JGP\":\"America/Chicago\",\"JGQ\":\"America/Chicago\",\"JGR\":\"America/Godthab\",\"JGS\":\"Asia/Shanghai\",\"JGX\":\"America/Los_Angeles\",\"JHB\":\"Asia/Kuala_Lumpur\",\"JHC\":\"America/New_York\",\"JHE\":\"Europe/Stockholm\",\"JHG\":\"Asia/Shanghai\",\"JHL\":\"America/Edmonton\",\"JHM\":\"Pacific/Honolulu\",\"JHQ\":\"Australia/Brisbane\",\"JHS\":\"America/Godthab\",\"JHW\":\"America/New_York\",\"JIA\":\"America/Campo_Grande\",\"JIB\":\"Africa/Djibouti\",\"JIC\":\"Asia/Shanghai\",\"JID\":\"America/Los_Angeles\",\"JIJ\":\"Africa/Addis_Ababa\",\"JIK\":\"Europe/Athens\",\"JIL\":\"Asia/Shanghai\",\"JIM\":\"Africa/Addis_Ababa\",\"JIN\":\"Africa/Kampala\",\"JIO\":\"Asia/Jayapura\",\"JIP\":\"America/Guayaquil\",\"JIQ\":\"Asia/Shanghai\",\"JIR\":\"Asia/Kathmandu\",\"JIU\":\"Asia/Shanghai\",\"JIW\":\"Asia/Karachi\",\"JJA\":\"Pacific/Guadalcanal\",\"JJD\":\"America/Belem\",\"JJG\":\"America/Sao_Paulo\",\"JJI\":\"America/Lima\",\"JJM\":\"Africa/Nairobi\",\"JJN\":\"Asia/Shanghai\",\"JJU\":\"America/Godthab\",\"JKG\":\"Europe/Stockholm\",\"JKH\":\"Europe/Athens\",\"JKL\":\"Europe/Athens\",\"JKR\":\"Asia/Kathmandu\",\"JKV\":\"America/Chicago\",\"JLA\":\"America/Anchorage\",\"JLB\":\"America/Los_Angeles\",\"JLD\":\"Europe/Stockholm\",\"JLH\":\"America/Chicago\",\"JLN\":\"America/Chicago\",\"JLO\":\"Europe/Rome\",\"JLP\":\"Europe/Paris\",\"JLR\":\"Asia/Kolkata\",\"JLS\":\"America/Sao_Paulo\",\"JLX\":\"America/Los_Angeles\",\"JMA\":\"America/Chicago\",\"JMB\":\"Africa/Luanda\",\"JMC\":\"America/Los_Angeles\",\"JMD\":\"America/Chicago\",\"JMH\":\"America/Chicago\",\"JMJ\":\"Asia/Shanghai\",\"JMK\":\"Europe/Athens\",\"JMM\":\"Europe/Stockholm\",\"JMN\":\"America/Chicago\",\"JMO\":\"Asia/Kathmandu\",\"JMS\":\"America/Chicago\",\"JMU\":\"Asia/Shanghai\",\"JMY\":\"Africa/Freetown\",\"JNA\":\"America/Sao_Paulo\",\"JNB\":\"Africa/Johannesburg\",\"JNG\":\"Asia/Shanghai\",\"JNH\":\"America/Chicago\",\"JNI\":\"America/Argentina/Buenos_Aires\",\"JNJ\":\"Asia/Muscat\",\"JNN\":\"America/Godthab\",\"JNP\":\"America/Los_Angeles\",\"JNS\":\"America/Godthab\",\"JNU\":\"America/Anchorage\",\"JNX\":\"Europe/Athens\",\"JNZ\":\"Asia/Shanghai\",\"JOC\":\"America/Los_Angeles\",\"JOE\":\"Europe/Helsinki\",\"JOG\":\"Asia/Jakarta\",\"JOH\":\"Africa/Johannesburg\",\"JOI\":\"America/Sao_Paulo\",\"JOK\":\"Europe/Moscow\",\"JOL\":\"Asia/Manila\",\"JOM\":\"Africa/Dar_es_Salaam\",\"JON\":\"Pacific/Honolulu\",\"JOP\":\"Pacific/Port_Moresby\",\"JOR\":\"America/Los_Angeles\",\"JOS\":\"Africa/Lagos\",\"JOT\":\"America/Chicago\",\"JPA\":\"America/Belem\",\"JPD\":\"America/Los_Angeles\",\"JPN\":\"America/New_York\",\"JPR\":\"America/Porto_Velho\",\"JPT\":\"America/Chicago\",\"JPU\":\"Europe/Paris\",\"JQA\":\"America/Godthab\",\"JQE\":\"America/Panama\",\"JRC\":\"America/Chicago\",\"JRD\":\"America/Los_Angeles\",\"JRE\":\"America/New_York\",\"JRF\":\"Pacific/Honolulu\",\"JRG\":\"Asia/Kolkata\",\"JRH\":\"Asia/Kolkata\",\"JRK\":\"America/Godthab\",\"JRN\":\"America/Campo_Grande\",\"JRO\":\"Africa/Dar_es_Salaam\",\"JRS\":\"Asia/Jerusalem\",\"JSA\":\"Asia/Kolkata\",\"JSD\":\"America/New_York\",\"JSG\":\"America/Los_Angeles\",\"JSH\":\"Europe/Athens\",\"JSI\":\"Europe/Athens\",\"JSJ\":\"Asia/Shanghai\",\"JSK\":\"Asia/Tehran\",\"JSL\":\"America/New_York\",\"JSM\":\"America/Argentina/Buenos_Aires\",\"JSN\":\"America/Los_Angeles\",\"JSO\":\"Europe/Stockholm\",\"JSP\":\"Asia/Seoul\",\"JSR\":\"Asia/Dhaka\",\"JSS\":\"Europe/Athens\",\"JST\":\"America/New_York\",\"JSU\":\"America/Godthab\",\"JSY\":\"Europe/Athens\",\"JTC\":\"America/Sao_Paulo\",\"JTI\":\"America/Sao_Paulo\",\"JTO\":\"America/Los_Angeles\",\"JTR\":\"Europe/Athens\",\"JTY\":\"Europe/Athens\",\"JUA\":\"America/Campo_Grande\",\"JUB\":\"Africa/Juba\",\"JUC\":\"America/Los_Angeles\",\"JUH\":\"Asia/Shanghai\",\"JUI\":\"Europe/Berlin\",\"JUJ\":\"America/Argentina/Buenos_Aires\",\"JUK\":\"America/Godthab\",\"JUL\":\"America/Lima\",\"JUM\":\"Asia/Kathmandu\",\"JUN\":\"Australia/Brisbane\",\"JUO\":\"America/Bogota\",\"JUP\":\"America/Los_Angeles\",\"JUR\":\"Australia/Perth\",\"JUT\":\"America/Tegucigalpa\",\"JUU\":\"America/Godthab\",\"JUV\":\"America/Godthab\",\"JUZ\":\"Asia/Shanghai\",\"JVA\":\"Indian/Antananarivo\",\"JVI\":\"America/New_York\",\"JVL\":\"America/Chicago\",\"JWA\":\"Africa/Gaborone\",\"JWC\":\"America/Los_Angeles\",\"JWH\":\"America/Chicago\",\"JWL\":\"America/Chicago\",\"JWN\":\"Asia/Tehran\",\"JXA\":\"Asia/Shanghai\",\"JXN\":\"America/New_York\",\"JYR\":\"Asia/Tehran\",\"JYV\":\"Europe/Helsinki\",\"JZH\":\"Asia/Shanghai\",\"KAA\":\"Africa/Lusaka\",\"KAB\":\"Africa/Harare\",\"KAC\":\"Asia/Damascus\",\"KAD\":\"Africa/Lagos\",\"KAE\":\"America/Anchorage\",\"KAF\":\"Pacific/Bougainville\",\"KAG\":\"Asia/Seoul\",\"KAH\":\"Australia/Sydney\",\"KAI\":\"America/Guyana\",\"KAJ\":\"Europe/Helsinki\",\"KAK\":\"Pacific/Port_Moresby\",\"KAL\":\"America/Anchorage\",\"KAM\":\"Asia/Aden\",\"KAN\":\"Africa/Lagos\",\"KAO\":\"Europe/Helsinki\",\"KAP\":\"Africa/Lubumbashi\",\"KAQ\":\"Pacific/Port_Moresby\",\"KAR\":\"America/Guyana\",\"KAS\":\"Africa/Windhoek\",\"KAT\":\"Pacific/Auckland\",\"KAU\":\"Europe/Helsinki\",\"KAV\":\"America/Caracas\",\"KAW\":\"Asia/Yangon\",\"KAX\":\"Australia/Perth\",\"KAY\":\"Pacific/Fiji\",\"KAZ\":\"Asia/Jayapura\",\"KBA\":\"Africa/Freetown\",\"KBB\":\"Australia/Darwin\",\"KBC\":\"America/Anchorage\",\"KBD\":\"Australia/Perth\",\"KBE\":\"America/Anchorage\",\"KBF\":\"Asia/Jayapura\",\"KBG\":\"Africa/Kampala\",\"KBH\":\"Africa/Dar_es_Salaam\",\"KBI\":\"Africa/Douala\",\"KBJ\":\"Australia/Darwin\",\"KBK\":\"America/Anchorage\",\"KBL\":\"Asia/Kabul\",\"KBM\":\"Pacific/Port_Moresby\",\"KBN\":\"Africa/Lubumbashi\",\"KBO\":\"Africa/Lubumbashi\",\"KBP\":\"Europe/Kiev\",\"KBQ\":\"Africa/Blantyre\",\"KBR\":\"Asia/Kuala_Lumpur\",\"KBS\":\"Africa/Freetown\",\"KBT\":\"Pacific/Majuro\",\"KBU\":\"Asia/Makassar\",\"KBV\":\"Asia/Bangkok\",\"KBW\":\"America/Anchorage\",\"KBX\":\"Asia/Jayapura\",\"KBY\":\"Australia/Adelaide\",\"KBZ\":\"Pacific/Auckland\",\"KCA\":\"Asia/Shanghai\",\"KCB\":\"America/Paramaribo\",\"KCC\":\"America/Anchorage\",\"KCD\":\"Asia/Jayapura\",\"KCE\":\"Australia/Brisbane\",\"KCF\":\"Asia/Karachi\",\"KCG\":\"America/Anchorage\",\"KCH\":\"Asia/Kuala_Lumpur\",\"KCI\":\"Asia/Jayapura\",\"KCJ\":\"Pacific/Port_Moresby\",\"KCK\":\"Asia/Irkutsk\",\"KCL\":\"America/Anchorage\",\"KCM\":\"Europe/Istanbul\",\"KCN\":\"America/Anchorage\",\"KCO\":\"Europe/Istanbul\",\"KCP\":\"Europe/Kiev\",\"KCQ\":\"America/Anchorage\",\"KCS\":\"Australia/Darwin\",\"KCT\":\"Asia/Colombo\",\"KCU\":\"Africa/Kampala\",\"KCZ\":\"Asia/Tokyo\",\"KDA\":\"Africa/Dakar\",\"KDB\":\"Australia/Perth\",\"KDC\":\"Africa/Porto-Novo\",\"KDD\":\"Asia/Karachi\",\"KDE\":\"Pacific/Port_Moresby\",\"KDF\":\"Africa/Algiers\",\"KDH\":\"Asia/Kabul\",\"KDI\":\"Asia/Makassar\",\"KDJ\":\"Africa/Libreville\",\"KDK\":\"America/Anchorage\",\"KDL\":\"Europe/Tallinn\",\"KDM\":\"Indian/Maldives\",\"KDN\":\"Africa/Libreville\",\"KDO\":\"Indian/Maldives\",\"KDP\":\"Pacific/Port_Moresby\",\"KDQ\":\"Pacific/Port_Moresby\",\"KDR\":\"Pacific/Port_Moresby\",\"KDS\":\"Australia/Brisbane\",\"KDT\":\"Asia/Bangkok\",\"KDU\":\"Asia/Karachi\",\"KDV\":\"Pacific/Fiji\",\"KDW\":\"Asia/Colombo\",\"KDX\":\"Africa/Khartoum\",\"KDY\":\"Asia/Yakutsk\",\"KDZ\":\"Asia/Colombo\",\"KEA\":\"Asia/Jayapura\",\"KEB\":\"America/Anchorage\",\"KEC\":\"Africa/Lubumbashi\",\"KED\":\"Africa/Nouakchott\",\"KEE\":\"Africa/Brazzaville\",\"KEF\":\"Atlantic/Reykjavik\",\"KEG\":\"Pacific/Port_Moresby\",\"KEH\":\"America/Los_Angeles\",\"KEI\":\"Asia/Jayapura\",\"KEJ\":\"Asia/Novokuznetsk\",\"KEK\":\"America/Anchorage\",\"KEL\":\"Europe/Berlin\",\"KEM\":\"Europe/Helsinki\",\"KEN\":\"Africa/Freetown\",\"KEO\":\"Africa/Abidjan\",\"KEP\":\"Asia/Kathmandu\",\"KEQ\":\"Asia/Jayapura\",\"KER\":\"Asia/Tehran\",\"KES\":\"America/Winnipeg\",\"KET\":\"Asia/Yangon\",\"KEU\":\"Africa/Nairobi\",\"KEV\":\"Europe/Helsinki\",\"KEW\":\"America/Winnipeg\",\"KEX\":\"Pacific/Port_Moresby\",\"KEY\":\"Africa/Nairobi\",\"KEZ\":\"Asia/Colombo\",\"KFA\":\"Africa/Nouakchott\",\"KFE\":\"Australia/Perth\",\"KFG\":\"Australia/Darwin\",\"KFM\":\"America/Edmonton\",\"KFP\":\"America/Anchorage\",\"KFS\":\"Europe/Istanbul\",\"KGA\":\"Africa/Lubumbashi\",\"KGB\":\"Pacific/Port_Moresby\",\"KGC\":\"Australia/Adelaide\",\"KGD\":\"Europe/Kaliningrad\",\"KGE\":\"Pacific/Guadalcanal\",\"KGF\":\"Asia/Almaty\",\"KGG\":\"Africa/Dakar\",\"KGH\":\"Pacific/Port_Moresby\",\"KGI\":\"Australia/Perth\",\"KGJ\":\"Africa/Blantyre\",\"KGK\":\"America/Anchorage\",\"KGL\":\"Africa/Kigali\",\"KGN\":\"Africa/Kinshasa\",\"KGO\":\"Europe/Kiev\",\"KGP\":\"Asia/Yekaterinburg\",\"KGQ\":\"America/Godthab\",\"KGR\":\"Australia/Darwin\",\"KGS\":\"Europe/Athens\",\"KGT\":\"Asia/Shanghai\",\"KGU\":\"Asia/Kuala_Lumpur\",\"KGW\":\"Pacific/Port_Moresby\",\"KGX\":\"America/Anchorage\",\"KGY\":\"Australia/Brisbane\",\"KGZ\":\"America/Anchorage\",\"KHA\":\"Asia/Tehran\",\"KHC\":\"Europe/Simferopol\",\"KHD\":\"Asia/Tehran\",\"KHE\":\"Europe/Kiev\",\"KHG\":\"Asia/Shanghai\",\"KHH\":\"Asia/Taipei\",\"KHI\":\"Asia/Karachi\",\"KHJ\":\"Europe/Helsinki\",\"KHK\":\"Asia/Tehran\",\"KHL\":\"Asia/Dhaka\",\"KHM\":\"Asia/Yangon\",\"KHN\":\"Asia/Shanghai\",\"KHO\":\"Africa/Johannesburg\",\"KHQ\":\"America/Godthab\",\"KHR\":\"Asia/Ulaanbaatar\",\"KHS\":\"Asia/Muscat\",\"KHT\":\"Asia/Kabul\",\"KHU\":\"Europe/Kiev\",\"KHV\":\"Asia/Vladivostok\",\"KHW\":\"Africa/Gaborone\",\"KHX\":\"Africa/Kampala\",\"KHY\":\"Asia/Tehran\",\"KHZ\":\"Pacific/Tahiti\",\"KIA\":\"Pacific/Port_Moresby\",\"KIB\":\"America/Anchorage\",\"KIC\":\"America/Los_Angeles\",\"KID\":\"Europe/Stockholm\",\"KIE\":\"Pacific/Bougainville\",\"KIF\":\"America/Winnipeg\",\"KIG\":\"Africa/Johannesburg\",\"KIH\":\"Asia/Tehran\",\"KII\":\"Pacific/Port_Moresby\",\"KIJ\":\"Asia/Tokyo\",\"KIK\":\"Asia/Baghdad\",\"KIL\":\"Africa/Kinshasa\",\"KIM\":\"Africa/Johannesburg\",\"KIN\":\"America/Jamaica\",\"KIO\":\"Pacific/Majuro\",\"KIP\":\"America/Chicago\",\"KIQ\":\"Pacific/Port_Moresby\",\"KIR\":\"Europe/Dublin\",\"KIS\":\"Africa/Nairobi\",\"KIT\":\"Europe/Athens\",\"KIU\":\"Africa/Nairobi\",\"KIV\":\"Europe/Chisinau\",\"KIW\":\"Africa/Lusaka\",\"KIX\":\"Asia/Tokyo\",\"KIY\":\"Africa/Dar_es_Salaam\",\"KIZ\":\"Pacific/Port_Moresby\",\"KJA\":\"Asia/Krasnoyarsk\",\"KJH\":\"Asia/Shanghai\",\"KJI\":\"Asia/Shanghai\",\"KJK\":\"Europe/Brussels\",\"KJP\":\"Asia/Tokyo\",\"KJT\":\"Asia/Jakarta\",\"KJU\":\"Pacific/Port_Moresby\",\"KKA\":\"America/Anchorage\",\"KKB\":\"America/Anchorage\",\"KKC\":\"Asia/Bangkok\",\"KKD\":\"Pacific/Port_Moresby\",\"KKE\":\"Pacific/Auckland\",\"KKF\":\"America/Anchorage\",\"KKG\":\"America/Guyana\",\"KKH\":\"America/Anchorage\",\"KKI\":\"America/Anchorage\",\"KKJ\":\"Asia/Tokyo\",\"KKK\":\"America/Anchorage\",\"KKL\":\"America/Anchorage\",\"KKM\":\"Asia/Bangkok\",\"KKN\":\"Europe/Oslo\",\"KKO\":\"Pacific/Auckland\",\"KKP\":\"Australia/Brisbane\",\"KKQ\":\"Asia/Yekaterinburg\",\"KKR\":\"Pacific/Tahiti\",\"KKS\":\"Asia/Tehran\",\"KKT\":\"America/Chicago\",\"KKU\":\"America/Anchorage\",\"KKW\":\"Africa/Kinshasa\",\"KKX\":\"Asia/Tokyo\",\"KKY\":\"Europe/Dublin\",\"KKZ\":\"Asia/Phnom_Penh\",\"KLB\":\"Africa/Lusaka\",\"KLC\":\"Africa/Dakar\",\"KLD\":\"Europe/Moscow\",\"KLE\":\"Africa/Douala\",\"KLF\":\"Europe/Moscow\",\"KLG\":\"America/Anchorage\",\"KLH\":\"Asia/Kolkata\",\"KLI\":\"Africa/Kinshasa\",\"KLJ\":\"Europe/Vilnius\",\"KLK\":\"Africa/Nairobi\",\"KLL\":\"America/Anchorage\",\"KLM\":\"Asia/Tehran\",\"KLN\":\"America/Anchorage\",\"KLO\":\"Asia/Manila\",\"KLP\":\"America/Anchorage\",\"KLQ\":\"Asia/Jakarta\",\"KLR\":\"Europe/Stockholm\",\"KLS\":\"America/Los_Angeles\",\"KLT\":\"Europe/Berlin\",\"KLU\":\"Europe/Vienna\",\"KLV\":\"Europe/Prague\",\"KLW\":\"America/Anchorage\",\"KLX\":\"Europe/Athens\",\"KLY\":\"Africa/Lubumbashi\",\"KLZ\":\"Africa/Johannesburg\",\"KMA\":\"Pacific/Port_Moresby\",\"KMB\":\"Pacific/Port_Moresby\",\"KMC\":\"Asia/Riyadh\",\"KMD\":\"Africa/Libreville\",\"KME\":\"Africa/Kigali\",\"KMF\":\"Pacific/Port_Moresby\",\"KMG\":\"Asia/Shanghai\",\"KMH\":\"Africa/Johannesburg\",\"KMI\":\"Asia/Tokyo\",\"KMJ\":\"Asia/Tokyo\",\"KMK\":\"Africa/Brazzaville\",\"KML\":\"Australia/Brisbane\",\"KMM\":\"Asia/Jayapura\",\"KMN\":\"Africa/Lubumbashi\",\"KMO\":\"America/Anchorage\",\"KMP\":\"Africa/Windhoek\",\"KMQ\":\"Asia/Tokyo\",\"KMR\":\"Pacific/Port_Moresby\",\"KMS\":\"Africa/Accra\",\"KMT\":\"Asia/Phnom_Penh\",\"KMU\":\"Africa/Mogadishu\",\"KMV\":\"Asia/Yangon\",\"KMW\":\"Europe/Moscow\",\"KMX\":\"Asia/Riyadh\",\"KMY\":\"America/Anchorage\",\"KMZ\":\"Africa/Lusaka\",\"KNA\":\"America/Santiago\",\"KNB\":\"America/Denver\",\"KNC\":\"Asia/Shanghai\",\"KND\":\"Africa/Lubumbashi\",\"KNE\":\"Pacific/Port_Moresby\",\"KNF\":\"Europe/London\",\"KNG\":\"Asia/Jayapura\",\"KNH\":\"Asia/Taipei\",\"KNI\":\"Australia/Perth\",\"KNJ\":\"Africa/Brazzaville\",\"KNK\":\"America/Anchorage\",\"KNL\":\"Pacific/Port_Moresby\",\"KNM\":\"Africa/Lubumbashi\",\"KNN\":\"Africa/Conakry\",\"KNO\":\"Asia/Jakarta\",\"KNP\":\"Africa/Luanda\",\"KNQ\":\"Pacific/Noumea\",\"KNR\":\"Asia/Tehran\",\"KNS\":\"Australia/Hobart\",\"KNT\":\"America/Chicago\",\"KNU\":\"Asia/Kolkata\",\"KNV\":\"America/Vancouver\",\"KNW\":\"America/Anchorage\",\"KNX\":\"Australia/Perth\",\"KNY\":\"America/Regina\",\"KNZ\":\"Africa/Bamako\",\"KOA\":\"Pacific/Honolulu\",\"KOB\":\"Africa/Douala\",\"KOC\":\"Pacific/Noumea\",\"KOD\":\"Asia/Makassar\",\"KOE\":\"Asia/Makassar\",\"KOF\":\"Africa/Johannesburg\",\"KOG\":\"Asia/Vientiane\",\"KOH\":\"Australia/Brisbane\",\"KOI\":\"Europe/London\",\"KOJ\":\"Asia/Tokyo\",\"KOK\":\"Europe/Helsinki\",\"KOL\":\"Africa/Bangui\",\"KOM\":\"Pacific/Port_Moresby\",\"KON\":\"Asia/Ho_Chi_Minh\",\"KOO\":\"Africa/Lubumbashi\",\"KOP\":\"Asia/Bangkok\",\"KOQ\":\"Europe/Berlin\",\"KOR\":\"Pacific/Port_Moresby\",\"KOS\":\"Asia/Phnom_Penh\",\"KOT\":\"America/Anchorage\",\"KOU\":\"Africa/Libreville\",\"KOV\":\"Asia/Almaty\",\"KOW\":\"Asia/Shanghai\",\"KOX\":\"Asia/Jayapura\",\"KOY\":\"America/Anchorage\",\"KOZ\":\"America/Anchorage\",\"KPA\":\"Pacific/Port_Moresby\",\"KPB\":\"America/Anchorage\",\"KPC\":\"America/Anchorage\",\"KPE\":\"Pacific/Port_Moresby\",\"KPF\":\"Pacific/Port_Moresby\",\"KPG\":\"America/Guyana\",\"KPH\":\"America/Anchorage\",\"KPI\":\"Asia/Kuala_Lumpur\",\"KPK\":\"America/Anchorage\",\"KPL\":\"Pacific/Port_Moresby\",\"KPM\":\"Pacific/Port_Moresby\",\"KPN\":\"America/Anchorage\",\"KPO\":\"Asia/Seoul\",\"KPP\":\"Australia/Brisbane\",\"KPR\":\"America/Anchorage\",\"KPS\":\"Australia/Sydney\",\"KPT\":\"America/Los_Angeles\",\"KPV\":\"America/Anchorage\",\"KPW\":\"Asia/Kamchatka\",\"KPY\":\"America/Anchorage\",\"KQA\":\"America/Anchorage\",\"KQB\":\"Australia/Adelaide\",\"KQH\":\"Asia/Kolkata\",\"KQL\":\"Pacific/Port_Moresby\",\"KQT\":\"Asia/Dushanbe\",\"KRA\":\"Australia/Sydney\",\"KRB\":\"Australia/Brisbane\",\"KRC\":\"Asia/Jakarta\",\"KRD\":\"Australia/Darwin\",\"KRE\":\"Africa/Bujumbura\",\"KRF\":\"Europe/Stockholm\",\"KRG\":\"America/Guyana\",\"KRH\":\"Europe/London\",\"KRI\":\"Pacific/Port_Moresby\",\"KRJ\":\"Pacific/Port_Moresby\",\"KRK\":\"Europe/Warsaw\",\"KRL\":\"Asia/Shanghai\",\"KRM\":\"America/Guyana\",\"KRN\":\"Europe/Stockholm\",\"KRO\":\"Asia/Yekaterinburg\",\"KRP\":\"Europe/Copenhagen\",\"KRQ\":\"Europe/Kiev\",\"KRR\":\"Europe/Moscow\",\"KRS\":\"Europe/Oslo\",\"KRT\":\"Africa/Khartoum\",\"KRU\":\"Pacific/Port_Moresby\",\"KRV\":\"Africa/Nairobi\",\"KRW\":\"Asia/Ashgabat\",\"KRX\":\"Pacific/Port_Moresby\",\"KRY\":\"Asia/Shanghai\",\"KRZ\":\"Africa/Kinshasa\",\"KSA\":\"Pacific/Pohnpei\",\"KSB\":\"Pacific/Port_Moresby\",\"KSC\":\"Europe/Bratislava\",\"KSD\":\"Europe/Stockholm\",\"KSE\":\"Africa/Kampala\",\"KSF\":\"Europe/Berlin\",\"KSG\":\"Pacific/Port_Moresby\",\"KSH\":\"Asia/Tehran\",\"KSI\":\"Africa/Conakry\",\"KSJ\":\"Europe/Athens\",\"KSK\":\"Europe/Stockholm\",\"KSL\":\"Africa/Khartoum\",\"KSM\":\"America/Anchorage\",\"KSN\":\"Asia/Qostanay\",\"KSO\":\"Europe/Athens\",\"KSP\":\"Pacific/Port_Moresby\",\"KSQ\":\"Asia/Tashkent\",\"KSR\":\"Asia/Makassar\",\"KSS\":\"Africa/Bamako\",\"KST\":\"Africa/Khartoum\",\"KSU\":\"Europe/Oslo\",\"KSV\":\"Australia/Brisbane\",\"KSW\":\"Asia/Jerusalem\",\"KSX\":\"Pacific/Port_Moresby\",\"KSY\":\"Europe/Istanbul\",\"KSZ\":\"Europe/Moscow\",\"KTA\":\"Australia/Perth\",\"KTB\":\"America/Anchorage\",\"KTC\":\"Africa/Abidjan\",\"KTD\":\"Asia/Tokyo\",\"KTE\":\"Asia/Kuala_Lumpur\",\"KTF\":\"Pacific/Auckland\",\"KTG\":\"Asia/Jakarta\",\"KTH\":\"America/Anchorage\",\"KTI\":\"Asia/Phnom_Penh\",\"KTJ\":\"Africa/Nairobi\",\"KTK\":\"Pacific/Bougainville\",\"KTL\":\"Africa/Nairobi\",\"KTM\":\"Asia/Kathmandu\",\"KTN\":\"America/Anchorage\",\"KTO\":\"America/Guyana\",\"KTP\":\"America/Jamaica\",\"KTQ\":\"Europe/Helsinki\",\"KTR\":\"Australia/Darwin\",\"KTS\":\"America/Anchorage\",\"KTT\":\"Europe/Helsinki\",\"KTU\":\"Asia/Kolkata\",\"KTV\":\"America/Caracas\",\"KTW\":\"Europe/Warsaw\",\"KTX\":\"Africa/Bamako\",\"KUA\":\"Asia/Kuala_Lumpur\",\"KUC\":\"Pacific/Tarawa\",\"KUD\":\"Asia/Kuala_Lumpur\",\"KUE\":\"Pacific/Guadalcanal\",\"KUF\":\"Europe/Samara\",\"KUG\":\"Australia/Brisbane\",\"KUH\":\"Asia/Tokyo\",\"KUI\":\"Pacific/Auckland\",\"KUJ\":\"Asia/Tokyo\",\"KUK\":\"America/Anchorage\",\"KUL\":\"Asia/Kuala_Lumpur\",\"KUM\":\"Asia/Tokyo\",\"KUN\":\"Europe/Vilnius\",\"KUO\":\"Europe/Helsinki\",\"KUP\":\"Pacific/Port_Moresby\",\"KUQ\":\"Pacific/Port_Moresby\",\"KUR\":\"Asia/Kabul\",\"KUS\":\"America/Godthab\",\"KUT\":\"Asia/Tbilisi\",\"KUU\":\"Asia/Kolkata\",\"KUV\":\"Asia/Seoul\",\"KUW\":\"America/Anchorage\",\"KUX\":\"Pacific/Port_Moresby\",\"KUY\":\"Pacific/Port_Moresby\",\"KUZ\":\"America/Godthab\",\"KVA\":\"Europe/Athens\",\"KVB\":\"Europe/Stockholm\",\"KVC\":\"America/Anchorage\",\"KVD\":\"Asia/Baku\",\"KVE\":\"Pacific/Port_Moresby\",\"KVG\":\"Pacific/Port_Moresby\",\"KVK\":\"Europe/Moscow\",\"KVL\":\"America/Anchorage\",\"KVO\":\"Europe/Belgrade\",\"KVR\":\"Asia/Vladivostok\",\"KVU\":\"Pacific/Fiji\",\"KVX\":\"Europe/Moscow\",\"KWA\":\"Pacific/Majuro\",\"KWB\":\"Asia/Jakarta\",\"KWE\":\"Asia/Shanghai\",\"KWF\":\"America/Anchorage\",\"KWG\":\"Europe/Kiev\",\"KWH\":\"Asia/Kabul\",\"KWI\":\"Asia/Kuwait\",\"KWJ\":\"Asia/Seoul\",\"KWK\":\"America/Anchorage\",\"KWL\":\"Asia/Shanghai\",\"KWM\":\"Australia/Brisbane\",\"KWN\":\"America/Anchorage\",\"KWO\":\"Pacific/Port_Moresby\",\"KWP\":\"America/Anchorage\",\"KWR\":\"Pacific/Guadalcanal\",\"KWS\":\"Pacific/Guadalcanal\",\"KWT\":\"America/Anchorage\",\"KWV\":\"Pacific/Bougainville\",\"KWX\":\"Pacific/Port_Moresby\",\"KWY\":\"Africa/Nairobi\",\"KWZ\":\"Africa/Lubumbashi\",\"KXA\":\"America/Anchorage\",\"KXE\":\"Africa/Johannesburg\",\"KXF\":\"Pacific/Fiji\",\"KXK\":\"Asia/Vladivostok\",\"KXR\":\"Pacific/Bougainville\",\"KXU\":\"Pacific/Tahiti\",\"KYA\":\"Europe/Istanbul\",\"KYD\":\"Asia/Taipei\",\"KYE\":\"Asia/Beirut\",\"KYF\":\"Australia/Perth\",\"KYI\":\"Australia/Adelaide\",\"KYK\":\"America/Anchorage\",\"KYL\":\"America/New_York\",\"KYN\":\"Europe/London\",\"KYO\":\"America/New_York\",\"KYP\":\"Asia/Yangon\",\"KYS\":\"Africa/Bamako\",\"KYT\":\"Asia/Yangon\",\"KYU\":\"America/Anchorage\",\"KYX\":\"Pacific/Port_Moresby\",\"KYZ\":\"Asia/Krasnoyarsk\",\"KZB\":\"America/Anchorage\",\"KZC\":\"Asia/Phnom_Penh\",\"KZD\":\"Asia/Phnom_Penh\",\"KZF\":\"Pacific/Port_Moresby\",\"KZG\":\"Europe/Berlin\",\"KZH\":\"America/Anchorage\",\"KZI\":\"Europe/Athens\",\"KZK\":\"Asia/Phnom_Penh\",\"KZN\":\"Europe/Moscow\",\"KZO\":\"Asia/Qyzylorda\",\"KZR\":\"Europe/Istanbul\",\"KZS\":\"Europe/Athens\",\"LAA\":\"America/Denver\",\"LAB\":\"Pacific/Port_Moresby\",\"LAC\":\"Asia/Kuala_Lumpur\",\"LAD\":\"Africa/Luanda\",\"LAE\":\"Pacific/Port_Moresby\",\"LAF\":\"America/Indiana/Indianapolis\",\"LAG\":\"America/Caracas\",\"LAH\":\"Asia/Jayapura\",\"LAI\":\"Europe/Paris\",\"LAJ\":\"America/Sao_Paulo\",\"LAK\":\"America/Edmonton\",\"LAL\":\"America/New_York\",\"LAM\":\"America/Denver\",\"LAN\":\"America/New_York\",\"LAO\":\"Asia/Manila\",\"LAP\":\"America/Mazatlan\",\"LAQ\":\"Africa/Tripoli\",\"LAR\":\"America/Denver\",\"LAS\":\"America/Los_Angeles\",\"LAU\":\"Africa/Nairobi\",\"LAV\":\"Pacific/Apia\",\"LAW\":\"America/Chicago\",\"LAX\":\"America/Los_Angeles\",\"LAY\":\"Africa/Johannesburg\",\"LAZ\":\"America/Belem\",\"LBA\":\"Europe/London\",\"LBB\":\"America/Chicago\",\"LBC\":\"Europe/Berlin\",\"LBD\":\"Asia/Dushanbe\",\"LBE\":\"America/New_York\",\"LBF\":\"America/Chicago\",\"LBG\":\"Europe/Paris\",\"LBH\":\"Australia/Sydney\",\"LBI\":\"Europe/Paris\",\"LBJ\":\"Asia/Makassar\",\"LBK\":\"Africa/Nairobi\",\"LBL\":\"America/Chicago\",\"LBM\":\"Africa/Maputo\",\"LBN\":\"Africa/Nairobi\",\"LBO\":\"Africa/Lubumbashi\",\"LBP\":\"Asia/Kuala_Lumpur\",\"LBQ\":\"Africa/Libreville\",\"LBR\":\"America/Porto_Velho\",\"LBS\":\"Pacific/Fiji\",\"LBT\":\"America/New_York\",\"LBU\":\"Asia/Kuala_Lumpur\",\"LBV\":\"Africa/Libreville\",\"LBW\":\"Asia/Makassar\",\"LBX\":\"Asia/Manila\",\"LBY\":\"Europe/Paris\",\"LBZ\":\"Africa/Luanda\",\"LCA\":\"Asia/Nicosia\",\"LCB\":\"America/Campo_Grande\",\"LCC\":\"Europe/Rome\",\"LCD\":\"Africa/Johannesburg\",\"LCE\":\"America/Tegucigalpa\",\"LCF\":\"America/Guatemala\",\"LCG\":\"Europe/Madrid\",\"LCH\":\"America/Chicago\",\"LCI\":\"America/New_York\",\"LCJ\":\"Europe/Warsaw\",\"LCK\":\"America/New_York\",\"LCL\":\"America/Havana\",\"LCM\":\"America/Argentina/Buenos_Aires\",\"LCN\":\"Australia/Adelaide\",\"LCO\":\"Africa/Brazzaville\",\"LCP\":\"America/Argentina/Buenos_Aires\",\"LCQ\":\"America/New_York\",\"LCR\":\"America/Bogota\",\"LCS\":\"America/Costa_Rica\",\"LCV\":\"Europe/Rome\",\"LCX\":\"Asia/Shanghai\",\"LCY\":\"Europe/London\",\"LDA\":\"Asia/Kolkata\",\"LDB\":\"America/Sao_Paulo\",\"LDC\":\"Australia/Brisbane\",\"LDE\":\"Europe/Paris\",\"LDG\":\"Europe/Moscow\",\"LDH\":\"Australia/Sydney\",\"LDI\":\"Africa/Dar_es_Salaam\",\"LDJ\":\"America/New_York\",\"LDK\":\"Europe/Stockholm\",\"LDM\":\"America/New_York\",\"LDN\":\"Asia/Kathmandu\",\"LDO\":\"America/Paramaribo\",\"LDR\":\"Asia/Aden\",\"LDS\":\"Asia/Shanghai\",\"LDU\":\"Asia/Kuala_Lumpur\",\"LDV\":\"Europe/Paris\",\"LDW\":\"Australia/Perth\",\"LDX\":\"America/Cayenne\",\"LDY\":\"Europe/London\",\"LDZ\":\"Africa/Johannesburg\",\"LEA\":\"Australia/Perth\",\"LEB\":\"America/New_York\",\"LEC\":\"America/Belem\",\"LED\":\"Europe/Moscow\",\"LEE\":\"America/New_York\",\"LEF\":\"Africa/Maseru\",\"LEG\":\"Africa/Nouakchott\",\"LEH\":\"Europe/Paris\",\"LEI\":\"Europe/Madrid\",\"LEJ\":\"Europe/Berlin\",\"LEK\":\"Africa/Conakry\",\"LEL\":\"Australia/Darwin\",\"LEM\":\"America/Denver\",\"LEN\":\"Europe/Madrid\",\"LEO\":\"Africa/Libreville\",\"LEP\":\"America/Sao_Paulo\",\"LEQ\":\"Europe/London\",\"LER\":\"Australia/Perth\",\"LES\":\"Africa/Maseru\",\"LET\":\"America/Bogota\",\"LEU\":\"Europe/Madrid\",\"LEV\":\"Pacific/Fiji\",\"LEW\":\"America/New_York\",\"LEX\":\"America/New_York\",\"LEY\":\"Europe/Amsterdam\",\"LEZ\":\"America/Tegucigalpa\",\"LFB\":\"Africa/Maputo\",\"LFI\":\"America/New_York\",\"LFK\":\"America/Chicago\",\"LFM\":\"Asia/Tehran\",\"LFN\":\"America/New_York\",\"LFO\":\"Africa/Addis_Ababa\",\"LFP\":\"Australia/Brisbane\",\"LFQ\":\"Asia/Shanghai\",\"LFR\":\"America/Caracas\",\"LFT\":\"America/Chicago\",\"LFW\":\"Africa/Lome\",\"LGA\":\"America/New_York\",\"LGB\":\"America/Los_Angeles\",\"LGC\":\"America/New_York\",\"LGD\":\"America/Los_Angeles\",\"LGE\":\"Australia/Perth\",\"LGF\":\"America/Phoenix\",\"LGG\":\"Europe/Brussels\",\"LGH\":\"Australia/Adelaide\",\"LGI\":\"America/Nassau\",\"LGK\":\"Asia/Kuala_Lumpur\",\"LGL\":\"Asia/Kuala_Lumpur\",\"LGM\":\"Pacific/Port_Moresby\",\"LGN\":\"Pacific/Port_Moresby\",\"LGO\":\"Europe/Berlin\",\"LGP\":\"Asia/Manila\",\"LGQ\":\"America/Guayaquil\",\"LGR\":\"America/Santiago\",\"LGS\":\"America/Argentina/Buenos_Aires\",\"LGT\":\"America/Bogota\",\"LGU\":\"America/Denver\",\"LGW\":\"Europe/London\",\"LGX\":\"Africa/Mogadishu\",\"LGY\":\"America/Caracas\",\"LHA\":\"Europe/Berlin\",\"LHB\":\"America/Anchorage\",\"LHE\":\"Asia/Karachi\",\"LHG\":\"Australia/Sydney\",\"LHI\":\"Asia/Jayapura\",\"LHK\":\"Asia/Shanghai\",\"LHN\":\"Asia/Taipei\",\"LHP\":\"Pacific/Bougainville\",\"LHR\":\"Europe/London\",\"LHS\":\"America/Argentina/Buenos_Aires\",\"LHU\":\"Africa/Windhoek\",\"LHV\":\"America/New_York\",\"LHW\":\"Asia/Shanghai\",\"LIA\":\"Asia/Shanghai\",\"LIB\":\"Australia/Darwin\",\"LIC\":\"America/Denver\",\"LID\":\"Europe/Amsterdam\",\"LIE\":\"Africa/Kinshasa\",\"LIF\":\"Pacific/Noumea\",\"LIG\":\"Europe/Paris\",\"LIH\":\"Pacific/Honolulu\",\"LII\":\"Asia/Jayapura\",\"LIJ\":\"America/Anchorage\",\"LIK\":\"Pacific/Majuro\",\"LIL\":\"Europe/Paris\",\"LIM\":\"America/Lima\",\"LIN\":\"Europe/Rome\",\"LIO\":\"America/Costa_Rica\",\"LIP\":\"America/Sao_Paulo\",\"LIQ\":\"Africa/Kinshasa\",\"LIR\":\"America/Costa_Rica\",\"LIS\":\"Europe/Lisbon\",\"LIT\":\"America/Chicago\",\"LIU\":\"Europe/Rome\",\"LIV\":\"America/Anchorage\",\"LIW\":\"Asia/Yangon\",\"LIX\":\"Africa/Blantyre\",\"LIY\":\"America/New_York\",\"LIZ\":\"America/New_York\",\"LJA\":\"Africa/Lubumbashi\",\"LJC\":\"America/New_York\",\"LJG\":\"Asia/Shanghai\",\"LJN\":\"America/Chicago\",\"LJU\":\"Europe/Ljubljana\",\"LKA\":\"Asia/Makassar\",\"LKB\":\"Pacific/Fiji\",\"LKC\":\"Africa/Brazzaville\",\"LKD\":\"Australia/Brisbane\",\"LKE\":\"America/Los_Angeles\",\"LKG\":\"Africa/Nairobi\",\"LKH\":\"Asia/Kuala_Lumpur\",\"LKI\":\"America/Chicago\",\"LKK\":\"America/Anchorage\",\"LKL\":\"Europe/Oslo\",\"LKN\":\"Europe/Oslo\",\"LKO\":\"Asia/Kolkata\",\"LKP\":\"America/New_York\",\"LKR\":\"Africa/Mogadishu\",\"LKS\":\"America/Chicago\",\"LKT\":\"Africa/Abidjan\",\"LKU\":\"Africa/Nairobi\",\"LKV\":\"America/Los_Angeles\",\"LKY\":\"Africa/Dar_es_Salaam\",\"LKZ\":\"Europe/London\",\"LLA\":\"Europe/Stockholm\",\"LLB\":\"Asia/Shanghai\",\"LLC\":\"Asia/Manila\",\"LLE\":\"Africa/Johannesburg\",\"LLF\":\"Asia/Shanghai\",\"LLG\":\"Australia/Brisbane\",\"LLH\":\"America/Tegucigalpa\",\"LLI\":\"Africa/Addis_Ababa\",\"LLJ\":\"Asia/Makassar\",\"LLK\":\"Asia/Baku\",\"LLL\":\"Australia/Perth\",\"LLM\":\"Pacific/Guadalcanal\",\"LLN\":\"Asia/Jayapura\",\"LLO\":\"Asia/Makassar\",\"LLP\":\"Australia/Brisbane\",\"LLS\":\"America/Argentina/Buenos_Aires\",\"LLU\":\"America/Godthab\",\"LLV\":\"Asia/Shanghai\",\"LLW\":\"Africa/Blantyre\",\"LLX\":\"America/New_York\",\"LLY\":\"America/New_York\",\"LMA\":\"America/Anchorage\",\"LMB\":\"Africa/Blantyre\",\"LMC\":\"America/Bogota\",\"LMD\":\"America/Argentina/Buenos_Aires\",\"LME\":\"Europe/Paris\",\"LMG\":\"Pacific/Port_Moresby\",\"LMH\":\"America/Tegucigalpa\",\"LMI\":\"Pacific/Port_Moresby\",\"LML\":\"Pacific/Majuro\",\"LMM\":\"America/Mazatlan\",\"LMN\":\"Asia/Kuala_Lumpur\",\"LMO\":\"Europe/London\",\"LMP\":\"Europe/Rome\",\"LMQ\":\"Africa/Tripoli\",\"LMR\":\"Africa/Johannesburg\",\"LMS\":\"America/Chicago\",\"LMT\":\"America/Los_Angeles\",\"LMU\":\"Asia/Jakarta\",\"LMX\":\"America/Bogota\",\"LMY\":\"Pacific/Port_Moresby\",\"LMZ\":\"Africa/Maputo\",\"LNA\":\"America/New_York\",\"LNB\":\"Pacific/Efate\",\"LNC\":\"Pacific/Port_Moresby\",\"LND\":\"America/Denver\",\"LNE\":\"Pacific/Efate\",\"LNF\":\"Pacific/Port_Moresby\",\"LNG\":\"Pacific/Port_Moresby\",\"LNH\":\"Australia/Darwin\",\"LNI\":\"America/Anchorage\",\"LNJ\":\"Asia/Shanghai\",\"LNK\":\"America/Chicago\",\"LNL\":\"Asia/Shanghai\",\"LNM\":\"Pacific/Port_Moresby\",\"LNN\":\"America/New_York\",\"LNO\":\"Australia/Perth\",\"LNP\":\"America/New_York\",\"LNQ\":\"Pacific/Port_Moresby\",\"LNR\":\"America/Chicago\",\"LNS\":\"America/New_York\",\"LNU\":\"Asia/Makassar\",\"LNV\":\"Pacific/Port_Moresby\",\"LNX\":\"Europe/Moscow\",\"LNY\":\"Pacific/Honolulu\",\"LNZ\":\"Europe/Vienna\",\"LOA\":\"Australia/Brisbane\",\"LOB\":\"America/Santiago\",\"LOC\":\"Australia/Adelaide\",\"LOD\":\"Pacific/Efate\",\"LOE\":\"Asia/Bangkok\",\"LOF\":\"Pacific/Majuro\",\"LOG\":\"America/Los_Angeles\",\"LOH\":\"America/Guayaquil\",\"LOI\":\"America/Sao_Paulo\",\"LOK\":\"Africa/Nairobi\",\"LOL\":\"America/Los_Angeles\",\"LOM\":\"America/Mexico_City\",\"LOO\":\"Africa/Algiers\",\"LOP\":\"Asia/Makassar\",\"LOQ\":\"Africa/Gaborone\",\"LOR\":\"America/Chicago\",\"LOS\":\"Africa/Lagos\",\"LOT\":\"America/Chicago\",\"LOU\":\"America/New_York\",\"LOV\":\"America/Mexico_City\",\"LOW\":\"America/New_York\",\"LOY\":\"Africa/Nairobi\",\"LOZ\":\"America/New_York\",\"LPA\":\"Atlantic/Canary\",\"LPB\":\"America/La_Paz\",\"LPC\":\"America/Los_Angeles\",\"LPD\":\"America/Bogota\",\"LPE\":\"America/Bogota\",\"LPF\":\"Asia/Shanghai\",\"LPG\":\"America/Argentina/Buenos_Aires\",\"LPH\":\"Europe/London\",\"LPI\":\"Europe/Stockholm\",\"LPJ\":\"America/Caracas\",\"LPK\":\"Europe/Moscow\",\"LPL\":\"Europe/London\",\"LPM\":\"Pacific/Efate\",\"LPO\":\"America/Chicago\",\"LPP\":\"Europe/Helsinki\",\"LPQ\":\"Asia/Vientiane\",\"LPS\":\"America/Los_Angeles\",\"LPT\":\"Asia/Bangkok\",\"LPU\":\"Asia/Makassar\",\"LPW\":\"America/Anchorage\",\"LPX\":\"Europe/Riga\",\"LPY\":\"Europe/Paris\",\"LQK\":\"America/New_York\",\"LQM\":\"America/Bogota\",\"LQN\":\"Asia/Kabul\",\"LRA\":\"Europe/Athens\",\"LRB\":\"Africa/Maseru\",\"LRD\":\"America/Chicago\",\"LRE\":\"Australia/Brisbane\",\"LRF\":\"America/Chicago\",\"LRG\":\"Asia/Karachi\",\"LRH\":\"Europe/Paris\",\"LRI\":\"America/Bogota\",\"LRJ\":\"America/Chicago\",\"LRL\":\"Africa/Lome\",\"LRM\":\"America/Santo_Domingo\",\"LRN\":\"America/Los_Angeles\",\"LRO\":\"America/Los_Angeles\",\"LRQ\":\"America/Winnipeg\",\"LRR\":\"Asia/Tehran\",\"LRS\":\"Europe/Athens\",\"LRT\":\"Europe/Paris\",\"LRU\":\"America/Denver\",\"LRV\":\"America/Caracas\",\"LSA\":\"Pacific/Port_Moresby\",\"LSB\":\"America/Denver\",\"LSC\":\"America/Santiago\",\"LSE\":\"America/Chicago\",\"LSF\":\"America/New_York\",\"LSH\":\"Asia/Yangon\",\"LSI\":\"Europe/London\",\"LSJ\":\"Pacific/Port_Moresby\",\"LSK\":\"America/Denver\",\"LSL\":\"America/Costa_Rica\",\"LSM\":\"Asia/Kuala_Lumpur\",\"LSN\":\"America/Los_Angeles\",\"LSO\":\"Europe/Paris\",\"LSP\":\"America/Caracas\",\"LSQ\":\"America/Santiago\",\"LSR\":\"America/Anchorage\",\"LSS\":\"America/Guadeloupe\",\"LST\":\"Australia/Hobart\",\"LSU\":\"Asia/Kuala_Lumpur\",\"LSV\":\"America/Los_Angeles\",\"LSW\":\"Asia/Jakarta\",\"LSX\":\"Asia/Jakarta\",\"LSY\":\"Australia/Sydney\",\"LSZ\":\"Europe/Zagreb\",\"LTA\":\"Africa/Johannesburg\",\"LTB\":\"Australia/Hobart\",\"LTC\":\"Africa/Ndjamena\",\"LTD\":\"Africa/Tripoli\",\"LTF\":\"Pacific/Port_Moresby\",\"LTG\":\"Asia/Kathmandu\",\"LTH\":\"America/Los_Angeles\",\"LTI\":\"Asia/Ulaanbaatar\",\"LTK\":\"Asia/Damascus\",\"LTL\":\"Africa/Libreville\",\"LTM\":\"America/Guyana\",\"LTN\":\"Europe/London\",\"LTO\":\"America/Mazatlan\",\"LTP\":\"Australia/Brisbane\",\"LTQ\":\"Europe/Paris\",\"LTR\":\"Europe/Dublin\",\"LTS\":\"America/Chicago\",\"LTT\":\"Europe/Paris\",\"LTU\":\"Asia/Kolkata\",\"LTV\":\"Australia/Brisbane\",\"LTW\":\"America/New_York\",\"LTX\":\"America/Guayaquil\",\"LUA\":\"Asia/Kathmandu\",\"LUB\":\"America/Guyana\",\"LUC\":\"Pacific/Fiji\",\"LUD\":\"Africa/Windhoek\",\"LUE\":\"Europe/Bratislava\",\"LUF\":\"America/Phoenix\",\"LUG\":\"Europe/Zurich\",\"LUH\":\"Asia/Kolkata\",\"LUI\":\"America/Tegucigalpa\",\"LUJ\":\"Africa/Johannesburg\",\"LUK\":\"America/New_York\",\"LUL\":\"America/Chicago\",\"LUM\":\"Asia/Shanghai\",\"LUN\":\"Africa/Lusaka\",\"LUO\":\"Africa/Luanda\",\"LUP\":\"Pacific/Honolulu\",\"LUQ\":\"America/Argentina/Buenos_Aires\",\"LUR\":\"America/Anchorage\",\"LUS\":\"Africa/Kinshasa\",\"LUT\":\"Australia/Brisbane\",\"LUU\":\"Australia/Brisbane\",\"LUV\":\"Asia/Jayapura\",\"LUW\":\"Asia/Makassar\",\"LUX\":\"Europe/Luxembourg\",\"LUZ\":\"Europe/Warsaw\",\"LVA\":\"Europe/Paris\",\"LVB\":\"America/Sao_Paulo\",\"LVD\":\"America/Anchorage\",\"LVI\":\"Africa/Lusaka\",\"LVK\":\"America/Los_Angeles\",\"LVL\":\"America/New_York\",\"LVM\":\"America/Denver\",\"LVO\":\"Australia/Perth\",\"LVP\":\"Asia/Tehran\",\"LVS\":\"America/Denver\",\"LWA\":\"Asia/Manila\",\"LWB\":\"America/New_York\",\"LWC\":\"America/Chicago\",\"LWE\":\"Asia/Makassar\",\"LWH\":\"Australia/Brisbane\",\"LWI\":\"Pacific/Port_Moresby\",\"LWK\":\"Europe/London\",\"LWL\":\"America/Los_Angeles\",\"LWM\":\"America/New_York\",\"LWN\":\"Asia/Yerevan\",\"LWO\":\"Europe/Kiev\",\"LWR\":\"Europe/Amsterdam\",\"LWS\":\"America/Los_Angeles\",\"LWT\":\"America/Denver\",\"LWV\":\"America/Chicago\",\"LWY\":\"Asia/Kuala_Lumpur\",\"LXA\":\"Asia/Shanghai\",\"LXG\":\"Asia/Vientiane\",\"LXI\":\"Asia/Shanghai\",\"LXN\":\"America/Chicago\",\"LXR\":\"Africa/Cairo\",\"LXS\":\"Europe/Athens\",\"LXU\":\"Africa/Lusaka\",\"LXV\":\"America/Denver\",\"LYA\":\"Asia/Shanghai\",\"LYB\":\"America/Cayman\",\"LYC\":\"Europe/Stockholm\",\"LYE\":\"Europe/London\",\"LYG\":\"Asia/Shanghai\",\"LYH\":\"America/New_York\",\"LYI\":\"Asia/Shanghai\",\"LYK\":\"Asia/Makassar\",\"LYN\":\"Europe/Paris\",\"LYO\":\"America/Chicago\",\"LYP\":\"Asia/Karachi\",\"LYR\":\"Arctic/Longyearbyen\",\"LYS\":\"Europe/Paris\",\"LYT\":\"Australia/Brisbane\",\"LYU\":\"America/Chicago\",\"LYX\":\"Europe/London\",\"LZA\":\"Africa/Kinshasa\",\"LZC\":\"America/Mexico_City\",\"LZD\":\"Asia/Shanghai\",\"LZH\":\"Asia/Shanghai\",\"LZI\":\"Africa/Kinshasa\",\"LZM\":\"Africa/Luanda\",\"LZN\":\"Asia/Shanghai\",\"LZO\":\"Asia/Shanghai\",\"LZR\":\"Australia/Brisbane\",\"LZY\":\"Asia/Shanghai\",\"MAA\":\"Asia/Kolkata\",\"MAB\":\"America/Belem\",\"MAC\":\"America/New_York\",\"MAD\":\"Europe/Madrid\",\"MAE\":\"America/Los_Angeles\",\"MAF\":\"America/Chicago\",\"MAG\":\"Pacific/Port_Moresby\",\"MAH\":\"Europe/Madrid\",\"MAI\":\"Africa/Blantyre\",\"MAJ\":\"Pacific/Majuro\",\"MAK\":\"Africa/Juba\",\"MAL\":\"Asia/Jayapura\",\"MAM\":\"America/Matamoros\",\"MAN\":\"Europe/London\",\"MAO\":\"America/Porto_Velho\",\"MAP\":\"Pacific/Port_Moresby\",\"MAQ\":\"Asia/Bangkok\",\"MAR\":\"America/Caracas\",\"MAS\":\"Pacific/Port_Moresby\",\"MAT\":\"Africa/Kinshasa\",\"MAU\":\"Pacific/Tahiti\",\"MAV\":\"Pacific/Majuro\",\"MAW\":\"America/Chicago\",\"MAX\":\"Africa/Dakar\",\"MAY\":\"America/Nassau\",\"MAZ\":\"America/Puerto_Rico\",\"MBA\":\"Africa/Nairobi\",\"MBB\":\"Australia/Perth\",\"MBC\":\"Africa/Libreville\",\"MBD\":\"Africa/Johannesburg\",\"MBE\":\"Asia/Tokyo\",\"MBF\":\"Australia/Sydney\",\"MBG\":\"America/Chicago\",\"MBH\":\"Australia/Brisbane\",\"MBI\":\"Africa/Dar_es_Salaam\",\"MBJ\":\"America/Jamaica\",\"MBK\":\"America/Campo_Grande\",\"MBL\":\"America/New_York\",\"MBM\":\"Africa/Johannesburg\",\"MBN\":\"Australia/Perth\",\"MBO\":\"Asia/Manila\",\"MBP\":\"America/Lima\",\"MBQ\":\"Africa/Kampala\",\"MBR\":\"Africa/Nouakchott\",\"MBS\":\"America/New_York\",\"MBT\":\"Asia/Manila\",\"MBU\":\"Pacific/Guadalcanal\",\"MBV\":\"Pacific/Port_Moresby\",\"MBW\":\"Australia/Sydney\",\"MBX\":\"Europe/Ljubljana\",\"MBY\":\"America/Chicago\",\"MBZ\":\"America/Porto_Velho\",\"MCA\":\"Africa/Conakry\",\"MCB\":\"America/Chicago\",\"MCC\":\"America/Los_Angeles\",\"MCD\":\"America/New_York\",\"MCE\":\"America/Los_Angeles\",\"MCF\":\"America/New_York\",\"MCG\":\"America/Anchorage\",\"MCH\":\"America/Guayaquil\",\"MCI\":\"America/Chicago\",\"MCJ\":\"America/Bogota\",\"MCK\":\"America/Chicago\",\"MCL\":\"America/Anchorage\",\"MCM\":\"Europe/Monaco\",\"MCN\":\"America/New_York\",\"MCO\":\"America/New_York\",\"MCP\":\"America/Belem\",\"MCQ\":\"Europe/Budapest\",\"MCR\":\"America/Guatemala\",\"MCS\":\"America/Argentina/Buenos_Aires\",\"MCT\":\"Asia/Muscat\",\"MCU\":\"Europe/Paris\",\"MCV\":\"Australia/Darwin\",\"MCW\":\"America/Chicago\",\"MCX\":\"Europe/Moscow\",\"MCY\":\"Australia/Brisbane\",\"MCZ\":\"America/Belem\",\"MDA\":\"America/Chicago\",\"MDB\":\"America/Belize\",\"MDC\":\"Asia/Makassar\",\"MDD\":\"America/Chicago\",\"MDE\":\"America/Bogota\",\"MDF\":\"America/Chicago\",\"MDG\":\"Asia/Shanghai\",\"MDH\":\"America/Chicago\",\"MDI\":\"Africa/Lagos\",\"MDJ\":\"America/Los_Angeles\",\"MDK\":\"Africa/Kinshasa\",\"MDL\":\"Asia/Yangon\",\"MDM\":\"Pacific/Port_Moresby\",\"MDN\":\"America/Indiana/Indianapolis\",\"MDO\":\"America/Anchorage\",\"MDP\":\"Asia/Jayapura\",\"MDQ\":\"America/Argentina/Buenos_Aires\",\"MDR\":\"Africa/Nairobi\",\"MDS\":\"America/Grand_Turk\",\"MDT\":\"America/New_York\",\"MDU\":\"Pacific/Port_Moresby\",\"MDV\":\"Africa/Libreville\",\"MDW\":\"America/Chicago\",\"MDX\":\"America/Argentina/Buenos_Aires\",\"MDY\":\"Pacific/Midway\",\"MDZ\":\"America/Argentina/Buenos_Aires\",\"MEA\":\"America/Sao_Paulo\",\"MEB\":\"Australia/Sydney\",\"MEC\":\"America/Guayaquil\",\"MED\":\"Asia/Riyadh\",\"MEE\":\"Pacific/Noumea\",\"MEF\":\"Africa/Ndjamena\",\"MEG\":\"Africa/Luanda\",\"MEH\":\"Europe/Oslo\",\"MEI\":\"America/Chicago\",\"MEJ\":\"America/New_York\",\"MEK\":\"Africa/Casablanca\",\"MEL\":\"Australia/Sydney\",\"MEM\":\"America/Chicago\",\"MEN\":\"Europe/Paris\",\"MEO\":\"America/New_York\",\"MEP\":\"Asia/Kuala_Lumpur\",\"MEQ\":\"Asia/Jakarta\",\"MER\":\"America/Los_Angeles\",\"MES\":\"Asia/Jakarta\",\"MET\":\"Australia/Brisbane\",\"MEU\":\"America/Belem\",\"MEV\":\"America/Los_Angeles\",\"MEW\":\"Africa/Lubumbashi\",\"MEX\":\"America/Mexico_City\",\"MEY\":\"Asia/Kathmandu\",\"MEZ\":\"Africa/Johannesburg\",\"MFA\":\"Africa/Dar_es_Salaam\",\"MFB\":\"America/Bogota\",\"MFC\":\"Africa/Maseru\",\"MFD\":\"America/New_York\",\"MFE\":\"America/Chicago\",\"MFF\":\"Africa/Libreville\",\"MFG\":\"Asia/Karachi\",\"MFH\":\"America/Los_Angeles\",\"MFI\":\"America/Chicago\",\"MFJ\":\"Pacific/Fiji\",\"MFK\":\"Asia/Taipei\",\"MFL\":\"Australia/Brisbane\",\"MFM\":\"Asia/Macau\",\"MFN\":\"Pacific/Auckland\",\"MFO\":\"Pacific/Port_Moresby\",\"MFP\":\"Australia/Darwin\",\"MFQ\":\"Africa/Niamey\",\"MFR\":\"America/Los_Angeles\",\"MFS\":\"America/Bogota\",\"MFT\":\"America/Lima\",\"MFU\":\"Africa/Lusaka\",\"MFV\":\"America/New_York\",\"MFW\":\"Africa/Maputo\",\"MFX\":\"Europe/Paris\",\"MFY\":\"Asia/Aden\",\"MFZ\":\"Pacific/Port_Moresby\",\"MGA\":\"America/Managua\",\"MGB\":\"Australia/Adelaide\",\"MGC\":\"America/Chicago\",\"MGD\":\"America/La_Paz\",\"MGE\":\"America/New_York\",\"MGF\":\"America/Sao_Paulo\",\"MGG\":\"Pacific/Port_Moresby\",\"MGH\":\"Africa/Johannesburg\",\"MGI\":\"America/Chicago\",\"MGJ\":\"America/New_York\",\"MGK\":\"Asia/Yangon\",\"MGL\":\"Europe/Berlin\",\"MGM\":\"America/Chicago\",\"MGN\":\"America/Bogota\",\"MGO\":\"Africa/Libreville\",\"MGP\":\"Pacific/Port_Moresby\",\"MGQ\":\"Africa/Mogadishu\",\"MGR\":\"America/New_York\",\"MGS\":\"Pacific/Rarotonga\",\"MGT\":\"Australia/Darwin\",\"MGU\":\"Asia/Yangon\",\"MGV\":\"Australia/Perth\",\"MGW\":\"America/New_York\",\"MGX\":\"Africa/Libreville\",\"MGY\":\"America/New_York\",\"MGZ\":\"Asia/Yangon\",\"MHA\":\"America/Guyana\",\"MHB\":\"Pacific/Auckland\",\"MHC\":\"America/Santiago\",\"MHD\":\"Asia/Tehran\",\"MHE\":\"America/Chicago\",\"MHF\":\"America/Bogota\",\"MHG\":\"Europe/Berlin\",\"MHH\":\"America/Nassau\",\"MHI\":\"Africa/Djibouti\",\"MHK\":\"America/Chicago\",\"MHL\":\"America/Chicago\",\"MHM\":\"Pacific/Guadalcanal\",\"MHN\":\"America/Denver\",\"MHO\":\"Australia/Perth\",\"MHP\":\"Europe/Minsk\",\"MHQ\":\"Europe/Helsinki\",\"MHR\":\"America/Los_Angeles\",\"MHS\":\"America/Los_Angeles\",\"MHT\":\"America/New_York\",\"MHU\":\"Australia/Sydney\",\"MHV\":\"America/Los_Angeles\",\"MHW\":\"America/La_Paz\",\"MHX\":\"Pacific/Rarotonga\",\"MHY\":\"Pacific/Port_Moresby\",\"MHZ\":\"Europe/London\",\"MIA\":\"America/New_York\",\"MIB\":\"America/Chicago\",\"MIC\":\"America/Chicago\",\"MID\":\"America/Mexico_City\",\"MIE\":\"America/Indiana/Indianapolis\",\"MIF\":\"America/Chicago\",\"MIG\":\"Asia/Shanghai\",\"MIH\":\"Australia/Perth\",\"MII\":\"America/Sao_Paulo\",\"MIJ\":\"Pacific/Majuro\",\"MIK\":\"Europe/Helsinki\",\"MIM\":\"Australia/Sydney\",\"MIN\":\"Australia/Adelaide\",\"MIO\":\"America/Chicago\",\"MIP\":\"Asia/Jerusalem\",\"MIQ\":\"America/Chicago\",\"MIR\":\"Africa/Tunis\",\"MIS\":\"Pacific/Port_Moresby\",\"MIT\":\"America/Los_Angeles\",\"MIU\":\"Africa/Lagos\",\"MIV\":\"America/New_York\",\"MIW\":\"America/Chicago\",\"MIX\":\"America/Bogota\",\"MIZ\":\"Australia/Darwin\",\"MJA\":\"Indian/Antananarivo\",\"MJB\":\"Pacific/Majuro\",\"MJC\":\"Africa/Abidjan\",\"MJD\":\"Asia/Karachi\",\"MJE\":\"Pacific/Majuro\",\"MJF\":\"Europe/Oslo\",\"MJG\":\"America/Havana\",\"MJH\":\"Asia/Riyadh\",\"MJI\":\"Africa/Tripoli\",\"MJJ\":\"Pacific/Port_Moresby\",\"MJK\":\"Australia/Perth\",\"MJL\":\"Africa/Libreville\",\"MJM\":\"Africa/Lubumbashi\",\"MJN\":\"Indian/Antananarivo\",\"MJO\":\"Africa/Windhoek\",\"MJP\":\"Australia/Perth\",\"MJQ\":\"America/Chicago\",\"MJR\":\"America/Argentina/Buenos_Aires\",\"MJT\":\"Europe/Athens\",\"MJU\":\"Asia/Makassar\",\"MJV\":\"Europe/Madrid\",\"MJW\":\"Africa/Harare\",\"MJX\":\"America/New_York\",\"MJY\":\"Asia/Jakarta\",\"MJZ\":\"Asia/Yakutsk\",\"MKA\":\"Europe/Prague\",\"MKB\":\"Africa/Libreville\",\"MKC\":\"America/Chicago\",\"MKD\":\"Africa/Addis_Ababa\",\"MKE\":\"America/Chicago\",\"MKF\":\"America/New_York\",\"MKG\":\"America/New_York\",\"MKH\":\"Africa/Maseru\",\"MKI\":\"Africa/Bangui\",\"MKJ\":\"Africa/Brazzaville\",\"MKK\":\"Pacific/Honolulu\",\"MKL\":\"America/Chicago\",\"MKM\":\"Asia/Kuala_Lumpur\",\"MKN\":\"Pacific/Port_Moresby\",\"MKO\":\"America/Chicago\",\"MKP\":\"Pacific/Tahiti\",\"MKQ\":\"Asia/Jayapura\",\"MKR\":\"Australia/Perth\",\"MKS\":\"Africa/Addis_Ababa\",\"MKT\":\"America/Chicago\",\"MKU\":\"Africa/Libreville\",\"MKV\":\"Australia/Darwin\",\"MKW\":\"Asia/Jayapura\",\"MKX\":\"Asia/Aden\",\"MKY\":\"Australia/Brisbane\",\"MKZ\":\"Asia/Kuala_Lumpur\",\"MLA\":\"Europe/Malta\",\"MLB\":\"America/New_York\",\"MLC\":\"America/Chicago\",\"MLD\":\"America/Denver\",\"MLE\":\"Indian/Maldives\",\"MLF\":\"America/Denver\",\"MLG\":\"Asia/Jakarta\",\"MLH\":\"Europe/Zurich\",\"MLI\":\"America/Chicago\",\"MLJ\":\"America/New_York\",\"MLK\":\"America/Denver\",\"MLL\":\"America/Anchorage\",\"MLM\":\"America/Mexico_City\",\"MLN\":\"Europe/Madrid\",\"MLO\":\"Europe/Athens\",\"MLP\":\"Asia/Manila\",\"MLQ\":\"Pacific/Port_Moresby\",\"MLR\":\"Australia/Adelaide\",\"MLS\":\"America/Denver\",\"MLT\":\"America/New_York\",\"MLU\":\"America/Chicago\",\"MLV\":\"Australia/Brisbane\",\"MLW\":\"Africa/Monrovia\",\"MLX\":\"Europe/Istanbul\",\"MLY\":\"America/Anchorage\",\"MLZ\":\"America/Montevideo\",\"MMB\":\"Asia/Tokyo\",\"MMC\":\"America/Mexico_City\",\"MMD\":\"Asia/Tokyo\",\"MME\":\"Europe/London\",\"MMF\":\"Africa/Douala\",\"MMG\":\"Australia/Perth\",\"MMH\":\"America/Los_Angeles\",\"MMI\":\"America/New_York\",\"MMJ\":\"Asia/Tokyo\",\"MMK\":\"Europe/Moscow\",\"MML\":\"America/Chicago\",\"MMM\":\"Australia/Brisbane\",\"MMN\":\"America/New_York\",\"MMO\":\"Atlantic/Cape_Verde\",\"MMP\":\"America/Bogota\",\"MMQ\":\"Africa/Lusaka\",\"MMR\":\"America/Chicago\",\"MMS\":\"America/Chicago\",\"MMT\":\"America/New_York\",\"MMU\":\"America/New_York\",\"MMW\":\"Africa/Maputo\",\"MMX\":\"Europe/Stockholm\",\"MMY\":\"Asia/Tokyo\",\"MMZ\":\"Asia/Kabul\",\"MNA\":\"Asia/Makassar\",\"MNB\":\"Africa/Kinshasa\",\"MNC\":\"Africa/Maputo\",\"MND\":\"America/Bogota\",\"MNE\":\"Australia/Adelaide\",\"MNF\":\"Pacific/Fiji\",\"MNG\":\"Australia/Darwin\",\"MNH\":\"Asia/Muscat\",\"MNI\":\"America/Montserrat\",\"MNJ\":\"Indian/Antananarivo\",\"MNK\":\"Pacific/Tarawa\",\"MNL\":\"Asia/Manila\",\"MNM\":\"America/Chicago\",\"MNN\":\"America/New_York\",\"MNO\":\"Africa/Lubumbashi\",\"MNQ\":\"Australia/Brisbane\",\"MNR\":\"Africa/Lusaka\",\"MNS\":\"Africa/Lusaka\",\"MNT\":\"America/Anchorage\",\"MNU\":\"Asia/Yangon\",\"MNV\":\"Australia/Darwin\",\"MNW\":\"Australia/Darwin\",\"MNX\":\"America/Porto_Velho\",\"MNY\":\"Pacific/Guadalcanal\",\"MNZ\":\"America/New_York\",\"MOA\":\"America/Havana\",\"MOB\":\"America/Chicago\",\"MOC\":\"America/Sao_Paulo\",\"MOD\":\"America/Los_Angeles\",\"MOE\":\"Asia/Yangon\",\"MOF\":\"Asia/Makassar\",\"MOG\":\"Asia/Yangon\",\"MOH\":\"Asia/Makassar\",\"MOI\":\"Pacific/Rarotonga\",\"MOJ\":\"America/Paramaribo\",\"MOK\":\"Africa/Abidjan\",\"MOL\":\"Europe/Oslo\",\"MOM\":\"Africa/Nouakchott\",\"MON\":\"Pacific/Auckland\",\"MOO\":\"Australia/Adelaide\",\"MOP\":\"America/New_York\",\"MOQ\":\"Indian/Antananarivo\",\"MOR\":\"America/New_York\",\"MOS\":\"America/Anchorage\",\"MOT\":\"America/Chicago\",\"MOU\":\"America/Anchorage\",\"MOV\":\"Australia/Brisbane\",\"MOX\":\"America/Chicago\",\"MOY\":\"America/Bogota\",\"MOZ\":\"Pacific/Tahiti\",\"MPA\":\"Africa/Windhoek\",\"MPB\":\"America/New_York\",\"MPC\":\"Asia/Jakarta\",\"MPD\":\"Asia/Karachi\",\"MPE\":\"America/New_York\",\"MPF\":\"Pacific/Port_Moresby\",\"MPG\":\"Pacific/Port_Moresby\",\"MPH\":\"Asia/Manila\",\"MPI\":\"America/Panama\",\"MPJ\":\"America/Chicago\",\"MPK\":\"Asia/Seoul\",\"MPL\":\"Europe/Paris\",\"MPM\":\"Africa/Maputo\",\"MPN\":\"Atlantic/Stanley\",\"MPO\":\"America/New_York\",\"MPP\":\"America/Panama\",\"MPQ\":\"Asia/Amman\",\"MPR\":\"America/Chicago\",\"MPS\":\"America/Chicago\",\"MPT\":\"Asia/Jayapura\",\"MPU\":\"Pacific/Port_Moresby\",\"MPV\":\"America/New_York\",\"MPX\":\"Pacific/Port_Moresby\",\"MPY\":\"America/Cayenne\",\"MPZ\":\"America/Chicago\",\"MQA\":\"Australia/Perth\",\"MQB\":\"America/Chicago\",\"MQC\":\"America/Miquelon\",\"MQD\":\"America/Argentina/Buenos_Aires\",\"MQE\":\"Australia/Darwin\",\"MQF\":\"Asia/Yekaterinburg\",\"MQG\":\"Africa/Windhoek\",\"MQH\":\"America/Sao_Paulo\",\"MQI\":\"America/New_York\",\"MQJ\":\"Asia/Magadan\",\"MQK\":\"America/La_Paz\",\"MQL\":\"Australia/Sydney\",\"MQM\":\"Europe/Istanbul\",\"MQN\":\"Europe/Oslo\",\"MQO\":\"Pacific/Port_Moresby\",\"MQP\":\"Africa/Johannesburg\",\"MQQ\":\"Africa/Ndjamena\",\"MQR\":\"America/Bogota\",\"MQS\":\"America/St_Vincent\",\"MQT\":\"America/New_York\",\"MQU\":\"America/Bogota\",\"MQV\":\"Africa/Algiers\",\"MQW\":\"America/New_York\",\"MQX\":\"Africa/Addis_Ababa\",\"MQY\":\"America/Chicago\",\"MQZ\":\"Australia/Perth\",\"MRA\":\"Africa/Tripoli\",\"MRB\":\"America/New_York\",\"MRC\":\"America/Chicago\",\"MRD\":\"America/Caracas\",\"MRE\":\"Africa/Nairobi\",\"MRF\":\"America/Chicago\",\"MRG\":\"Australia/Brisbane\",\"MRH\":\"Pacific/Port_Moresby\",\"MRI\":\"America/Anchorage\",\"MRJ\":\"America/Tegucigalpa\",\"MRK\":\"America/New_York\",\"MRL\":\"Australia/Brisbane\",\"MRM\":\"Pacific/Port_Moresby\",\"MRN\":\"America/New_York\",\"MRO\":\"Pacific/Auckland\",\"MRP\":\"Australia/Adelaide\",\"MRQ\":\"Asia/Manila\",\"MRR\":\"America/Guayaquil\",\"MRS\":\"Europe/Paris\",\"MRT\":\"Australia/Darwin\",\"MRU\":\"Indian/Mauritius\",\"MRV\":\"Europe/Moscow\",\"MRW\":\"Europe/Copenhagen\",\"MRX\":\"Asia/Tehran\",\"MRY\":\"America/Los_Angeles\",\"MRZ\":\"Australia/Sydney\",\"MSA\":\"America/Winnipeg\",\"MSC\":\"America/Phoenix\",\"MSD\":\"America/Denver\",\"MSE\":\"Europe/London\",\"MSF\":\"Australia/Darwin\",\"MSG\":\"Africa/Maseru\",\"MSH\":\"Asia/Muscat\",\"MSI\":\"Asia/Jakarta\",\"MSJ\":\"Asia/Tokyo\",\"MSK\":\"America/Nassau\",\"MSL\":\"America/Chicago\",\"MSM\":\"Africa/Kinshasa\",\"MSN\":\"America/Chicago\",\"MSO\":\"America/Denver\",\"MSP\":\"America/Chicago\",\"MSQ\":\"Europe/Minsk\",\"MSR\":\"Europe/Istanbul\",\"MSS\":\"America/New_York\",\"MST\":\"Europe/Amsterdam\",\"MSU\":\"Africa/Maseru\",\"MSV\":\"America/New_York\",\"MSW\":\"Africa/Asmara\",\"MSX\":\"Africa/Brazzaville\",\"MSY\":\"America/Chicago\",\"MSZ\":\"Africa/Luanda\",\"MTA\":\"Pacific/Auckland\",\"MTB\":\"America/Bogota\",\"MTC\":\"America/New_York\",\"MTD\":\"Australia/Darwin\",\"MTE\":\"America/Porto_Velho\",\"MTF\":\"Africa/Addis_Ababa\",\"MTG\":\"America/Campo_Grande\",\"MTH\":\"America/New_York\",\"MTI\":\"Atlantic/Cape_Verde\",\"MTJ\":\"America/Denver\",\"MTK\":\"Pacific/Tarawa\",\"MTL\":\"Australia/Sydney\",\"MTM\":\"America/Anchorage\",\"MTN\":\"America/New_York\",\"MTO\":\"America/Chicago\",\"MTP\":\"America/New_York\",\"MTQ\":\"Australia/Brisbane\",\"MTR\":\"America/Bogota\",\"MTS\":\"Africa/Mbabane\",\"MTT\":\"America/Mexico_City\",\"MTU\":\"Africa/Maputo\",\"MTV\":\"Pacific/Efate\",\"MTW\":\"America/Chicago\",\"MTX\":\"America/Anchorage\",\"MTY\":\"America/Mexico_City\",\"MTZ\":\"Asia/Jerusalem\",\"MUA\":\"Pacific/Guadalcanal\",\"MUB\":\"Africa/Gaborone\",\"MUC\":\"Europe/Berlin\",\"MUD\":\"Africa/Maputo\",\"MUE\":\"Pacific/Honolulu\",\"MUF\":\"Asia/Jayapura\",\"MUG\":\"America/Mazatlan\",\"MUH\":\"Africa/Cairo\",\"MUI\":\"America/New_York\",\"MUJ\":\"Africa/Addis_Ababa\",\"MUK\":\"Pacific/Rarotonga\",\"MUL\":\"America/New_York\",\"MUM\":\"Africa/Nairobi\",\"MUN\":\"America/Caracas\",\"MUO\":\"America/Denver\",\"MUP\":\"Australia/Darwin\",\"MUQ\":\"Australia/Perth\",\"MUR\":\"Asia/Kuala_Lumpur\",\"MUT\":\"America/Chicago\",\"MUU\":\"America/New_York\",\"MUV\":\"America/New_York\",\"MUW\":\"Africa/Algiers\",\"MUX\":\"Asia/Karachi\",\"MUY\":\"Africa/Brazzaville\",\"MUZ\":\"Africa/Dar_es_Salaam\",\"MVA\":\"Atlantic/Reykjavik\",\"MVB\":\"Africa/Libreville\",\"MVC\":\"America/Chicago\",\"MVD\":\"America/Montevideo\",\"MVE\":\"America/Chicago\",\"MVF\":\"America/Belem\",\"MVG\":\"Africa/Libreville\",\"MVH\":\"Australia/Sydney\",\"MVI\":\"Pacific/Bougainville\",\"MVJ\":\"America/Jamaica\",\"MVK\":\"Australia/Adelaide\",\"MVL\":\"America/New_York\",\"MVM\":\"America/Phoenix\",\"MVN\":\"America/Chicago\",\"MVO\":\"Africa/Ndjamena\",\"MVP\":\"America/Bogota\",\"MVQ\":\"Europe/Minsk\",\"MVR\":\"Africa/Douala\",\"MVS\":\"America/Belem\",\"MVT\":\"Pacific/Tahiti\",\"MVU\":\"Australia/Brisbane\",\"MVV\":\"Europe/Paris\",\"MVW\":\"America/Los_Angeles\",\"MVX\":\"Africa/Libreville\",\"MVY\":\"America/New_York\",\"MVZ\":\"Africa/Harare\",\"MWA\":\"America/Chicago\",\"MWB\":\"Australia/Perth\",\"MWC\":\"America/Chicago\",\"MWD\":\"Asia/Karachi\",\"MWE\":\"Africa/Khartoum\",\"MWF\":\"Pacific/Efate\",\"MWG\":\"Pacific/Port_Moresby\",\"MWH\":\"America/Los_Angeles\",\"MWI\":\"Pacific/Port_Moresby\",\"MWJ\":\"America/Guyana\",\"MWK\":\"Asia/Jakarta\",\"MWL\":\"America/Chicago\",\"MWM\":\"America/Chicago\",\"MWN\":\"Africa/Dar_es_Salaam\",\"MWO\":\"America/New_York\",\"MWP\":\"Asia/Kathmandu\",\"MWQ\":\"Asia/Yangon\",\"MWS\":\"America/Los_Angeles\",\"MWT\":\"Australia/Adelaide\",\"MWU\":\"Pacific/Port_Moresby\",\"MWV\":\"Asia/Phnom_Penh\",\"MWW\":\"Europe/Brussels\",\"MWX\":\"Asia/Seoul\",\"MWY\":\"Australia/Brisbane\",\"MWZ\":\"Africa/Dar_es_Salaam\",\"MXA\":\"America/Chicago\",\"MXB\":\"Asia/Jayapura\",\"MXC\":\"America/Denver\",\"MXD\":\"Australia/Brisbane\",\"MXE\":\"America/New_York\",\"MXF\":\"America/Chicago\",\"MXG\":\"America/New_York\",\"MXH\":\"Pacific/Port_Moresby\",\"MXI\":\"Asia/Manila\",\"MXJ\":\"Africa/Lagos\",\"MXK\":\"Pacific/Port_Moresby\",\"MXL\":\"America/Tijuana\",\"MXM\":\"Indian/Antananarivo\",\"MXN\":\"Europe/Paris\",\"MXO\":\"America/Chicago\",\"MXP\":\"Europe/Rome\",\"MXQ\":\"Australia/Brisbane\",\"MXR\":\"Europe/Kiev\",\"MXS\":\"Pacific/Apia\",\"MXT\":\"Indian/Antananarivo\",\"MXU\":\"Australia/Perth\",\"MXV\":\"Asia/Ulaanbaatar\",\"MXW\":\"Asia/Ulaanbaatar\",\"MXX\":\"Europe/Stockholm\",\"MXY\":\"America/Anchorage\",\"MXZ\":\"Asia/Shanghai\",\"MYA\":\"Australia/Sydney\",\"MYB\":\"Africa/Libreville\",\"MYC\":\"America/Caracas\",\"MYD\":\"Africa/Nairobi\",\"MYE\":\"Asia/Tokyo\",\"MYF\":\"America/Los_Angeles\",\"MYG\":\"America/Nassau\",\"MYH\":\"America/Phoenix\",\"MYI\":\"Australia/Brisbane\",\"MYJ\":\"Asia/Tokyo\",\"MYK\":\"America/Anchorage\",\"MYL\":\"America/Denver\",\"MYM\":\"America/Guyana\",\"MYN\":\"Asia/Aden\",\"MYO\":\"Australia/Perth\",\"MYP\":\"Asia/Ashgabat\",\"MYQ\":\"Asia/Kolkata\",\"MYR\":\"America/New_York\",\"MYS\":\"Africa/Addis_Ababa\",\"MYT\":\"Asia/Yangon\",\"MYU\":\"America/Anchorage\",\"MYV\":\"America/Los_Angeles\",\"MYW\":\"Africa/Dar_es_Salaam\",\"MYX\":\"Pacific/Port_Moresby\",\"MYY\":\"Asia/Kuala_Lumpur\",\"MYZ\":\"Africa/Blantyre\",\"MZA\":\"America/Lima\",\"MZB\":\"Africa/Maputo\",\"MZC\":\"Africa/Libreville\",\"MZD\":\"America/Guayaquil\",\"MZE\":\"America/Belize\",\"MZF\":\"Africa/Johannesburg\",\"MZG\":\"Asia/Taipei\",\"MZH\":\"Europe/Istanbul\",\"MZI\":\"Africa/Bamako\",\"MZJ\":\"America/Phoenix\",\"MZK\":\"Pacific/Tarawa\",\"MZL\":\"America/Bogota\",\"MZM\":\"Europe/Paris\",\"MZN\":\"Pacific/Port_Moresby\",\"MZO\":\"America/Havana\",\"MZP\":\"Pacific/Auckland\",\"MZQ\":\"Africa/Johannesburg\",\"MZR\":\"Asia/Kabul\",\"MZS\":\"Asia/Kuala_Lumpur\",\"MZT\":\"America/Mazatlan\",\"MZU\":\"Asia/Kolkata\",\"MZV\":\"Asia/Kuala_Lumpur\",\"MZW\":\"Africa/Algiers\",\"MZX\":\"Africa/Addis_Ababa\",\"MZY\":\"Africa/Johannesburg\",\"MZZ\":\"America/Indiana/Indianapolis\",\"NAA\":\"Australia/Sydney\",\"NAB\":\"America/New_York\",\"NAC\":\"Australia/Adelaide\",\"NAD\":\"America/Bogota\",\"NAE\":\"Africa/Porto-Novo\",\"NAF\":\"Asia/Makassar\",\"NAG\":\"Asia/Kolkata\",\"NAH\":\"Asia/Makassar\",\"NAI\":\"America/Guyana\",\"NAJ\":\"Asia/Baku\",\"NAK\":\"Asia/Bangkok\",\"NAL\":\"Europe/Moscow\",\"NAM\":\"Asia/Jayapura\",\"NAN\":\"Pacific/Fiji\",\"NAO\":\"Asia/Shanghai\",\"NAP\":\"Europe/Rome\",\"NAQ\":\"America/Godthab\",\"NAR\":\"America/Bogota\",\"NAS\":\"America/Nassau\",\"NAT\":\"America/Belem\",\"NAU\":\"Pacific/Tahiti\",\"NAV\":\"Europe/Istanbul\",\"NAW\":\"Asia/Bangkok\",\"NBA\":\"Pacific/Port_Moresby\",\"NBB\":\"America/Bogota\",\"NBC\":\"Europe/Moscow\",\"NBE\":\"Africa/Tunis\",\"NBG\":\"America/Chicago\",\"NBH\":\"Australia/Sydney\",\"NBL\":\"America/Panama\",\"NBN\":\"Africa/Lagos\",\"NBO\":\"Africa/Nairobi\",\"NBP\":\"America/New_York\",\"NBR\":\"Australia/Brisbane\",\"NBS\":\"Asia/Shanghai\",\"NBV\":\"America/Sao_Paulo\",\"NBW\":\"America/Havana\",\"NBX\":\"Asia/Jayapura\",\"NCA\":\"America/Grand_Turk\",\"NCE\":\"Europe/Paris\",\"NCG\":\"America/Mexico_City\",\"NCH\":\"Africa/Dar_es_Salaam\",\"NCI\":\"America/Bogota\",\"NCJ\":\"America/Argentina/Cordoba\",\"NCL\":\"Europe/London\",\"NCN\":\"America/Anchorage\",\"NCO\":\"America/New_York\",\"NCP\":\"Asia/Manila\",\"NCQ\":\"America/New_York\",\"NCR\":\"America/Managua\",\"NCS\":\"Africa/Johannesburg\",\"NCT\":\"America/Costa_Rica\",\"NCU\":\"Asia/Tashkent\",\"NCY\":\"Europe/Paris\",\"NDA\":\"Asia/Jayapura\",\"NDB\":\"Africa/Nouakchott\",\"NDC\":\"Asia/Kolkata\",\"NDD\":\"Africa/Luanda\",\"NDE\":\"Africa/Nairobi\",\"NDF\":\"Africa/Luanda\",\"NDG\":\"Asia/Shanghai\",\"NDI\":\"Pacific/Port_Moresby\",\"NDJ\":\"Africa/Ndjamena\",\"NDK\":\"Pacific/Majuro\",\"NDL\":\"Africa/Bangui\",\"NDM\":\"Africa/Addis_Ababa\",\"NDN\":\"Pacific/Port_Moresby\",\"NDO\":\"Europe/Madrid\",\"NDR\":\"Africa/Casablanca\",\"NDS\":\"Australia/Perth\",\"NDU\":\"Africa/Windhoek\",\"NDV\":\"America/New_York\",\"NDY\":\"Europe/London\",\"NDZ\":\"Europe/Berlin\",\"NEA\":\"America/New_York\",\"NEC\":\"America/Argentina/Buenos_Aires\",\"NEF\":\"Asia/Yekaterinburg\",\"NEG\":\"America/Jamaica\",\"NEI\":\"Asia/Vladivostok\",\"NEJ\":\"Africa/Addis_Ababa\",\"NEK\":\"Africa/Addis_Ababa\",\"NEL\":\"America/New_York\",\"NEN\":\"America/New_York\",\"NER\":\"Asia/Yakutsk\",\"NES\":\"America/New_York\",\"NEU\":\"Asia/Vientiane\",\"NEV\":\"America/St_Kitts\",\"NEW\":\"America/Chicago\",\"NFB\":\"America/New_York\",\"NFG\":\"Asia/Yekaterinburg\",\"NFL\":\"America/Los_Angeles\",\"NFO\":\"Pacific/Tongatapu\",\"NFR\":\"Africa/Tripoli\",\"NGA\":\"Australia/Sydney\",\"NGB\":\"Asia/Shanghai\",\"NGC\":\"America/Phoenix\",\"NGD\":\"America/Tortola\",\"NGE\":\"Africa/Douala\",\"NGF\":\"Pacific/Honolulu\",\"NGI\":\"Pacific/Fiji\",\"NGK\":\"Asia/Magadan\",\"NGL\":\"Africa/Johannesburg\",\"NGM\":\"Pacific/Guam\",\"NGN\":\"America/Panama\",\"NGO\":\"Asia/Tokyo\",\"NGP\":\"America/Chicago\",\"NGQ\":\"Asia/Shanghai\",\"NGR\":\"Pacific/Port_Moresby\",\"NGS\":\"Asia/Tokyo\",\"NGU\":\"America/New_York\",\"NGW\":\"America/Chicago\",\"NGX\":\"Asia/Kathmandu\",\"NGZ\":\"America/Los_Angeles\",\"NHA\":\"Asia/Ho_Chi_Minh\",\"NHD\":\"Asia/Dubai\",\"NHF\":\"Africa/Khartoum\",\"NHK\":\"America/New_York\",\"NHS\":\"Asia/Karachi\",\"NHT\":\"Europe/London\",\"NHV\":\"Pacific/Marquesas\",\"NHX\":\"America/Chicago\",\"NHZ\":\"America/New_York\",\"NIA\":\"Africa/Monrovia\",\"NIB\":\"America/Anchorage\",\"NIE\":\"America/Anchorage\",\"NIF\":\"Australia/Perth\",\"NIG\":\"Pacific/Tarawa\",\"NIK\":\"Africa/Dakar\",\"NIM\":\"Africa/Niamey\",\"NIN\":\"America/Anchorage\",\"NIO\":\"Africa/Kinshasa\",\"NIP\":\"America/New_York\",\"NIQ\":\"America/Godthab\",\"NIR\":\"America/Chicago\",\"NIS\":\"Pacific/Port_Moresby\",\"NIT\":\"Europe/Paris\",\"NIU\":\"Pacific/Tahiti\",\"NIX\":\"Africa/Bamako\",\"NJA\":\"Asia/Tokyo\",\"NJC\":\"Asia/Yekaterinburg\",\"NJF\":\"Asia/Baghdad\",\"NJJ\":\"Asia/Shanghai\",\"NJK\":\"America/Los_Angeles\",\"NKA\":\"Africa/Libreville\",\"NKB\":\"Australia/Perth\",\"NKC\":\"Africa/Nouakchott\",\"NKD\":\"Asia/Jayapura\",\"NKG\":\"Asia/Shanghai\",\"NKI\":\"America/Anchorage\",\"NKL\":\"Africa/Lubumbashi\",\"NKM\":\"Asia/Tokyo\",\"NKN\":\"Pacific/Port_Moresby\",\"NKO\":\"Indian/Antananarivo\",\"NKS\":\"Africa/Douala\",\"NKT\":\"Europe/Istanbul\",\"NKU\":\"Africa/Maseru\",\"NKX\":\"America/Los_Angeles\",\"NKY\":\"Africa/Brazzaville\",\"NLA\":\"Africa/Lusaka\",\"NLC\":\"America/Los_Angeles\",\"NLD\":\"America/Matamoros\",\"NLE\":\"America/New_York\",\"NLF\":\"Australia/Brisbane\",\"NLG\":\"America/Anchorage\",\"NLH\":\"Asia/Shanghai\",\"NLI\":\"Asia/Vladivostok\",\"NLK\":\"Pacific/Norfolk\",\"NLL\":\"Australia/Perth\",\"NLO\":\"Africa/Kinshasa\",\"NLP\":\"Africa/Johannesburg\",\"NLS\":\"Australia/Perth\",\"NLT\":\"Asia/Shanghai\",\"NLU\":\"America/Mexico_City\",\"NLV\":\"Europe/Kiev\",\"NMA\":\"Asia/Tashkent\",\"NMB\":\"Asia/Kolkata\",\"NMC\":\"America/Nassau\",\"NME\":\"America/Anchorage\",\"NMF\":\"Indian/Maldives\",\"NMG\":\"America/Panama\",\"NMN\":\"Pacific/Port_Moresby\",\"NMP\":\"Australia/Brisbane\",\"NMR\":\"Australia/Brisbane\",\"NMS\":\"Asia/Yangon\",\"NMT\":\"Asia/Yangon\",\"NMU\":\"Pacific/Majuro\",\"NNA\":\"Africa/Casablanca\",\"NNB\":\"Pacific/Guadalcanal\",\"NND\":\"Africa/Maputo\",\"NNG\":\"Asia/Shanghai\",\"NNI\":\"Africa/Windhoek\",\"NNK\":\"America/Anchorage\",\"NNL\":\"America/Anchorage\",\"NNM\":\"Europe/Moscow\",\"NNR\":\"Europe/Dublin\",\"NNT\":\"Asia/Bangkok\",\"NNU\":\"America/Sao_Paulo\",\"NNX\":\"Asia/Makassar\",\"NNY\":\"Asia/Shanghai\",\"NOA\":\"Australia/Sydney\",\"NOB\":\"America/Costa_Rica\",\"NOC\":\"Europe/Dublin\",\"NOD\":\"Europe/Berlin\",\"NOE\":\"Europe/Berlin\",\"NOG\":\"America/Hermosillo\",\"NOH\":\"America/Chicago\",\"NOI\":\"Europe/Moscow\",\"NOJ\":\"Asia/Yekaterinburg\",\"NOK\":\"America/Campo_Grande\",\"NOL\":\"America/Anchorage\",\"NOM\":\"Pacific/Port_Moresby\",\"NON\":\"Pacific/Tarawa\",\"NOO\":\"Pacific/Port_Moresby\",\"NOP\":\"Europe/Istanbul\",\"NOR\":\"Atlantic/Reykjavik\",\"NOS\":\"Indian/Antananarivo\",\"NOT\":\"America/Los_Angeles\",\"NOU\":\"Pacific/Noumea\",\"NOV\":\"Africa/Luanda\",\"NOZ\":\"Asia/Novokuznetsk\",\"NPA\":\"America/Chicago\",\"NPE\":\"Pacific/Auckland\",\"NPG\":\"Pacific/Port_Moresby\",\"NPH\":\"America/Denver\",\"NPL\":\"Pacific/Auckland\",\"NPO\":\"Asia/Makassar\",\"NPP\":\"Australia/Darwin\",\"NPT\":\"America/New_York\",\"NPU\":\"America/Bogota\",\"NPY\":\"Africa/Dar_es_Salaam\",\"NQA\":\"America/Chicago\",\"NQI\":\"America/Chicago\",\"NQL\":\"America/Sao_Paulo\",\"NQN\":\"America/Argentina/Buenos_Aires\",\"NQT\":\"Europe/London\",\"NQU\":\"America/Bogota\",\"NQX\":\"America/New_York\",\"NQY\":\"Europe/London\",\"NRA\":\"Australia/Sydney\",\"NRB\":\"America/New_York\",\"NRC\":\"America/Los_Angeles\",\"NRD\":\"Europe/Berlin\",\"NRE\":\"Asia/Jayapura\",\"NRG\":\"Australia/Perth\",\"NRI\":\"America/Chicago\",\"NRK\":\"Europe/Stockholm\",\"NRL\":\"Europe/London\",\"NRM\":\"Africa/Bamako\",\"NRN\":\"Europe/Berlin\",\"NRR\":\"America/Puerto_Rico\",\"NRS\":\"America/Los_Angeles\",\"NRT\":\"Asia/Tokyo\",\"NRV\":\"Pacific/Guam\",\"NRY\":\"Australia/Darwin\",\"NSB\":\"America/Nassau\",\"NSE\":\"America/New_York\",\"NSF\":\"America/New_York\",\"NSH\":\"Asia/Tehran\",\"NSI\":\"Africa/Douala\",\"NSK\":\"Asia/Krasnoyarsk\",\"NSL\":\"America/Chicago\",\"NSM\":\"Australia/Perth\",\"NSN\":\"Pacific/Auckland\",\"NSO\":\"Australia/Sydney\",\"NSQ\":\"America/Godthab\",\"NST\":\"Asia/Bangkok\",\"NSV\":\"Australia/Brisbane\",\"NSX\":\"America/Tortola\",\"NSY\":\"Europe/Rome\",\"NTA\":\"Pacific/Fiji\",\"NTB\":\"Europe/Oslo\",\"NTD\":\"America/Los_Angeles\",\"NTE\":\"Europe/Paris\",\"NTG\":\"Asia/Shanghai\",\"NTI\":\"Asia/Jayapura\",\"NTJ\":\"America/Denver\",\"NTL\":\"Australia/Sydney\",\"NTM\":\"America/Belem\",\"NTN\":\"Australia/Brisbane\",\"NTO\":\"Atlantic/Cape_Verde\",\"NTQ\":\"Asia/Tokyo\",\"NTR\":\"America/Mexico_City\",\"NTT\":\"Pacific/Tongatapu\",\"NTU\":\"America/New_York\",\"NTX\":\"Asia/Jakarta\",\"NTY\":\"Africa/Johannesburg\",\"NUA\":\"Asia/Colombo\",\"NUB\":\"Australia/Darwin\",\"NUD\":\"Africa/Khartoum\",\"NUE\":\"Europe/Berlin\",\"NUF\":\"Asia/Colombo\",\"NUG\":\"Pacific/Port_Moresby\",\"NUH\":\"America/Bogota\",\"NUI\":\"America/Anchorage\",\"NUJ\":\"Asia/Tehran\",\"NUK\":\"Pacific/Tahiti\",\"NUL\":\"America/Anchorage\",\"NUM\":\"Asia/Riyadh\",\"NUN\":\"America/Chicago\",\"NUP\":\"America/Anchorage\",\"NUQ\":\"America/Los_Angeles\",\"NUR\":\"Australia/Adelaide\",\"NUS\":\"Pacific/Efate\",\"NUT\":\"Pacific/Port_Moresby\",\"NUU\":\"Africa/Nairobi\",\"NUW\":\"America/Los_Angeles\",\"NUX\":\"Asia/Yekaterinburg\",\"NVA\":\"America/Bogota\",\"NVD\":\"America/Chicago\",\"NVG\":\"America/Managua\",\"NVI\":\"Asia/Tashkent\",\"NVK\":\"Europe/Oslo\",\"NVP\":\"America/Porto_Velho\",\"NVR\":\"Europe/Moscow\",\"NVS\":\"Europe/Paris\",\"NVT\":\"America/Sao_Paulo\",\"NVY\":\"Asia/Kolkata\",\"NWA\":\"Indian/Comoro\",\"NWH\":\"America/New_York\",\"NWI\":\"Europe/London\",\"NWP\":\"America/St_Johns\",\"NWS\":\"America/New_York\",\"NWT\":\"Pacific/Port_Moresby\",\"NWU\":\"Atlantic/Bermuda\",\"NXX\":\"America/New_York\",\"NYA\":\"Asia/Yekaterinburg\",\"NYE\":\"Africa/Nairobi\",\"NYG\":\"America/New_York\",\"NYI\":\"Africa/Accra\",\"NYK\":\"Africa/Nairobi\",\"NYM\":\"Asia/Yekaterinburg\",\"NYN\":\"Australia/Sydney\",\"NYO\":\"Europe/Stockholm\",\"NYR\":\"Asia/Yakutsk\",\"NYS\":\"America/New_York\",\"NYT\":\"Asia/Yangon\",\"NYU\":\"Asia/Yangon\",\"NYW\":\"Asia/Yangon\",\"NZA\":\"Africa/Luanda\",\"NZC\":\"America/Lima\",\"NZE\":\"Africa/Conakry\",\"NZH\":\"Asia/Shanghai\",\"NZL\":\"Asia/Shanghai\",\"NZO\":\"Africa/Nairobi\",\"NZW\":\"America/New_York\",\"NZY\":\"America/Los_Angeles\",\"OAA\":\"Asia/Kabul\",\"OAG\":\"Australia/Sydney\",\"OAH\":\"Asia/Kabul\",\"OAI\":\"Asia/Kabul\",\"OAJ\":\"America/New_York\",\"OAK\":\"America/Los_Angeles\",\"OAL\":\"America/Porto_Velho\",\"OAM\":\"Pacific/Auckland\",\"OAN\":\"America/Tegucigalpa\",\"OAR\":\"America/Los_Angeles\",\"OAS\":\"Asia/Kabul\",\"OAX\":\"America/Mexico_City\",\"OAZ\":\"Asia/Kabul\",\"OBA\":\"Australia/Brisbane\",\"OBC\":\"Africa/Djibouti\",\"OBD\":\"Asia/Jayapura\",\"OBE\":\"America/New_York\",\"OBF\":\"Europe/Berlin\",\"OBI\":\"America/Porto_Velho\",\"OBK\":\"America/Chicago\",\"OBL\":\"Europe/Brussels\",\"OBM\":\"Pacific/Port_Moresby\",\"OBN\":\"Europe/London\",\"OBO\":\"Asia/Tokyo\",\"OBS\":\"Europe/Paris\",\"OBU\":\"America/Anchorage\",\"OBX\":\"Pacific/Port_Moresby\",\"OBY\":\"America/Scoresbysund\",\"OCA\":\"America/New_York\",\"OCC\":\"America/Guayaquil\",\"OCE\":\"America/New_York\",\"OCF\":\"America/New_York\",\"OCH\":\"America/Chicago\",\"OCI\":\"America/Anchorage\",\"OCJ\":\"America/Jamaica\",\"OCM\":\"Australia/Perth\",\"OCN\":\"America/Los_Angeles\",\"OCV\":\"America/Bogota\",\"OCW\":\"America/New_York\",\"ODA\":\"Africa/Bangui\",\"ODB\":\"Europe/Madrid\",\"ODD\":\"Australia/Adelaide\",\"ODE\":\"Europe/Copenhagen\",\"ODH\":\"Europe/London\",\"ODJ\":\"Africa/Bangui\",\"ODL\":\"Australia/Adelaide\",\"ODM\":\"America/New_York\",\"ODN\":\"Asia/Kuala_Lumpur\",\"ODO\":\"Asia/Irkutsk\",\"ODR\":\"Australia/Perth\",\"ODS\":\"Europe/Kiev\",\"ODW\":\"America/Los_Angeles\",\"ODY\":\"Asia/Vientiane\",\"OEA\":\"America/Indiana/Indianapolis\",\"OEC\":\"Asia/Jayapura\",\"OEL\":\"Europe/Moscow\",\"OEM\":\"America/Paramaribo\",\"OEO\":\"America/Chicago\",\"OER\":\"Europe/Stockholm\",\"OES\":\"America/Argentina/Buenos_Aires\",\"OFF\":\"America/Chicago\",\"OFI\":\"Africa/Abidjan\",\"OFJ\":\"Atlantic/Reykjavik\",\"OFK\":\"America/Chicago\",\"OFU\":\"Pacific/Pago_Pago\",\"OGA\":\"America/Denver\",\"OGB\":\"America/New_York\",\"OGD\":\"America/Denver\",\"OGE\":\"Pacific/Port_Moresby\",\"OGG\":\"Pacific/Honolulu\",\"OGL\":\"America/Guyana\",\"OGM\":\"America/Panama\",\"OGN\":\"Asia/Tokyo\",\"OGO\":\"Africa/Abidjan\",\"OGR\":\"Africa/Ndjamena\",\"OGS\":\"America/New_York\",\"OGU\":\"Europe/Istanbul\",\"OGX\":\"Africa/Algiers\",\"OGZ\":\"Europe/Moscow\",\"OHA\":\"Pacific/Auckland\",\"OHC\":\"America/Anchorage\",\"OHD\":\"Europe/Skopje\",\"OHE\":\"Asia/Shanghai\",\"OHH\":\"Asia/Magadan\",\"OHI\":\"Africa/Windhoek\",\"OHO\":\"Asia/Vladivostok\",\"OHP\":\"Europe/London\",\"OHR\":\"Europe/Berlin\",\"OHS\":\"Asia/Muscat\",\"OHT\":\"Asia/Karachi\",\"OIA\":\"America/Belem\",\"OIC\":\"America/New_York\",\"OIL\":\"America/New_York\",\"OIM\":\"Asia/Tokyo\",\"OIR\":\"Asia/Tokyo\",\"OIT\":\"Asia/Tokyo\",\"OJC\":\"America/Chicago\",\"OJU\":\"Asia/Makassar\",\"OKA\":\"Asia/Tokyo\",\"OKB\":\"Australia/Brisbane\",\"OKC\":\"America/Chicago\",\"OKD\":\"Asia/Tokyo\",\"OKE\":\"Asia/Tokyo\",\"OKF\":\"Africa/Windhoek\",\"OKG\":\"Africa/Brazzaville\",\"OKH\":\"Europe/London\",\"OKI\":\"Asia/Tokyo\",\"OKJ\":\"Asia/Tokyo\",\"OKK\":\"America/Indiana/Indianapolis\",\"OKL\":\"Asia/Jayapura\",\"OKM\":\"America/Chicago\",\"OKN\":\"Africa/Libreville\",\"OKO\":\"Asia/Tokyo\",\"OKP\":\"Pacific/Port_Moresby\",\"OKQ\":\"Asia/Jayapura\",\"OKR\":\"Australia/Brisbane\",\"OKS\":\"America/Chicago\",\"OKT\":\"Asia/Yekaterinburg\",\"OKU\":\"Africa/Windhoek\",\"OKV\":\"Pacific/Port_Moresby\",\"OKY\":\"Australia/Brisbane\",\"OLA\":\"Europe/Oslo\",\"OLB\":\"Europe/Rome\",\"OLC\":\"America/Porto_Velho\",\"OLD\":\"America/New_York\",\"OLE\":\"America/New_York\",\"OLF\":\"America/Denver\",\"OLG\":\"Africa/Nairobi\",\"OLH\":\"America/Anchorage\",\"OLI\":\"Atlantic/Reykjavik\",\"OLJ\":\"Pacific/Efate\",\"OLK\":\"America/Asuncion\",\"OLL\":\"Africa/Brazzaville\",\"OLM\":\"America/Los_Angeles\",\"OLO\":\"Europe/Prague\",\"OLP\":\"Australia/Adelaide\",\"OLQ\":\"Pacific/Port_Moresby\",\"OLR\":\"Asia/Kabul\",\"OLS\":\"America/Phoenix\",\"OLU\":\"America/Chicago\",\"OLV\":\"America/Chicago\",\"OLX\":\"Africa/Nairobi\",\"OLY\":\"America/Chicago\",\"OLZ\":\"Asia/Yakutsk\",\"OMA\":\"America/Chicago\",\"OMB\":\"Africa/Libreville\",\"OMC\":\"Asia/Manila\",\"OMD\":\"Africa/Windhoek\",\"OME\":\"America/Anchorage\",\"OMF\":\"Asia/Amman\",\"OMG\":\"Africa/Windhoek\",\"OMH\":\"Asia/Tehran\",\"OMI\":\"Asia/Tehran\",\"OMJ\":\"Asia/Tokyo\",\"OMK\":\"America/Los_Angeles\",\"OML\":\"Pacific/Port_Moresby\",\"OMM\":\"Asia/Muscat\",\"OMN\":\"Asia/Kolkata\",\"OMO\":\"Europe/Sarajevo\",\"OMR\":\"Europe/Bucharest\",\"OMS\":\"Asia/Omsk\",\"OMY\":\"Asia/Phnom_Penh\",\"ONA\":\"America/Chicago\",\"ONB\":\"Pacific/Port_Moresby\",\"OND\":\"Africa/Windhoek\",\"ONE\":\"Pacific/Guadalcanal\",\"ONG\":\"Australia/Brisbane\",\"ONH\":\"America/New_York\",\"ONI\":\"Asia/Jayapura\",\"ONJ\":\"Asia/Tokyo\",\"ONK\":\"Asia/Yakutsk\",\"ONL\":\"America/Chicago\",\"ONM\":\"America/Denver\",\"ONN\":\"America/Anchorage\",\"ONO\":\"America/Los_Angeles\",\"ONP\":\"America/Los_Angeles\",\"ONQ\":\"Europe/Istanbul\",\"ONR\":\"Australia/Brisbane\",\"ONS\":\"Australia/Perth\",\"ONT\":\"America/Los_Angeles\",\"ONU\":\"Pacific/Fiji\",\"ONX\":\"America/Panama\",\"ONY\":\"America/Chicago\",\"OOA\":\"America/Chicago\",\"OOK\":\"America/Anchorage\",\"OOL\":\"Australia/Brisbane\",\"OOM\":\"Australia/Sydney\",\"OOR\":\"Australia/Brisbane\",\"OOT\":\"Pacific/Tarawa\",\"OPA\":\"Atlantic/Reykjavik\",\"OPB\":\"Pacific/Port_Moresby\",\"OPF\":\"America/New_York\",\"OPI\":\"Australia/Darwin\",\"OPL\":\"America/Chicago\",\"OPO\":\"Europe/Lisbon\",\"OPS\":\"America/Campo_Grande\",\"OPU\":\"Pacific/Port_Moresby\",\"OPW\":\"Africa/Windhoek\",\"ORA\":\"America/Argentina/Buenos_Aires\",\"ORB\":\"Europe/Stockholm\",\"ORC\":\"America/Bogota\",\"ORD\":\"America/Chicago\",\"ORE\":\"Europe/Paris\",\"ORF\":\"America/New_York\",\"ORG\":\"America/Paramaribo\",\"ORH\":\"America/New_York\",\"ORI\":\"America/Anchorage\",\"ORJ\":\"America/Guyana\",\"ORK\":\"Europe/Dublin\",\"ORL\":\"America/New_York\",\"ORM\":\"Europe/London\",\"ORN\":\"Africa/Algiers\",\"ORO\":\"America/Tegucigalpa\",\"ORP\":\"Africa/Gaborone\",\"ORQ\":\"America/New_York\",\"ORR\":\"Australia/Adelaide\",\"ORS\":\"Australia/Brisbane\",\"ORT\":\"America/Anchorage\",\"ORU\":\"America/La_Paz\",\"ORV\":\"America/Anchorage\",\"ORW\":\"Asia/Karachi\",\"ORX\":\"America/Porto_Velho\",\"ORY\":\"Europe/Paris\",\"ORZ\":\"America/Belize\",\"OSB\":\"America/Chicago\",\"OSC\":\"America/New_York\",\"OSD\":\"Europe/Stockholm\",\"OSE\":\"Pacific/Port_Moresby\",\"OSF\":\"Europe/Moscow\",\"OSG\":\"Pacific/Port_Moresby\",\"OSH\":\"America/Chicago\",\"OSI\":\"Europe/Zagreb\",\"OSJ\":\"Africa/Nairobi\",\"OSK\":\"Europe/Stockholm\",\"OSL\":\"Europe/Oslo\",\"OSM\":\"Asia/Baghdad\",\"OSN\":\"Asia/Seoul\",\"OSO\":\"Australia/Brisbane\",\"OSP\":\"Europe/Warsaw\",\"OSR\":\"Europe/Prague\",\"OSS\":\"Asia/Bishkek\",\"OST\":\"Europe/Brussels\",\"OSU\":\"America/New_York\",\"OSW\":\"Asia/Yekaterinburg\",\"OSX\":\"America/Chicago\",\"OSY\":\"Europe/Oslo\",\"OSZ\":\"Europe/Warsaw\",\"OTA\":\"Africa/Addis_Ababa\",\"OTC\":\"Africa/Ndjamena\",\"OTD\":\"America/Panama\",\"OTG\":\"America/Chicago\",\"OTH\":\"America/Los_Angeles\",\"OTI\":\"Asia/Jayapura\",\"OTJ\":\"Africa/Windhoek\",\"OTK\":\"America/Los_Angeles\",\"OTL\":\"Africa/Nouakchott\",\"OTM\":\"America/Chicago\",\"OTN\":\"America/Indiana/Indianapolis\",\"OTO\":\"America/Denver\",\"OTP\":\"Europe/Bucharest\",\"OTR\":\"America/Costa_Rica\",\"OTS\":\"America/Los_Angeles\",\"OTT\":\"America/Campo_Grande\",\"OTU\":\"America/Bogota\",\"OTV\":\"Pacific/Guadalcanal\",\"OTY\":\"Pacific/Bougainville\",\"OTZ\":\"America/Anchorage\",\"OUA\":\"Africa/Ouagadougou\",\"OUD\":\"Africa/Casablanca\",\"OUE\":\"Africa/Brazzaville\",\"OUG\":\"Africa/Ouagadougou\",\"OUH\":\"Africa/Johannesburg\",\"OUK\":\"Europe/London\",\"OUL\":\"Europe/Helsinki\",\"OUM\":\"Africa/Ndjamena\",\"OUN\":\"America/Chicago\",\"OUR\":\"Africa/Douala\",\"OUS\":\"America/Sao_Paulo\",\"OUT\":\"Africa/Ndjamena\",\"OUU\":\"Africa/Libreville\",\"OUZ\":\"Africa/Nouakchott\",\"OVA\":\"Indian/Antananarivo\",\"OVB\":\"Asia/Novosibirsk\",\"OVD\":\"Europe/Madrid\",\"OVE\":\"America/Los_Angeles\",\"OVG\":\"Africa/Johannesburg\",\"OVL\":\"America/Santiago\",\"OVR\":\"America/Argentina/Buenos_Aires\",\"OVS\":\"Asia/Yekaterinburg\",\"OWA\":\"America/Chicago\",\"OWB\":\"America/Chicago\",\"OWD\":\"America/New_York\",\"OWE\":\"Africa/Libreville\",\"OWK\":\"America/New_York\",\"OXB\":\"Africa/Bissau\",\"OXC\":\"America/New_York\",\"OXD\":\"America/New_York\",\"OXF\":\"Europe/London\",\"OXO\":\"Australia/Brisbane\",\"OXR\":\"America/Los_Angeles\",\"OXY\":\"Australia/Brisbane\",\"OYA\":\"America/Argentina/Buenos_Aires\",\"OYE\":\"Africa/Libreville\",\"OYG\":\"Africa/Kampala\",\"OYK\":\"America/Belem\",\"OYL\":\"Africa/Nairobi\",\"OYN\":\"Australia/Sydney\",\"OYO\":\"America/Argentina/Buenos_Aires\",\"OYP\":\"America/Cayenne\",\"OYS\":\"America/Los_Angeles\",\"OZA\":\"America/Chicago\",\"OZC\":\"Asia/Manila\",\"OZG\":\"Africa/Casablanca\",\"OZH\":\"Europe/Kiev\",\"OZI\":\"Europe/Madrid\",\"OZP\":\"Europe/Madrid\",\"OZR\":\"America/Chicago\",\"OZU\":\"Europe/Madrid\",\"OZZ\":\"Africa/Casablanca\",\"PAA\":\"Asia/Yangon\",\"PAB\":\"Asia/Kolkata\",\"PAC\":\"America/Panama\",\"PAD\":\"Europe/Berlin\",\"PAE\":\"America/Los_Angeles\",\"PAF\":\"Africa/Kampala\",\"PAG\":\"Asia/Manila\",\"PAH\":\"America/Chicago\",\"PAI\":\"Asia/Phnom_Penh\",\"PAJ\":\"Asia/Karachi\",\"PAK\":\"Pacific/Honolulu\",\"PAL\":\"America/Bogota\",\"PAM\":\"America/Chicago\",\"PAN\":\"Asia/Bangkok\",\"PAO\":\"America/Los_Angeles\",\"PAP\":\"America/Port-au-Prince\",\"PAQ\":\"America/Anchorage\",\"PAR\":\"Europe/Paris\",\"PAS\":\"Europe/Athens\",\"PAT\":\"Asia/Kolkata\",\"PAU\":\"Asia/Yangon\",\"PAV\":\"America/Belem\",\"PAW\":\"Pacific/Port_Moresby\",\"PAX\":\"America/Port-au-Prince\",\"PAY\":\"Asia/Kuala_Lumpur\",\"PAZ\":\"America/Mexico_City\",\"PBA\":\"America/Anchorage\",\"PBB\":\"America/Campo_Grande\",\"PBC\":\"America/Mexico_City\",\"PBD\":\"Asia/Kolkata\",\"PBE\":\"America/Bogota\",\"PBF\":\"America/Chicago\",\"PBG\":\"America/New_York\",\"PBH\":\"Asia/Thimphu\",\"PBI\":\"America/New_York\",\"PBJ\":\"Pacific/Efate\",\"PBK\":\"America/Anchorage\",\"PBL\":\"America/Caracas\",\"PBM\":\"America/Paramaribo\",\"PBN\":\"Africa/Luanda\",\"PBO\":\"Australia/Perth\",\"PBP\":\"America/Costa_Rica\",\"PBQ\":\"America/Porto_Velho\",\"PBR\":\"America/Guatemala\",\"PBS\":\"Asia/Bangkok\",\"PBT\":\"America/Asuncion\",\"PBU\":\"Asia/Yangon\",\"PBV\":\"America/Campo_Grande\",\"PBX\":\"America/Campo_Grande\",\"PBY\":\"Australia/Brisbane\",\"PBZ\":\"Africa/Johannesburg\",\"PCA\":\"America/Anchorage\",\"PCB\":\"Asia/Jakarta\",\"PCC\":\"America/Bogota\",\"PCD\":\"America/Chicago\",\"PCE\":\"America/Anchorage\",\"PCG\":\"America/Guatemala\",\"PCH\":\"America/Tegucigalpa\",\"PCJ\":\"America/Asuncion\",\"PCK\":\"America/Anchorage\",\"PCL\":\"America/Lima\",\"PCM\":\"America/Mexico_City\",\"PCN\":\"Pacific/Auckland\",\"PCO\":\"America/Mazatlan\",\"PCP\":\"Africa/Sao_Tome\",\"PCQ\":\"Asia/Vientiane\",\"PCR\":\"America/Bogota\",\"PCS\":\"America/Belem\",\"PCT\":\"America/New_York\",\"PCU\":\"America/Chicago\",\"PCV\":\"America/Tijuana\",\"PDA\":\"America/Bogota\",\"PDB\":\"America/Anchorage\",\"PDC\":\"Pacific/Noumea\",\"PDD\":\"Africa/Maputo\",\"PDE\":\"Australia/Adelaide\",\"PDF\":\"America/Belem\",\"PDG\":\"Asia/Jakarta\",\"PDI\":\"Pacific/Port_Moresby\",\"PDK\":\"America/New_York\",\"PDL\":\"Atlantic/Azores\",\"PDM\":\"America/Panama\",\"PDN\":\"Australia/Adelaide\",\"PDO\":\"Asia/Jakarta\",\"PDP\":\"America/Montevideo\",\"PDR\":\"America/Belem\",\"PDS\":\"America/Matamoros\",\"PDT\":\"America/Los_Angeles\",\"PDU\":\"America/Montevideo\",\"PDV\":\"Europe/Sofia\",\"PDX\":\"America/Los_Angeles\",\"PDZ\":\"America/Caracas\",\"PEA\":\"Australia/Adelaide\",\"PEB\":\"Africa/Maputo\",\"PEC\":\"America/Anchorage\",\"PED\":\"Europe/Prague\",\"PEE\":\"Asia/Yekaterinburg\",\"PEF\":\"Europe/Berlin\",\"PEG\":\"Europe/Rome\",\"PEH\":\"America/Argentina/Buenos_Aires\",\"PEI\":\"America/Bogota\",\"PEK\":\"Asia/Shanghai\",\"PEL\":\"Africa/Maseru\",\"PEM\":\"America/Lima\",\"PEN\":\"Asia/Kuala_Lumpur\",\"PEP\":\"Australia/Darwin\",\"PEQ\":\"America/Chicago\",\"PER\":\"Australia/Perth\",\"PES\":\"Europe/Moscow\",\"PET\":\"America/Sao_Paulo\",\"PEU\":\"America/Tegucigalpa\",\"PEV\":\"Europe/Budapest\",\"PEW\":\"Asia/Karachi\",\"PEX\":\"Europe/Moscow\",\"PEY\":\"Australia/Adelaide\",\"PEZ\":\"Europe/Moscow\",\"PFA\":\"America/Anchorage\",\"PFB\":\"America/Sao_Paulo\",\"PFC\":\"America/Los_Angeles\",\"PFD\":\"America/Anchorage\",\"PFJ\":\"Atlantic/Reykjavik\",\"PFO\":\"Asia/Nicosia\",\"PFQ\":\"Asia/Tehran\",\"PFR\":\"Africa/Lubumbashi\",\"PGA\":\"America/Phoenix\",\"PGB\":\"Pacific/Port_Moresby\",\"PGC\":\"America/New_York\",\"PGD\":\"America/New_York\",\"PGE\":\"Pacific/Port_Moresby\",\"PGF\":\"Europe/Paris\",\"PGG\":\"America/Belem\",\"PGH\":\"Asia/Kolkata\",\"PGI\":\"Africa/Luanda\",\"PGK\":\"Asia/Jakarta\",\"PGL\":\"America/Chicago\",\"PGM\":\"America/Anchorage\",\"PGN\":\"Pacific/Port_Moresby\",\"PGO\":\"America/Denver\",\"PGP\":\"Africa/Sao_Tome\",\"PGQ\":\"Asia/Makassar\",\"PGR\":\"America/Chicago\",\"PGS\":\"America/Phoenix\",\"PGU\":\"Asia/Tehran\",\"PGV\":\"America/New_York\",\"PGX\":\"Europe/Paris\",\"PGZ\":\"America/Sao_Paulo\",\"PHA\":\"Asia/Ho_Chi_Minh\",\"PHB\":\"America/Belem\",\"PHC\":\"Africa/Lagos\",\"PHD\":\"America/New_York\",\"PHE\":\"Australia/Perth\",\"PHF\":\"America/New_York\",\"PHG\":\"Africa/Lagos\",\"PHH\":\"Asia/Ho_Chi_Minh\",\"PHI\":\"America/Belem\",\"PHJ\":\"Australia/Sydney\",\"PHK\":\"America/New_York\",\"PHL\":\"America/New_York\",\"PHM\":\"Europe/Berlin\",\"PHN\":\"America/New_York\",\"PHO\":\"America/Anchorage\",\"PHP\":\"America/Chicago\",\"PHQ\":\"Australia/Brisbane\",\"PHR\":\"Pacific/Fiji\",\"PHS\":\"Asia/Bangkok\",\"PHT\":\"America/Chicago\",\"PHU\":\"Asia/Ho_Chi_Minh\",\"PHW\":\"Africa/Johannesburg\",\"PHX\":\"America/Phoenix\",\"PHY\":\"Asia/Bangkok\",\"PHZ\":\"Asia/Bangkok\",\"PIA\":\"America/Chicago\",\"PIB\":\"America/Chicago\",\"PIC\":\"America/Grand_Turk\",\"PID\":\"America/Nassau\",\"PIE\":\"America/New_York\",\"PIF\":\"Asia/Taipei\",\"PIG\":\"America/Porto_Velho\",\"PIH\":\"America/Denver\",\"PIK\":\"Europe/London\",\"PIL\":\"America/Asuncion\",\"PIM\":\"America/New_York\",\"PIN\":\"America/Porto_Velho\",\"PIO\":\"America/Lima\",\"PIP\":\"America/Anchorage\",\"PIQ\":\"America/Guyana\",\"PIR\":\"America/Chicago\",\"PIS\":\"Europe/Paris\",\"PIT\":\"America/New_York\",\"PIU\":\"America/Lima\",\"PIV\":\"America/Sao_Paulo\",\"PIW\":\"America/Winnipeg\",\"PIX\":\"Atlantic/Azores\",\"PIZ\":\"America/Anchorage\",\"PJA\":\"Europe/Stockholm\",\"PJB\":\"America/Phoenix\",\"PJC\":\"America/Asuncion\",\"PJG\":\"Asia/Karachi\",\"PJM\":\"America/Costa_Rica\",\"PJS\":\"America/Anchorage\",\"PKA\":\"America/Anchorage\",\"PKB\":\"America/New_York\",\"PKC\":\"Asia/Kamchatka\",\"PKD\":\"America/Chicago\",\"PKE\":\"Australia/Sydney\",\"PKF\":\"America/Chicago\",\"PKG\":\"Asia/Kuala_Lumpur\",\"PKH\":\"Europe/Athens\",\"PKJ\":\"America/Guatemala\",\"PKK\":\"Asia/Yangon\",\"PKL\":\"Pacific/Auckland\",\"PKM\":\"America/Guyana\",\"PKN\":\"Asia/Jakarta\",\"PKO\":\"Africa/Porto-Novo\",\"PKP\":\"Pacific/Tahiti\",\"PKR\":\"Asia/Kathmandu\",\"PKS\":\"Asia/Vientiane\",\"PKT\":\"Australia/Darwin\",\"PKU\":\"Asia/Jakarta\",\"PKV\":\"Europe/Moscow\",\"PKW\":\"Africa/Gaborone\",\"PKX\":\"Asia/Shanghai\",\"PKY\":\"Asia/Jakarta\",\"PKZ\":\"Asia/Vientiane\",\"PLA\":\"America/Bogota\",\"PLB\":\"America/New_York\",\"PLC\":\"America/Bogota\",\"PLD\":\"America/Costa_Rica\",\"PLE\":\"Pacific/Port_Moresby\",\"PLF\":\"Africa/Ndjamena\",\"PLH\":\"Europe/London\",\"PLI\":\"America/St_Vincent\",\"PLJ\":\"America/Belize\",\"PLK\":\"America/Chicago\",\"PLL\":\"America/Porto_Velho\",\"PLM\":\"Asia/Jakarta\",\"PLN\":\"America/New_York\",\"PLO\":\"Australia/Adelaide\",\"PLP\":\"America/Panama\",\"PLQ\":\"Europe/Vilnius\",\"PLR\":\"America/Chicago\",\"PLS\":\"America/Grand_Turk\",\"PLT\":\"America/Bogota\",\"PLU\":\"America/Sao_Paulo\",\"PLV\":\"Europe/Kiev\",\"PLW\":\"Asia/Makassar\",\"PLX\":\"Asia/Almaty\",\"PLY\":\"America/Indiana/Indianapolis\",\"PLZ\":\"Africa/Johannesburg\",\"PMA\":\"Africa/Dar_es_Salaam\",\"PMB\":\"America/Chicago\",\"PMC\":\"America/Santiago\",\"PMD\":\"America/Los_Angeles\",\"PME\":\"Europe/London\",\"PMF\":\"Europe/Rome\",\"PMG\":\"America/Campo_Grande\",\"PMH\":\"America/New_York\",\"PMI\":\"Europe/Madrid\",\"PMK\":\"Australia/Brisbane\",\"PML\":\"America/Anchorage\",\"PMM\":\"Asia/Bangkok\",\"PMN\":\"Pacific/Port_Moresby\",\"PMO\":\"Europe/Rome\",\"PMP\":\"Pacific/Port_Moresby\",\"PMQ\":\"America/Argentina/Buenos_Aires\",\"PMR\":\"Pacific/Auckland\",\"PMS\":\"Asia/Damascus\",\"PMT\":\"America/Guyana\",\"PMU\":\"America/Anchorage\",\"PMV\":\"America/Caracas\",\"PMW\":\"America/Belem\",\"PMX\":\"America/New_York\",\"PMY\":\"America/Argentina/Buenos_Aires\",\"PMZ\":\"America/Costa_Rica\",\"PNA\":\"Europe/Madrid\",\"PNB\":\"America/Belem\",\"PNC\":\"America/Chicago\",\"PND\":\"America/Belize\",\"PNE\":\"America/New_York\",\"PNF\":\"America/Anchorage\",\"PNG\":\"America/Sao_Paulo\",\"PNH\":\"Asia/Phnom_Penh\",\"PNI\":\"Pacific/Pohnpei\",\"PNJ\":\"Asia/Shanghai\",\"PNK\":\"Asia/Jakarta\",\"PNL\":\"Europe/Rome\",\"PNN\":\"America/New_York\",\"PNO\":\"America/Mexico_City\",\"PNP\":\"Pacific/Port_Moresby\",\"PNQ\":\"Asia/Kolkata\",\"PNR\":\"Africa/Brazzaville\",\"PNS\":\"America/Chicago\",\"PNT\":\"America/Santiago\",\"PNU\":\"America/Denver\",\"PNV\":\"Europe/Vilnius\",\"PNX\":\"America/Chicago\",\"PNY\":\"Asia/Kolkata\",\"PNZ\":\"America/Belem\",\"POA\":\"America/Sao_Paulo\",\"POB\":\"America/New_York\",\"POC\":\"America/Los_Angeles\",\"POD\":\"Africa/Dakar\",\"POE\":\"America/Chicago\",\"POF\":\"America/Chicago\",\"POG\":\"Africa/Libreville\",\"POH\":\"America/Chicago\",\"POI\":\"America/La_Paz\",\"POJ\":\"America/Sao_Paulo\",\"POL\":\"Africa/Maputo\",\"POM\":\"Pacific/Port_Moresby\",\"PON\":\"America/Guatemala\",\"POO\":\"America/Sao_Paulo\",\"POP\":\"America/Santo_Domingo\",\"POR\":\"Europe/Helsinki\",\"POS\":\"America/Port_of_Spain\",\"POT\":\"America/Jamaica\",\"POU\":\"America/New_York\",\"POV\":\"Europe/Bratislava\",\"POW\":\"Europe/Ljubljana\",\"POX\":\"Europe/Paris\",\"POY\":\"America/Denver\",\"POZ\":\"Europe/Warsaw\",\"PPA\":\"America/Chicago\",\"PPB\":\"America/Sao_Paulo\",\"PPC\":\"America/Anchorage\",\"PPD\":\"America/Puerto_Rico\",\"PPE\":\"America/Hermosillo\",\"PPF\":\"America/Chicago\",\"PPG\":\"Pacific/Pago_Pago\",\"PPH\":\"America/Caracas\",\"PPI\":\"Australia/Adelaide\",\"PPJ\":\"Asia/Jakarta\",\"PPK\":\"Asia/Almaty\",\"PPL\":\"Asia/Kathmandu\",\"PPM\":\"America/New_York\",\"PPN\":\"America/Bogota\",\"PPO\":\"America/Nassau\",\"PPP\":\"Australia/Brisbane\",\"PPQ\":\"Pacific/Auckland\",\"PPR\":\"Asia/Jakarta\",\"PPS\":\"Asia/Manila\",\"PPT\":\"Pacific/Tahiti\",\"PPU\":\"Asia/Yangon\",\"PPV\":\"America/Anchorage\",\"PPW\":\"Europe/London\",\"PPX\":\"Pacific/Port_Moresby\",\"PPY\":\"America/Sao_Paulo\",\"PPZ\":\"America/Caracas\",\"PQC\":\"Asia/Ho_Chi_Minh\",\"PQI\":\"America/New_York\",\"PQM\":\"America/Mexico_City\",\"PQQ\":\"Australia/Sydney\",\"PQS\":\"America/Anchorage\",\"PQT\":\"America/Godthab\",\"PRA\":\"America/Argentina/Buenos_Aires\",\"PRB\":\"America/Los_Angeles\",\"PRC\":\"America/Phoenix\",\"PRD\":\"Australia/Perth\",\"PRE\":\"America/Bogota\",\"PRF\":\"America/Anchorage\",\"PRG\":\"Europe/Prague\",\"PRH\":\"Asia/Bangkok\",\"PRI\":\"Indian/Mahe\",\"PRJ\":\"Europe/Rome\",\"PRK\":\"Africa/Johannesburg\",\"PRL\":\"America/Anchorage\",\"PRM\":\"Europe/Lisbon\",\"PRN\":\"Europe/Belgrade\",\"PRO\":\"America/Chicago\",\"PRP\":\"Europe/Paris\",\"PRQ\":\"America/Argentina/Buenos_Aires\",\"PRR\":\"America/Guyana\",\"PRS\":\"Pacific/Guadalcanal\",\"PRU\":\"Asia/Yangon\",\"PRV\":\"Europe/Prague\",\"PRW\":\"America/Chicago\",\"PRX\":\"America/Chicago\",\"PRY\":\"Africa/Johannesburg\",\"PRZ\":\"America/Los_Angeles\",\"PSA\":\"Europe/Rome\",\"PSB\":\"America/New_York\",\"PSC\":\"America/Los_Angeles\",\"PSD\":\"Africa/Cairo\",\"PSE\":\"America/Puerto_Rico\",\"PSF\":\"America/New_York\",\"PSG\":\"America/Anchorage\",\"PSH\":\"Europe/Berlin\",\"PSI\":\"Asia/Karachi\",\"PSJ\":\"Asia/Makassar\",\"PSK\":\"America/New_York\",\"PSL\":\"Europe/London\",\"PSM\":\"America/New_York\",\"PSN\":\"America/Chicago\",\"PSO\":\"America/Bogota\",\"PSP\":\"America/Los_Angeles\",\"PSQ\":\"America/New_York\",\"PSR\":\"Europe/Rome\",\"PSS\":\"America/Argentina/Buenos_Aires\",\"PST\":\"America/Havana\",\"PSU\":\"Asia/Jakarta\",\"PSV\":\"Europe/London\",\"PSW\":\"America/Sao_Paulo\",\"PSX\":\"America/Chicago\",\"PSY\":\"Atlantic/Stanley\",\"PSZ\":\"America/La_Paz\",\"PTA\":\"America/Anchorage\",\"PTB\":\"America/New_York\",\"PTC\":\"America/Anchorage\",\"PTD\":\"America/Anchorage\",\"PTF\":\"Pacific/Fiji\",\"PTG\":\"Africa/Johannesburg\",\"PTH\":\"America/Anchorage\",\"PTI\":\"Australia/Brisbane\",\"PTJ\":\"Australia/Sydney\",\"PTK\":\"America/New_York\",\"PTL\":\"America/Anchorage\",\"PTM\":\"America/Caracas\",\"PTN\":\"America/Chicago\",\"PTO\":\"America/Sao_Paulo\",\"PTP\":\"America/Guadeloupe\",\"PTQ\":\"America/Belem\",\"PTR\":\"America/Anchorage\",\"PTS\":\"America/Chicago\",\"PTT\":\"America/Chicago\",\"PTU\":\"America/Anchorage\",\"PTV\":\"America/Los_Angeles\",\"PTW\":\"America/New_York\",\"PTX\":\"America/Bogota\",\"PTY\":\"America/Panama\",\"PTZ\":\"America/Guayaquil\",\"PUA\":\"Pacific/Port_Moresby\",\"PUB\":\"America/Denver\",\"PUC\":\"America/Denver\",\"PUD\":\"America/Argentina/Buenos_Aires\",\"PUE\":\"America/Panama\",\"PUF\":\"Europe/Paris\",\"PUG\":\"Australia/Adelaide\",\"PUH\":\"America/Mexico_City\",\"PUI\":\"Pacific/Port_Moresby\",\"PUJ\":\"America/Santo_Domingo\",\"PUK\":\"Pacific/Tahiti\",\"PUL\":\"America/Los_Angeles\",\"PUM\":\"Asia/Makassar\",\"PUN\":\"Africa/Lubumbashi\",\"PUO\":\"America/Anchorage\",\"PUP\":\"Africa/Ouagadougou\",\"PUQ\":\"America/Santiago\",\"PUR\":\"America/La_Paz\",\"PUS\":\"Asia/Seoul\",\"PUT\":\"Asia/Kolkata\",\"PUU\":\"America/Bogota\",\"PUV\":\"Pacific/Noumea\",\"PUW\":\"America/Los_Angeles\",\"PUX\":\"America/Santiago\",\"PUY\":\"Europe/Zagreb\",\"PUZ\":\"America/Managua\",\"PVA\":\"America/Bogota\",\"PVC\":\"America/New_York\",\"PVD\":\"America/New_York\",\"PVE\":\"America/Panama\",\"PVF\":\"America/Los_Angeles\",\"PVG\":\"Asia/Shanghai\",\"PVH\":\"America/Porto_Velho\",\"PVI\":\"America/Sao_Paulo\",\"PVK\":\"Europe/Athens\",\"PVL\":\"America/New_York\",\"PVN\":\"Europe/Sofia\",\"PVO\":\"America/Guayaquil\",\"PVR\":\"America/Mexico_City\",\"PVS\":\"Asia/Kamchatka\",\"PVU\":\"America/Denver\",\"PVW\":\"America/Chicago\",\"PVY\":\"America/Anchorage\",\"PVZ\":\"America/New_York\",\"PWA\":\"America/Chicago\",\"PWD\":\"America/Denver\",\"PWE\":\"Asia/Anadyr\",\"PWI\":\"Africa/Addis_Ababa\",\"PWK\":\"America/Chicago\",\"PWL\":\"Asia/Jakarta\",\"PWM\":\"America/New_York\",\"PWN\":\"America/Nassau\",\"PWO\":\"Africa/Lubumbashi\",\"PWQ\":\"Asia/Almaty\",\"PWR\":\"America/Anchorage\",\"PWT\":\"America/Los_Angeles\",\"PWY\":\"America/Denver\",\"PXA\":\"Asia/Jakarta\",\"PXH\":\"Australia/Adelaide\",\"PXL\":\"America/Phoenix\",\"PXM\":\"America/Mexico_City\",\"PXO\":\"Europe/Lisbon\",\"PXR\":\"Asia/Bangkok\",\"PXS\":\"Europe/Madrid\",\"PXU\":\"Asia/Ho_Chi_Minh\",\"PYA\":\"America/Bogota\",\"PYB\":\"Asia/Kolkata\",\"PYC\":\"America/Panama\",\"PYE\":\"Pacific/Rarotonga\",\"PYG\":\"Asia/Kolkata\",\"PYH\":\"America/Caracas\",\"PYJ\":\"Asia/Yakutsk\",\"PYL\":\"America/Anchorage\",\"PYM\":\"America/New_York\",\"PYN\":\"America/Bogota\",\"PYO\":\"America/Guayaquil\",\"PYR\":\"Europe/Athens\",\"PYS\":\"America/Los_Angeles\",\"PYV\":\"America/Panama\",\"PYX\":\"Asia/Bangkok\",\"PYY\":\"Asia/Bangkok\",\"PZA\":\"America/Bogota\",\"PZB\":\"Africa/Johannesburg\",\"PZE\":\"Europe/London\",\"PZH\":\"Asia/Karachi\",\"PZI\":\"Asia/Shanghai\",\"PZK\":\"Pacific/Rarotonga\",\"PZL\":\"Africa/Johannesburg\",\"PZO\":\"America/Caracas\",\"PZU\":\"Africa/Khartoum\",\"PZY\":\"Europe/Bratislava\",\"QAC\":\"America/Sao_Paulo\",\"QAK\":\"America/Sao_Paulo\",\"QBC\":\"America/Vancouver\",\"QBX\":\"America/Belem\",\"QCJ\":\"America/Sao_Paulo\",\"QCN\":\"America/Sao_Paulo\",\"QCP\":\"America/Belem\",\"QCR\":\"America/Sao_Paulo\",\"QCU\":\"America/Godthab\",\"QDB\":\"America/Campo_Grande\",\"QDC\":\"America/Sao_Paulo\",\"QDF\":\"America/Sao_Paulo\",\"QDP\":\"America/Campo_Grande\",\"QDV\":\"America/Sao_Paulo\",\"QET\":\"Asia/Seoul\",\"QFG\":\"America/Godthab\",\"QFI\":\"America/Godthab\",\"QFK\":\"Europe/Oslo\",\"QFN\":\"America/Godthab\",\"QFQ\":\"Europe/Oslo\",\"QFT\":\"America/Godthab\",\"QFX\":\"America/Godthab\",\"QGC\":\"America/Sao_Paulo\",\"QGF\":\"America/Sao_Paulo\",\"QGP\":\"America/Sao_Paulo\",\"QGQ\":\"America/Godthab\",\"QGU\":\"Asia/Tokyo\",\"QHB\":\"America/Sao_Paulo\",\"QHN\":\"America/Sao_Paulo\",\"QHV\":\"America/Sao_Paulo\",\"QID\":\"America/Sao_Paulo\",\"QIG\":\"America/Belem\",\"QIQ\":\"America/Sao_Paulo\",\"QIT\":\"America/Sao_Paulo\",\"QJE\":\"America/Godthab\",\"QJH\":\"America/Godthab\",\"QJI\":\"America/Godthab\",\"QLA\":\"Europe/London\",\"QLR\":\"Europe/Lisbon\",\"QLX\":\"Europe/Vienna\",\"QMF\":\"America/Sao_Paulo\",\"QMK\":\"America/Godthab\",\"QMM\":\"Europe/Rome\",\"QMQ\":\"Africa/Tripoli\",\"QMV\":\"America/New_York\",\"QNS\":\"America/Sao_Paulo\",\"QNV\":\"America/Sao_Paulo\",\"QOA\":\"America/Sao_Paulo\",\"QOQ\":\"America/Godthab\",\"QOW\":\"Africa/Lagos\",\"QPG\":\"Asia/Singapore\",\"QPK\":\"Europe/Berlin\",\"QPW\":\"America/Godthab\",\"QRA\":\"Africa/Johannesburg\",\"QRC\":\"Pacific/Easter\",\"QRE\":\"America/Campo_Grande\",\"QRF\":\"America/Argentina/Buenos_Aires\",\"QRH\":\"Europe/Amsterdam\",\"QRM\":\"Australia/Brisbane\",\"QRO\":\"America/Mexico_City\",\"QRR\":\"Australia/Brisbane\",\"QRW\":\"Africa/Lagos\",\"QRY\":\"America/Godthab\",\"QSC\":\"America/Sao_Paulo\",\"QSF\":\"Africa/Algiers\",\"QSM\":\"Europe/Berlin\",\"QSR\":\"Europe/Rome\",\"QSZ\":\"Asia/Shanghai\",\"QTL\":\"America/Sao_Paulo\",\"QUB\":\"Africa/Tripoli\",\"QUF\":\"Europe/Tallinn\",\"QUG\":\"Europe/London\",\"QUN\":\"Asia/Seoul\",\"QUO\":\"Africa/Lagos\",\"QUP\":\"America/Godthab\",\"QUT\":\"Asia/Tokyo\",\"QUV\":\"America/Godthab\",\"QUW\":\"America/Godthab\",\"QVP\":\"America/Sao_Paulo\",\"QWG\":\"America/New_York\",\"QXC\":\"America/Belem\",\"QXD\":\"America/Sao_Paulo\",\"QYI\":\"Europe/Amsterdam\",\"QZN\":\"Africa/Algiers\",\"RAA\":\"Pacific/Port_Moresby\",\"RAB\":\"Pacific/Port_Moresby\",\"RAC\":\"America/Chicago\",\"RAD\":\"America/Tortola\",\"RAE\":\"Asia/Riyadh\",\"RAF\":\"Africa/Cairo\",\"RAG\":\"Pacific/Auckland\",\"RAH\":\"Asia/Riyadh\",\"RAI\":\"Atlantic/Cape_Verde\",\"RAJ\":\"Asia/Kolkata\",\"RAK\":\"Africa/Casablanca\",\"RAL\":\"America/Los_Angeles\",\"RAM\":\"Australia/Darwin\",\"RAN\":\"Europe/Rome\",\"RAO\":\"America/Sao_Paulo\",\"RAP\":\"America/Denver\",\"RAQ\":\"Asia/Makassar\",\"RAR\":\"Pacific/Rarotonga\",\"RAS\":\"Asia/Tehran\",\"RAT\":\"Asia/Yekaterinburg\",\"RAU\":\"Asia/Dhaka\",\"RAV\":\"America/Bogota\",\"RAW\":\"Pacific/Bougainville\",\"RAX\":\"Pacific/Port_Moresby\",\"RAY\":\"Europe/London\",\"RAZ\":\"Asia/Karachi\",\"RBA\":\"Africa/Casablanca\",\"RBB\":\"America/Porto_Velho\",\"RBC\":\"Australia/Sydney\",\"RBD\":\"America/Chicago\",\"RBE\":\"Asia/Phnom_Penh\",\"RBF\":\"America/Los_Angeles\",\"RBG\":\"America/Los_Angeles\",\"RBH\":\"America/Anchorage\",\"RBI\":\"Pacific/Fiji\",\"RBJ\":\"Asia/Tokyo\",\"RBK\":\"America/Los_Angeles\",\"RBL\":\"America/Los_Angeles\",\"RBM\":\"Europe/Berlin\",\"RBN\":\"America/New_York\",\"RBO\":\"America/La_Paz\",\"RBP\":\"Pacific/Port_Moresby\",\"RBQ\":\"America/La_Paz\",\"RBR\":\"America/Rio_Branco\",\"RBS\":\"Australia/Sydney\",\"RBT\":\"Africa/Nairobi\",\"RBU\":\"Australia/Perth\",\"RBV\":\"Pacific/Guadalcanal\",\"RBW\":\"America/New_York\",\"RBX\":\"Africa/Juba\",\"RBY\":\"America/Anchorage\",\"RCA\":\"America/Denver\",\"RCB\":\"Africa/Johannesburg\",\"RCE\":\"America/Los_Angeles\",\"RCH\":\"America/Bogota\",\"RCK\":\"America/Chicago\",\"RCL\":\"Pacific/Efate\",\"RCM\":\"Australia/Brisbane\",\"RCN\":\"Australia/Adelaide\",\"RCO\":\"Europe/Paris\",\"RCP\":\"America/Anchorage\",\"RCQ\":\"America/Argentina/Buenos_Aires\",\"RCR\":\"America/Indiana/Indianapolis\",\"RCS\":\"Europe/London\",\"RCT\":\"America/New_York\",\"RCU\":\"America/Argentina/Buenos_Aires\",\"RCY\":\"America/Nassau\",\"RDA\":\"Australia/Darwin\",\"RDB\":\"America/Anchorage\",\"RDC\":\"America/Belem\",\"RDD\":\"America/Los_Angeles\",\"RDE\":\"Asia/Jayapura\",\"RDG\":\"America/New_York\",\"RDM\":\"America/Los_Angeles\",\"RDN\":\"Asia/Kuala_Lumpur\",\"RDO\":\"Europe/Warsaw\",\"RDP\":\"Asia/Kolkata\",\"RDR\":\"America/Chicago\",\"RDS\":\"America/Argentina/Buenos_Aires\",\"RDT\":\"Africa/Dakar\",\"RDU\":\"America/New_York\",\"RDV\":\"America/Anchorage\",\"RDZ\":\"Europe/Paris\",\"REA\":\"Pacific/Tahiti\",\"REB\":\"Europe/Berlin\",\"REC\":\"America/Belem\",\"RED\":\"America/New_York\",\"REE\":\"America/Chicago\",\"REG\":\"Europe/Rome\",\"REH\":\"America/New_York\",\"REI\":\"America/Cayenne\",\"REL\":\"America/Argentina/Buenos_Aires\",\"REN\":\"Asia/Yekaterinburg\",\"REO\":\"America/Los_Angeles\",\"REP\":\"Asia/Phnom_Penh\",\"RER\":\"America/Guatemala\",\"RES\":\"America/Argentina/Buenos_Aires\",\"RET\":\"Europe/Oslo\",\"REU\":\"Europe/Madrid\",\"REW\":\"Asia/Kolkata\",\"REX\":\"America/Matamoros\",\"REY\":\"America/La_Paz\",\"REZ\":\"America/Sao_Paulo\",\"RFA\":\"Africa/Bangui\",\"RFD\":\"America/Chicago\",\"RFG\":\"America/Chicago\",\"RFK\":\"America/Chicago\",\"RFN\":\"Atlantic/Reykjavik\",\"RFP\":\"Pacific/Tahiti\",\"RFR\":\"America/Costa_Rica\",\"RFS\":\"America/Managua\",\"RGA\":\"America/Argentina/Buenos_Aires\",\"RGE\":\"Pacific/Port_Moresby\",\"RGH\":\"Asia/Kolkata\",\"RGI\":\"Pacific/Tahiti\",\"RGK\":\"Asia/Krasnoyarsk\",\"RGL\":\"America/Argentina/Buenos_Aires\",\"RGN\":\"Asia/Yangon\",\"RGR\":\"America/Chicago\",\"RGS\":\"Europe/Madrid\",\"RGT\":\"Asia/Jakarta\",\"RHA\":\"Atlantic/Reykjavik\",\"RHD\":\"America/Argentina/Buenos_Aires\",\"RHE\":\"Europe/Paris\",\"RHG\":\"Africa/Kigali\",\"RHI\":\"America/Chicago\",\"RHL\":\"Australia/Perth\",\"RHN\":\"Africa/Windhoek\",\"RHO\":\"Europe/Athens\",\"RHP\":\"Asia/Kathmandu\",\"RHT\":\"Asia/Shanghai\",\"RHV\":\"America/Los_Angeles\",\"RIA\":\"America/Sao_Paulo\",\"RIB\":\"America/La_Paz\",\"RIC\":\"America/New_York\",\"RID\":\"America/Indiana/Indianapolis\",\"RIE\":\"America/Chicago\",\"RIF\":\"America/Denver\",\"RIG\":\"America/Sao_Paulo\",\"RIH\":\"America/Panama\",\"RIJ\":\"America/Lima\",\"RIL\":\"America/Denver\",\"RIM\":\"America/Lima\",\"RIN\":\"Pacific/Guadalcanal\",\"RIR\":\"America/Los_Angeles\",\"RIS\":\"Asia/Tokyo\",\"RIT\":\"America/Panama\",\"RIV\":\"America/Los_Angeles\",\"RIW\":\"America/Denver\",\"RIX\":\"Europe/Riga\",\"RIY\":\"Asia/Aden\",\"RIZ\":\"Asia/Shanghai\",\"RJA\":\"Asia/Kolkata\",\"RJB\":\"Asia/Kathmandu\",\"RJH\":\"Asia/Dhaka\",\"RJI\":\"Asia/Kolkata\",\"RJK\":\"Europe/Zagreb\",\"RJL\":\"Europe/Madrid\",\"RJM\":\"Asia/Jayapura\",\"RJN\":\"Asia/Tehran\",\"RKA\":\"Pacific/Tahiti\",\"RKC\":\"America/Los_Angeles\",\"RKD\":\"America/New_York\",\"RKE\":\"Europe/Copenhagen\",\"RKH\":\"America/New_York\",\"RKI\":\"Asia/Jakarta\",\"RKO\":\"Asia/Jakarta\",\"RKP\":\"America/Chicago\",\"RKR\":\"America/Chicago\",\"RKS\":\"America/Denver\",\"RKT\":\"Asia/Dubai\",\"RKU\":\"Pacific/Port_Moresby\",\"RKV\":\"Atlantic/Reykjavik\",\"RKW\":\"America/New_York\",\"RKY\":\"Australia/Brisbane\",\"RKZ\":\"Asia/Shanghai\",\"RLA\":\"America/Chicago\",\"RLD\":\"America/Los_Angeles\",\"RLG\":\"Europe/Berlin\",\"RLI\":\"America/Chicago\",\"RLK\":\"Asia/Shanghai\",\"RLO\":\"America/Argentina/Buenos_Aires\",\"RLP\":\"Australia/Brisbane\",\"RLR\":\"Indian/Antananarivo\",\"RLT\":\"Africa/Niamey\",\"RLU\":\"America/Anchorage\",\"RMA\":\"Australia/Brisbane\",\"RMB\":\"Asia/Muscat\",\"RMC\":\"America/Chicago\",\"RMD\":\"Asia/Kolkata\",\"RME\":\"America/New_York\",\"RMF\":\"Africa/Cairo\",\"RMG\":\"America/New_York\",\"RMI\":\"Europe/Rome\",\"RMK\":\"Australia/Adelaide\",\"RML\":\"Asia/Colombo\",\"RMN\":\"Pacific/Port_Moresby\",\"RMP\":\"America/Anchorage\",\"RMQ\":\"Asia/Taipei\",\"RMS\":\"Europe/Berlin\",\"RMT\":\"Pacific/Gambier\",\"RMU\":\"Europe/Madrid\",\"RMY\":\"America/Los_Angeles\",\"RNA\":\"Pacific/Guadalcanal\",\"RNB\":\"Europe/Stockholm\",\"RNC\":\"America/Chicago\",\"RND\":\"America/Chicago\",\"RNE\":\"Europe/Paris\",\"RNG\":\"America/Denver\",\"RNH\":\"America/Chicago\",\"RNI\":\"America/Managua\",\"RNJ\":\"Asia/Tokyo\",\"RNL\":\"Pacific/Guadalcanal\",\"RNM\":\"Asia/Muscat\",\"RNN\":\"Europe/Copenhagen\",\"RNO\":\"America/Los_Angeles\",\"RNP\":\"Pacific/Majuro\",\"RNR\":\"Pacific/Port_Moresby\",\"RNS\":\"Europe/Paris\",\"RNT\":\"America/Los_Angeles\",\"RNU\":\"Asia/Kuala_Lumpur\",\"RNZ\":\"America/Indiana/Indianapolis\",\"ROA\":\"America/New_York\",\"ROB\":\"Africa/Monrovia\",\"ROC\":\"America/New_York\",\"ROD\":\"Africa/Johannesburg\",\"ROF\":\"America/Los_Angeles\",\"ROG\":\"America/Chicago\",\"ROH\":\"Australia/Brisbane\",\"ROI\":\"Asia/Bangkok\",\"ROK\":\"Australia/Brisbane\",\"ROL\":\"America/Denver\",\"RON\":\"America/Bogota\",\"ROO\":\"America/Campo_Grande\",\"ROP\":\"Pacific/Saipan\",\"ROR\":\"Pacific/Palau\",\"ROS\":\"America/Argentina/Buenos_Aires\",\"ROT\":\"Pacific/Auckland\",\"ROU\":\"Europe/Sofia\",\"ROV\":\"Europe/Moscow\",\"ROW\":\"America/Denver\",\"ROX\":\"America/Chicago\",\"ROY\":\"America/Argentina/Buenos_Aires\",\"ROZ\":\"Europe/Madrid\",\"RPA\":\"Asia/Kathmandu\",\"RPB\":\"Australia/Darwin\",\"RPM\":\"Australia/Darwin\",\"RPN\":\"Asia/Jerusalem\",\"RPR\":\"Asia/Kolkata\",\"RPV\":\"Australia/Darwin\",\"RPX\":\"America/Denver\",\"RQA\":\"Asia/Shanghai\",\"RRA\":\"Europe/Madrid\",\"RRE\":\"Australia/Adelaide\",\"RRG\":\"Indian/Mauritius\",\"RRI\":\"Pacific/Guadalcanal\",\"RRJ\":\"America/Sao_Paulo\",\"RRK\":\"Asia/Kolkata\",\"RRL\":\"America/Chicago\",\"RRM\":\"Africa/Maputo\",\"RRN\":\"America/Belem\",\"RRO\":\"Europe/Rome\",\"RRR\":\"Pacific/Tahiti\",\"RRS\":\"Europe/Oslo\",\"RRT\":\"America/Chicago\",\"RRV\":\"Australia/Darwin\",\"RSA\":\"America/Argentina/Buenos_Aires\",\"RSB\":\"Australia/Brisbane\",\"RSD\":\"America/Nassau\",\"RSE\":\"Australia/Sydney\",\"RSG\":\"America/Belem\",\"RSH\":\"America/Anchorage\",\"RSI\":\"America/Panama\",\"RSJ\":\"America/Los_Angeles\",\"RSK\":\"Asia/Jayapura\",\"RSL\":\"America/Chicago\",\"RSN\":\"America/Chicago\",\"RSP\":\"America/Anchorage\",\"RSS\":\"Africa/Khartoum\",\"RST\":\"America/Chicago\",\"RSU\":\"Asia/Seoul\",\"RSW\":\"America/New_York\",\"RSX\":\"America/New_York\",\"RTA\":\"Pacific/Fiji\",\"RTB\":\"America/Tegucigalpa\",\"RTC\":\"Asia/Kolkata\",\"RTD\":\"America/New_York\",\"RTE\":\"America/Anchorage\",\"RTG\":\"Asia/Makassar\",\"RTI\":\"Asia/Makassar\",\"RTL\":\"America/Chicago\",\"RTM\":\"Europe/Amsterdam\",\"RTN\":\"America/Denver\",\"RTP\":\"Australia/Brisbane\",\"RTS\":\"Australia/Perth\",\"RTW\":\"Europe/Saratov\",\"RTY\":\"Australia/Adelaide\",\"RUA\":\"Africa/Kampala\",\"RUD\":\"Asia/Tehran\",\"RUF\":\"Asia/Jayapura\",\"RUG\":\"Asia/Shanghai\",\"RUH\":\"Asia/Riyadh\",\"RUI\":\"America/Denver\",\"RUK\":\"Asia/Kathmandu\",\"RUL\":\"Indian/Maldives\",\"RUM\":\"Asia/Kathmandu\",\"RUN\":\"Indian/Reunion\",\"RUP\":\"Asia/Kolkata\",\"RUR\":\"Pacific/Tahiti\",\"RUS\":\"Pacific/Guadalcanal\",\"RUT\":\"America/New_York\",\"RUU\":\"Pacific/Port_Moresby\",\"RUV\":\"America/Guatemala\",\"RUY\":\"America/Tegucigalpa\",\"RVA\":\"Indian/Antananarivo\",\"RVC\":\"Africa/Monrovia\",\"RVD\":\"America/Sao_Paulo\",\"RVE\":\"America/Bogota\",\"RVH\":\"Europe/Moscow\",\"RVI\":\"Europe/Moscow\",\"RVK\":\"Europe/Oslo\",\"RVN\":\"Europe/Helsinki\",\"RVO\":\"Africa/Johannesburg\",\"RVR\":\"America/Denver\",\"RVS\":\"America/Chicago\",\"RVT\":\"Australia/Perth\",\"RVV\":\"Pacific/Tahiti\",\"RVY\":\"America/Montevideo\",\"RWB\":\"America/Anchorage\",\"RWF\":\"America/Chicago\",\"RWI\":\"America/New_York\",\"RWL\":\"America/Denver\",\"RWN\":\"Europe/Kiev\",\"RWS\":\"America/Sao_Paulo\",\"RXA\":\"Asia/Aden\",\"RXE\":\"America/Denver\",\"RXS\":\"Asia/Manila\",\"RYB\":\"Europe/Moscow\",\"RYG\":\"Europe/Oslo\",\"RYK\":\"Asia/Karachi\",\"RYL\":\"Africa/Lusaka\",\"RYN\":\"Europe/Paris\",\"RYO\":\"America/Argentina/Buenos_Aires\",\"RZA\":\"America/Argentina/Buenos_Aires\",\"RZE\":\"Europe/Warsaw\",\"RZH\":\"Asia/Vladivostok\",\"RZN\":\"Europe/Moscow\",\"RZP\":\"Asia/Manila\",\"RZR\":\"Asia/Tehran\",\"RZS\":\"Asia/Karachi\",\"RZZ\":\"America/New_York\",\"SAA\":\"America/Denver\",\"SAB\":\"America/Curacao\",\"SAC\":\"America/Los_Angeles\",\"SAD\":\"America/Phoenix\",\"SAE\":\"America/Godthab\",\"SAF\":\"America/Denver\",\"SAG\":\"Asia/Kolkata\",\"SAH\":\"Asia/Aden\",\"SAI\":\"Europe/San_Marino\",\"SAK\":\"Atlantic/Reykjavik\",\"SAL\":\"America/El_Salvador\",\"SAM\":\"Pacific/Port_Moresby\",\"SAN\":\"America/Los_Angeles\",\"SAP\":\"America/Tegucigalpa\",\"SAQ\":\"America/Nassau\",\"SAR\":\"America/Chicago\",\"SAS\":\"America/Los_Angeles\",\"SAT\":\"America/Chicago\",\"SAU\":\"Asia/Makassar\",\"SAV\":\"America/New_York\",\"SAW\":\"Europe/Istanbul\",\"SAX\":\"America/Panama\",\"SAY\":\"Europe/Rome\",\"SAZ\":\"Africa/Monrovia\",\"SBA\":\"America/Los_Angeles\",\"SBB\":\"America/Caracas\",\"SBC\":\"Pacific/Port_Moresby\",\"SBD\":\"America/Los_Angeles\",\"SBE\":\"Pacific/Port_Moresby\",\"SBF\":\"Asia/Kabul\",\"SBG\":\"Asia/Jakarta\",\"SBH\":\"America/Guadeloupe\",\"SBI\":\"Africa/Conakry\",\"SBJ\":\"America/Sao_Paulo\",\"SBK\":\"Europe/Paris\",\"SBL\":\"America/La_Paz\",\"SBM\":\"America/Chicago\",\"SBN\":\"America/Indiana/Indianapolis\",\"SBO\":\"America/Denver\",\"SBP\":\"America/Los_Angeles\",\"SBQ\":\"Asia/Karachi\",\"SBR\":\"Australia/Brisbane\",\"SBS\":\"America/Denver\",\"SBT\":\"Asia/Yekaterinburg\",\"SBU\":\"Africa/Johannesburg\",\"SBV\":\"Pacific/Bougainville\",\"SBW\":\"Asia/Kuala_Lumpur\",\"SBX\":\"America/Denver\",\"SBY\":\"America/New_York\",\"SBZ\":\"Europe/Bucharest\",\"SCA\":\"America/Bogota\",\"SCB\":\"America/Chicago\",\"SCC\":\"America/Anchorage\",\"SCD\":\"America/Tegucigalpa\",\"SCE\":\"America/New_York\",\"SCF\":\"America/Phoenix\",\"SCG\":\"Australia/Brisbane\",\"SCH\":\"America/New_York\",\"SCI\":\"America/Caracas\",\"SCJ\":\"America/Anchorage\",\"SCK\":\"America/Los_Angeles\",\"SCL\":\"America/Santiago\",\"SCM\":\"America/Anchorage\",\"SCN\":\"Europe/Berlin\",\"SCO\":\"Asia/Aqtau\",\"SCP\":\"Europe/Paris\",\"SCQ\":\"Europe/Madrid\",\"SCR\":\"Europe/Stockholm\",\"SCS\":\"Europe/London\",\"SCT\":\"Asia/Aden\",\"SCU\":\"America/Havana\",\"SCV\":\"Europe/Bucharest\",\"SCW\":\"Europe/Moscow\",\"SCX\":\"America/Mexico_City\",\"SCY\":\"Pacific/Galapagos\",\"SCZ\":\"Pacific/Guadalcanal\",\"SDB\":\"Africa/Johannesburg\",\"SDC\":\"America/Guyana\",\"SDD\":\"Africa/Luanda\",\"SDE\":\"America/Argentina/Buenos_Aires\",\"SDF\":\"America/New_York\",\"SDG\":\"Asia/Tehran\",\"SDH\":\"America/Tegucigalpa\",\"SDI\":\"Pacific/Port_Moresby\",\"SDJ\":\"Asia/Tokyo\",\"SDK\":\"Asia/Kuala_Lumpur\",\"SDL\":\"Europe/Stockholm\",\"SDM\":\"America/Los_Angeles\",\"SDN\":\"Europe/Oslo\",\"SDO\":\"Asia/Tokyo\",\"SDP\":\"America/Anchorage\",\"SDQ\":\"America/Santo_Domingo\",\"SDR\":\"Europe/Madrid\",\"SDS\":\"Asia/Tokyo\",\"SDT\":\"Asia/Karachi\",\"SDU\":\"America/Sao_Paulo\",\"SDV\":\"Asia/Jerusalem\",\"SDW\":\"Asia/Dhaka\",\"SDX\":\"America/Phoenix\",\"SDY\":\"America/Denver\",\"SEA\":\"America/Los_Angeles\",\"SEB\":\"Africa/Tripoli\",\"SEC\":\"Europe/Paris\",\"SED\":\"Asia/Jerusalem\",\"SEE\":\"America/Los_Angeles\",\"SEF\":\"America/New_York\",\"SEG\":\"America/New_York\",\"SEH\":\"Asia/Jayapura\",\"SEK\":\"Asia/Magadan\",\"SEM\":\"America/Chicago\",\"SEN\":\"Europe/London\",\"SEO\":\"Africa/Abidjan\",\"SEP\":\"America/Chicago\",\"SEQ\":\"Asia/Jakarta\",\"SER\":\"America/Indiana/Indianapolis\",\"SES\":\"America/Chicago\",\"SET\":\"America/Belem\",\"SEU\":\"Africa/Dar_es_Salaam\",\"SEV\":\"Europe/Kiev\",\"SEW\":\"Africa/Cairo\",\"SEX\":\"Europe/Berlin\",\"SEY\":\"Africa/Nouakchott\",\"SEZ\":\"Indian/Mahe\",\"SFA\":\"Africa/Tunis\",\"SFB\":\"America/New_York\",\"SFC\":\"America/Guadeloupe\",\"SFD\":\"America/Caracas\",\"SFE\":\"Asia/Manila\",\"SFF\":\"America/Los_Angeles\",\"SFG\":\"America/Marigot\",\"SFH\":\"America/Tijuana\",\"SFI\":\"Africa/Casablanca\",\"SFJ\":\"America/Godthab\",\"SFK\":\"America/Belem\",\"SFL\":\"Atlantic/Cape_Verde\",\"SFM\":\"America/New_York\",\"SFN\":\"America/Argentina/Buenos_Aires\",\"SFO\":\"America/Los_Angeles\",\"SFP\":\"Australia/Brisbane\",\"SFR\":\"America/Los_Angeles\",\"SFS\":\"Asia/Manila\",\"SFT\":\"Europe/Stockholm\",\"SFU\":\"Pacific/Port_Moresby\",\"SFV\":\"America/Sao_Paulo\",\"SFW\":\"America/Panama\",\"SFX\":\"America/Caracas\",\"SFZ\":\"America/New_York\",\"SGA\":\"Asia/Kabul\",\"SGB\":\"Pacific/Port_Moresby\",\"SGC\":\"Asia/Yekaterinburg\",\"SGD\":\"Europe/Copenhagen\",\"SGE\":\"Europe/Berlin\",\"SGF\":\"America/Chicago\",\"SGG\":\"America/Godthab\",\"SGH\":\"America/New_York\",\"SGI\":\"Asia/Karachi\",\"SGJ\":\"Pacific/Port_Moresby\",\"SGK\":\"Pacific/Port_Moresby\",\"SGL\":\"Asia/Manila\",\"SGM\":\"America/Mazatlan\",\"SGN\":\"Asia/Ho_Chi_Minh\",\"SGO\":\"Australia/Brisbane\",\"SGP\":\"Australia/Perth\",\"SGQ\":\"Asia/Makassar\",\"SGR\":\"America/Chicago\",\"SGT\":\"America/Chicago\",\"SGU\":\"America/Denver\",\"SGV\":\"America/Argentina/Buenos_Aires\",\"SGW\":\"America/Anchorage\",\"SGX\":\"Africa/Dar_es_Salaam\",\"SGY\":\"America/Anchorage\",\"SGZ\":\"Asia/Bangkok\",\"SHA\":\"Asia/Shanghai\",\"SHB\":\"Asia/Tokyo\",\"SHC\":\"Africa/Addis_Ababa\",\"SHD\":\"America/New_York\",\"SHE\":\"Asia/Shanghai\",\"SHF\":\"Asia/Shanghai\",\"SHG\":\"America/Anchorage\",\"SHH\":\"America/Anchorage\",\"SHI\":\"Asia/Tokyo\",\"SHJ\":\"Asia/Dubai\",\"SHK\":\"Africa/Maseru\",\"SHL\":\"Asia/Kolkata\",\"SHM\":\"Asia/Tokyo\",\"SHN\":\"America/Los_Angeles\",\"SHO\":\"Africa/Mbabane\",\"SHP\":\"Asia/Shanghai\",\"SHQ\":\"Australia/Brisbane\",\"SHR\":\"America/Denver\",\"SHS\":\"Asia/Shanghai\",\"SHT\":\"Australia/Sydney\",\"SHU\":\"Australia/Darwin\",\"SHV\":\"America/Chicago\",\"SHW\":\"Asia/Riyadh\",\"SHX\":\"America/Anchorage\",\"SHY\":\"Africa/Dar_es_Salaam\",\"SHZ\":\"Africa/Maseru\",\"SIA\":\"Asia/Shanghai\",\"SIB\":\"Africa/Brazzaville\",\"SIC\":\"America/Panama\",\"SID\":\"Atlantic/Cape_Verde\",\"SIE\":\"Europe/Lisbon\",\"SIF\":\"Asia/Kathmandu\",\"SIG\":\"America/Puerto_Rico\",\"SIH\":\"Asia/Kathmandu\",\"SII\":\"Africa/Casablanca\",\"SIJ\":\"Atlantic/Reykjavik\",\"SIK\":\"America/Chicago\",\"SIL\":\"Pacific/Port_Moresby\",\"SIM\":\"Pacific/Port_Moresby\",\"SIN\":\"Asia/Singapore\",\"SIO\":\"Australia/Hobart\",\"SIP\":\"Europe/Simferopol\",\"SIQ\":\"Asia/Jakarta\",\"SIR\":\"Europe/Zurich\",\"SIS\":\"Africa/Johannesburg\",\"SIT\":\"America/Anchorage\",\"SIU\":\"America/Managua\",\"SIV\":\"America/Indiana/Indianapolis\",\"SIX\":\"Australia/Sydney\",\"SIY\":\"America/Los_Angeles\",\"SIZ\":\"Pacific/Port_Moresby\",\"SJA\":\"America/Lima\",\"SJB\":\"America/La_Paz\",\"SJC\":\"America/Los_Angeles\",\"SJD\":\"America/Mazatlan\",\"SJE\":\"America/Bogota\",\"SJF\":\"America/St_Thomas\",\"SJG\":\"America/Bogota\",\"SJH\":\"America/Bogota\",\"SJI\":\"Asia/Manila\",\"SJJ\":\"Europe/Sarajevo\",\"SJK\":\"America/Sao_Paulo\",\"SJL\":\"America/Porto_Velho\",\"SJM\":\"America/Santo_Domingo\",\"SJN\":\"America/Phoenix\",\"SJO\":\"America/Costa_Rica\",\"SJP\":\"America/Sao_Paulo\",\"SJQ\":\"Africa/Lusaka\",\"SJR\":\"America/Bogota\",\"SJS\":\"America/La_Paz\",\"SJT\":\"America/Chicago\",\"SJU\":\"America/Puerto_Rico\",\"SJV\":\"America/La_Paz\",\"SJW\":\"Asia/Shanghai\",\"SJX\":\"America/Belize\",\"SJY\":\"Europe/Helsinki\",\"SJZ\":\"Atlantic/Azores\",\"SKA\":\"America/Los_Angeles\",\"SKB\":\"America/St_Kitts\",\"SKC\":\"Pacific/Port_Moresby\",\"SKD\":\"Asia/Tashkent\",\"SKE\":\"Europe/Oslo\",\"SKF\":\"America/Chicago\",\"SKG\":\"Europe/Athens\",\"SKH\":\"Asia/Kathmandu\",\"SKI\":\"Africa/Algiers\",\"SKJ\":\"America/Anchorage\",\"SKK\":\"America/Anchorage\",\"SKL\":\"Europe/London\",\"SKM\":\"America/Guyana\",\"SKN\":\"Europe/Oslo\",\"SKO\":\"Africa/Lagos\",\"SKP\":\"Europe/Skopje\",\"SKQ\":\"Africa/Maseru\",\"SKR\":\"Africa/Addis_Ababa\",\"SKS\":\"Europe/Copenhagen\",\"SKT\":\"Asia/Karachi\",\"SKU\":\"Europe/Athens\",\"SKV\":\"Africa/Cairo\",\"SKW\":\"America/Anchorage\",\"SKX\":\"Europe/Moscow\",\"SKY\":\"America/New_York\",\"SKZ\":\"Asia/Karachi\",\"SLA\":\"America/Argentina/Buenos_Aires\",\"SLB\":\"America/Chicago\",\"SLC\":\"America/Denver\",\"SLD\":\"Europe/Bratislava\",\"SLE\":\"America/Los_Angeles\",\"SLF\":\"Asia/Riyadh\",\"SLG\":\"America/Chicago\",\"SLH\":\"Pacific/Efate\",\"SLI\":\"Africa/Lusaka\",\"SLJ\":\"Australia/Perth\",\"SLK\":\"America/New_York\",\"SLL\":\"Asia/Muscat\",\"SLM\":\"Europe/Madrid\",\"SLN\":\"America/Chicago\",\"SLO\":\"America/Chicago\",\"SLP\":\"America/Mexico_City\",\"SLQ\":\"America/Anchorage\",\"SLR\":\"America/Chicago\",\"SLS\":\"Europe/Sofia\",\"SLT\":\"America/Denver\",\"SLU\":\"America/St_Lucia\",\"SLV\":\"Asia/Kolkata\",\"SLW\":\"America/Mexico_City\",\"SLX\":\"America/Grand_Turk\",\"SLY\":\"Asia/Yekaterinburg\",\"SLZ\":\"America/Belem\",\"SMA\":\"Atlantic/Azores\",\"SMB\":\"America/Santiago\",\"SMC\":\"America/Bogota\",\"SMD\":\"America/Indiana/Indianapolis\",\"SME\":\"America/New_York\",\"SMF\":\"America/Los_Angeles\",\"SMG\":\"America/Lima\",\"SMH\":\"Pacific/Port_Moresby\",\"SMI\":\"Europe/Athens\",\"SMJ\":\"Pacific/Port_Moresby\",\"SMK\":\"America/Anchorage\",\"SML\":\"America/Nassau\",\"SMM\":\"Asia/Kuala_Lumpur\",\"SMN\":\"America/Denver\",\"SMO\":\"America/Los_Angeles\",\"SMP\":\"Pacific/Port_Moresby\",\"SMQ\":\"Asia/Jakarta\",\"SMR\":\"America/Bogota\",\"SMS\":\"Indian/Antananarivo\",\"SMT\":\"America/Campo_Grande\",\"SMU\":\"America/Anchorage\",\"SMV\":\"Europe/Zurich\",\"SMW\":\"Africa/Casablanca\",\"SMX\":\"America/Los_Angeles\",\"SMY\":\"Africa/Dakar\",\"SMZ\":\"America/Paramaribo\",\"SNA\":\"America/Los_Angeles\",\"SNB\":\"Australia/Darwin\",\"SNC\":\"America/Guayaquil\",\"SND\":\"Asia/Vientiane\",\"SNE\":\"Atlantic/Cape_Verde\",\"SNF\":\"America/Caracas\",\"SNG\":\"America/La_Paz\",\"SNH\":\"Australia/Brisbane\",\"SNI\":\"Africa/Monrovia\",\"SNJ\":\"America/Havana\",\"SNK\":\"America/Chicago\",\"SNL\":\"America/Chicago\",\"SNM\":\"America/La_Paz\",\"SNN\":\"Europe/Dublin\",\"SNO\":\"Asia/Bangkok\",\"SNP\":\"America/Anchorage\",\"SNQ\":\"America/Tijuana\",\"SNR\":\"Europe/Paris\",\"SNS\":\"America/Los_Angeles\",\"SNT\":\"America/Bogota\",\"SNU\":\"America/Havana\",\"SNV\":\"America/Caracas\",\"SNW\":\"Asia/Yangon\",\"SNX\":\"Asia/Tehran\",\"SNY\":\"America/Denver\",\"SNZ\":\"America/Belem\",\"SOA\":\"Asia/Ho_Chi_Minh\",\"SOB\":\"Europe/Budapest\",\"SOC\":\"Asia/Jakarta\",\"SOD\":\"America/Sao_Paulo\",\"SOE\":\"Africa/Brazzaville\",\"SOF\":\"Europe/Sofia\",\"SOG\":\"Europe/Oslo\",\"SOH\":\"America/Bogota\",\"SOI\":\"Australia/Brisbane\",\"SOJ\":\"Europe/Oslo\",\"SOK\":\"Africa/Maseru\",\"SOL\":\"America/Anchorage\",\"SOM\":\"America/Caracas\",\"SON\":\"Pacific/Efate\",\"SOO\":\"Europe/Stockholm\",\"SOP\":\"America/New_York\",\"SOQ\":\"Asia/Jayapura\",\"SOR\":\"Asia/Damascus\",\"SOT\":\"Europe/Helsinki\",\"SOU\":\"Europe/London\",\"SOV\":\"America/Anchorage\",\"SOW\":\"America/Phoenix\",\"SOX\":\"America/Bogota\",\"SOY\":\"Europe/London\",\"SOZ\":\"Europe/Paris\",\"SPA\":\"America/New_York\",\"SPB\":\"America/St_Thomas\",\"SPC\":\"Atlantic/Canary\",\"SPD\":\"Asia/Dhaka\",\"SPE\":\"Asia/Kuala_Lumpur\",\"SPF\":\"America/Denver\",\"SPG\":\"America/New_York\",\"SPH\":\"Pacific/Port_Moresby\",\"SPI\":\"America/Chicago\",\"SPJ\":\"Europe/Athens\",\"SPM\":\"Europe/Berlin\",\"SPN\":\"Pacific/Saipan\",\"SPO\":\"Europe/Madrid\",\"SPP\":\"Africa/Luanda\",\"SPQ\":\"America/Los_Angeles\",\"SPR\":\"America/Belize\",\"SPS\":\"America/Chicago\",\"SPT\":\"Asia/Kuala_Lumpur\",\"SPU\":\"Europe/Zagreb\",\"SPV\":\"Pacific/Port_Moresby\",\"SPW\":\"America/Chicago\",\"SPX\":\"Africa/Cairo\",\"SPY\":\"Africa/Abidjan\",\"SPZ\":\"America/Chicago\",\"SQA\":\"America/Los_Angeles\",\"SQB\":\"America/Bogota\",\"SQC\":\"Australia/Perth\",\"SQD\":\"Asia/Shanghai\",\"SQE\":\"America/Bogota\",\"SQF\":\"America/Bogota\",\"SQG\":\"Asia/Jakarta\",\"SQH\":\"Asia/Ho_Chi_Minh\",\"SQI\":\"America/Chicago\",\"SQJ\":\"Asia/Shanghai\",\"SQK\":\"Africa/Cairo\",\"SQL\":\"America/Los_Angeles\",\"SQM\":\"America/Sao_Paulo\",\"SQN\":\"Asia/Jayapura\",\"SQO\":\"Europe/Stockholm\",\"SQP\":\"Australia/Brisbane\",\"SQQ\":\"Europe/Vilnius\",\"SQR\":\"Asia/Jayapura\",\"SQS\":\"America/Belize\",\"SQT\":\"Pacific/Port_Moresby\",\"SQU\":\"America/Lima\",\"SQV\":\"America/Los_Angeles\",\"SQW\":\"Europe/Copenhagen\",\"SQX\":\"America/Sao_Paulo\",\"SQY\":\"America/Sao_Paulo\",\"SQZ\":\"Europe/London\",\"SRA\":\"America/Sao_Paulo\",\"SRB\":\"America/La_Paz\",\"SRC\":\"America/Chicago\",\"SRD\":\"America/La_Paz\",\"SRE\":\"America/La_Paz\",\"SRF\":\"America/Los_Angeles\",\"SRG\":\"Asia/Jakarta\",\"SRH\":\"Africa/Ndjamena\",\"SRI\":\"Asia/Makassar\",\"SRJ\":\"America/La_Paz\",\"SRK\":\"America/Thule\",\"SRL\":\"America/Mazatlan\",\"SRM\":\"Australia/Brisbane\",\"SRN\":\"Australia/Hobart\",\"SRO\":\"America/Bogota\",\"SRP\":\"Europe/Oslo\",\"SRQ\":\"America/New_York\",\"SRS\":\"America/Bogota\",\"SRT\":\"Africa/Kampala\",\"SRU\":\"America/Los_Angeles\",\"SRV\":\"America/Anchorage\",\"SRW\":\"America/New_York\",\"SRX\":\"Africa/Tripoli\",\"SRY\":\"Asia/Tehran\",\"SRZ\":\"America/La_Paz\",\"SSA\":\"America/Belem\",\"SSB\":\"America/St_Thomas\",\"SSC\":\"America/New_York\",\"SSD\":\"America/Bogota\",\"SSE\":\"Asia/Kolkata\",\"SSF\":\"America/Chicago\",\"SSG\":\"Africa/Malabo\",\"SSH\":\"Africa/Cairo\",\"SSI\":\"America/New_York\",\"SSJ\":\"Europe/Oslo\",\"SSK\":\"Australia/Perth\",\"SSL\":\"America/Bogota\",\"SSM\":\"America/New_York\",\"SSN\":\"Asia/Seoul\",\"SSO\":\"America/Sao_Paulo\",\"SSP\":\"Australia/Brisbane\",\"SSQ\":\"America/Toronto\",\"SSR\":\"Pacific/Efate\",\"SSS\":\"Pacific/Port_Moresby\",\"SST\":\"America/Argentina/Buenos_Aires\",\"SSU\":\"America/New_York\",\"SSV\":\"Asia/Manila\",\"SSW\":\"America/Los_Angeles\",\"SSX\":\"Africa/Johannesburg\",\"SSY\":\"Africa/Luanda\",\"SSZ\":\"America/Sao_Paulo\",\"STA\":\"Europe/Copenhagen\",\"STB\":\"America/Caracas\",\"STC\":\"America/Chicago\",\"STD\":\"America/Caracas\",\"STE\":\"America/Chicago\",\"STF\":\"Australia/Brisbane\",\"STG\":\"America/Anchorage\",\"STH\":\"Australia/Brisbane\",\"STI\":\"America/Santo_Domingo\",\"STJ\":\"America/Chicago\",\"STK\":\"America/Denver\",\"STL\":\"America/Chicago\",\"STM\":\"America/Belem\",\"STN\":\"Europe/London\",\"STP\":\"America/Chicago\",\"STQ\":\"America/New_York\",\"STR\":\"Europe/Berlin\",\"STS\":\"America/Los_Angeles\",\"STT\":\"America/St_Thomas\",\"STV\":\"Asia/Kolkata\",\"STW\":\"Europe/Moscow\",\"STX\":\"America/St_Thomas\",\"STY\":\"America/Montevideo\",\"STZ\":\"America/Campo_Grande\",\"SUA\":\"America/New_York\",\"SUB\":\"Asia/Jakarta\",\"SUC\":\"America/Denver\",\"SUD\":\"America/Chicago\",\"SUE\":\"America/Chicago\",\"SUF\":\"Europe/Rome\",\"SUG\":\"Asia/Manila\",\"SUH\":\"Asia/Muscat\",\"SUI\":\"Asia/Tbilisi\",\"SUJ\":\"Europe/Bucharest\",\"SUK\":\"Asia/Vladivostok\",\"SUL\":\"Asia/Karachi\",\"SUM\":\"America/New_York\",\"SUN\":\"America/Denver\",\"SUO\":\"America/Los_Angeles\",\"SUP\":\"Asia/Jakarta\",\"SUQ\":\"America/Guayaquil\",\"SUR\":\"America/Toronto\",\"SUS\":\"America/Chicago\",\"SUT\":\"Africa/Dar_es_Salaam\",\"SUU\":\"America/Los_Angeles\",\"SUV\":\"Pacific/Fiji\",\"SUW\":\"America/Chicago\",\"SUX\":\"America/Chicago\",\"SUY\":\"Asia/Yakutsk\",\"SUZ\":\"Pacific/Port_Moresby\",\"SVA\":\"America/Anchorage\",\"SVB\":\"Indian/Antananarivo\",\"SVC\":\"America/Denver\",\"SVD\":\"America/St_Vincent\",\"SVE\":\"America/Los_Angeles\",\"SVF\":\"Africa/Porto-Novo\",\"SVG\":\"Europe/Oslo\",\"SVH\":\"America/New_York\",\"SVI\":\"America/Bogota\",\"SVJ\":\"Europe/Oslo\",\"SVK\":\"America/Belize\",\"SVL\":\"Europe/Helsinki\",\"SVM\":\"Australia/Brisbane\",\"SVN\":\"America/New_York\",\"SVO\":\"Europe/Moscow\",\"SVP\":\"Africa/Luanda\",\"SVQ\":\"Europe/Madrid\",\"SVR\":\"America/Thule\",\"SVS\":\"America/Anchorage\",\"SVT\":\"Africa/Gaborone\",\"SVU\":\"Pacific/Fiji\",\"SVV\":\"America/Caracas\",\"SVW\":\"America/Anchorage\",\"SVX\":\"Asia/Yekaterinburg\",\"SVY\":\"Pacific/Guadalcanal\",\"SVZ\":\"America/Caracas\",\"SWA\":\"Asia/Shanghai\",\"SWB\":\"Australia/Perth\",\"SWC\":\"Australia/Sydney\",\"SWD\":\"America/Anchorage\",\"SWE\":\"Pacific/Port_Moresby\",\"SWF\":\"America/New_York\",\"SWG\":\"Pacific/Port_Moresby\",\"SWH\":\"Australia/Sydney\",\"SWI\":\"Europe/London\",\"SWJ\":\"Pacific/Efate\",\"SWL\":\"Asia/Manila\",\"SWM\":\"America/Campo_Grande\",\"SWN\":\"Asia/Karachi\",\"SWO\":\"America/Chicago\",\"SWP\":\"Africa/Windhoek\",\"SWQ\":\"Asia/Makassar\",\"SWR\":\"Pacific/Port_Moresby\",\"SWS\":\"Europe/London\",\"SWT\":\"Asia/Omsk\",\"SWU\":\"Asia/Seoul\",\"SWV\":\"Asia/Magadan\",\"SWW\":\"America/Chicago\",\"SWX\":\"Africa/Gaborone\",\"SWY\":\"Asia/Kuala_Lumpur\",\"SWZ\":\"Australia/Sydney\",\"SXA\":\"Pacific/Port_Moresby\",\"SXB\":\"Europe/Paris\",\"SXD\":\"Europe/Paris\",\"SXE\":\"Australia/Sydney\",\"SXF\":\"Europe/Berlin\",\"SXG\":\"Africa/Lusaka\",\"SXH\":\"Pacific/Port_Moresby\",\"SXI\":\"Asia/Tehran\",\"SXJ\":\"Asia/Shanghai\",\"SXK\":\"Asia/Jayapura\",\"SXL\":\"Europe/Dublin\",\"SXM\":\"America/Curacao\",\"SXN\":\"Africa/Gaborone\",\"SXO\":\"America/Campo_Grande\",\"SXP\":\"America/Anchorage\",\"SXQ\":\"America/Anchorage\",\"SXR\":\"Asia/Kolkata\",\"SXS\":\"Asia/Kuala_Lumpur\",\"SXT\":\"Asia/Kuala_Lumpur\",\"SXU\":\"Africa/Addis_Ababa\",\"SXV\":\"Asia/Kolkata\",\"SXW\":\"Pacific/Port_Moresby\",\"SXX\":\"America/Belem\",\"SXY\":\"America/New_York\",\"SXZ\":\"Europe/Istanbul\",\"SYA\":\"America/Adak\",\"SYB\":\"America/Anchorage\",\"SYC\":\"America/Lima\",\"SYD\":\"Australia/Sydney\",\"SYE\":\"Asia/Aden\",\"SYF\":\"America/Vancouver\",\"SYG\":\"Europe/Oslo\",\"SYI\":\"America/Chicago\",\"SYJ\":\"Asia/Tehran\",\"SYK\":\"Atlantic/Reykjavik\",\"SYL\":\"America/Los_Angeles\",\"SYM\":\"Asia/Shanghai\",\"SYN\":\"America/Chicago\",\"SYO\":\"Asia/Tokyo\",\"SYP\":\"America/Panama\",\"SYQ\":\"America/Costa_Rica\",\"SYR\":\"America/New_York\",\"SYS\":\"Asia/Yakutsk\",\"SYT\":\"Europe/Paris\",\"SYU\":\"Australia/Brisbane\",\"SYV\":\"America/New_York\",\"SYW\":\"Asia/Karachi\",\"SYX\":\"Asia/Shanghai\",\"SYY\":\"Europe/London\",\"SYZ\":\"Asia/Tehran\",\"SZA\":\"Africa/Luanda\",\"SZB\":\"Asia/Kuala_Lumpur\",\"SZC\":\"America/Costa_Rica\",\"SZD\":\"Europe/London\",\"SZE\":\"Africa/Addis_Ababa\",\"SZF\":\"Europe/Istanbul\",\"SZG\":\"Europe/Vienna\",\"SZH\":\"Asia/Makassar\",\"SZI\":\"Asia/Almaty\",\"SZJ\":\"America/Havana\",\"SZK\":\"Africa/Johannesburg\",\"SZL\":\"America/Chicago\",\"SZM\":\"Africa/Windhoek\",\"SZN\":\"America/Los_Angeles\",\"SZO\":\"Asia/Shanghai\",\"SZP\":\"America/Los_Angeles\",\"SZQ\":\"America/Argentina/Buenos_Aires\",\"SZR\":\"Europe/Sofia\",\"SZS\":\"Pacific/Auckland\",\"SZT\":\"America/Mexico_City\",\"SZU\":\"Africa/Bamako\",\"SZV\":\"Asia/Shanghai\",\"SZW\":\"Europe/Berlin\",\"SZX\":\"Asia/Shanghai\",\"SZY\":\"Europe/Warsaw\",\"SZZ\":\"Europe/Warsaw\",\"TAA\":\"Pacific/Guadalcanal\",\"TAB\":\"America/Port_of_Spain\",\"TAC\":\"Asia/Manila\",\"TAD\":\"America/Denver\",\"TAE\":\"Asia/Seoul\",\"TAF\":\"Africa/Algiers\",\"TAG\":\"Asia/Manila\",\"TAH\":\"Pacific/Efate\",\"TAI\":\"Asia/Aden\",\"TAJ\":\"Pacific/Port_Moresby\",\"TAK\":\"Asia/Tokyo\",\"TAL\":\"America/Anchorage\",\"TAM\":\"America/Mexico_City\",\"TAN\":\"Australia/Brisbane\",\"TAO\":\"Asia/Shanghai\",\"TAP\":\"America/Mexico_City\",\"TAQ\":\"Australia/Adelaide\",\"TAR\":\"Europe/Rome\",\"TAS\":\"Asia/Tashkent\",\"TAT\":\"Europe/Bratislava\",\"TAU\":\"America/Bogota\",\"TAV\":\"Pacific/Pago_Pago\",\"TAW\":\"America/Montevideo\",\"TAX\":\"Asia/Jayapura\",\"TAY\":\"Europe/Tallinn\",\"TAZ\":\"Asia/Ashgabat\",\"TBA\":\"Pacific/Port_Moresby\",\"TBB\":\"Asia/Ho_Chi_Minh\",\"TBC\":\"America/Phoenix\",\"TBD\":\"America/Bogota\",\"TBE\":\"Pacific/Port_Moresby\",\"TBF\":\"Pacific/Tarawa\",\"TBG\":\"Pacific/Port_Moresby\",\"TBH\":\"Asia/Manila\",\"TBI\":\"America/Nassau\",\"TBJ\":\"Africa/Tunis\",\"TBK\":\"Australia/Darwin\",\"TBL\":\"Australia/Perth\",\"TBM\":\"Asia/Pontianak\",\"TBN\":\"America/Chicago\",\"TBO\":\"Africa/Dar_es_Salaam\",\"TBP\":\"America/Lima\",\"TBR\":\"America/New_York\",\"TBS\":\"Asia/Tbilisi\",\"TBT\":\"America/Rio_Branco\",\"TBU\":\"Pacific/Tongatapu\",\"TBV\":\"Pacific/Majuro\",\"TBW\":\"Europe/Moscow\",\"TBY\":\"Africa/Gaborone\",\"TBZ\":\"Asia/Tehran\",\"TCA\":\"Australia/Darwin\",\"TCB\":\"America/Nassau\",\"TCC\":\"America/Denver\",\"TCD\":\"America/Bogota\",\"TCE\":\"Europe/Bucharest\",\"TCF\":\"America/Tegucigalpa\",\"TCG\":\"Asia/Shanghai\",\"TCH\":\"Africa/Libreville\",\"TCJ\":\"Pacific/Port_Moresby\",\"TCK\":\"Pacific/Port_Moresby\",\"TCL\":\"America/Chicago\",\"TCM\":\"America/Los_Angeles\",\"TCN\":\"America/Mexico_City\",\"TCO\":\"America/Bogota\",\"TCP\":\"Africa/Cairo\",\"TCQ\":\"America/Lima\",\"TCR\":\"Asia/Kolkata\",\"TCS\":\"America/Denver\",\"TCT\":\"America/Anchorage\",\"TCU\":\"Africa/Johannesburg\",\"TCV\":\"Africa/Maputo\",\"TCW\":\"Australia/Sydney\",\"TCX\":\"Asia/Tehran\",\"TCY\":\"Africa/Windhoek\",\"TCZ\":\"Asia/Shanghai\",\"TDA\":\"America/Bogota\",\"TDB\":\"Pacific/Port_Moresby\",\"TDD\":\"America/La_Paz\",\"TDG\":\"Asia/Manila\",\"TDJ\":\"Africa/Djibouti\",\"TDK\":\"Asia/Almaty\",\"TDL\":\"America/Argentina/Buenos_Aires\",\"TDN\":\"Australia/Perth\",\"TDO\":\"America/Los_Angeles\",\"TDR\":\"Australia/Brisbane\",\"TDT\":\"Africa/Johannesburg\",\"TDV\":\"Indian/Antananarivo\",\"TDW\":\"America/Chicago\",\"TDX\":\"Asia/Bangkok\",\"TDZ\":\"America/New_York\",\"TEA\":\"America/Tegucigalpa\",\"TEB\":\"America/New_York\",\"TEC\":\"America/Sao_Paulo\",\"TED\":\"Europe/Copenhagen\",\"TEE\":\"Africa/Algiers\",\"TEF\":\"Australia/Perth\",\"TEG\":\"Africa/Ouagadougou\",\"TEH\":\"America/Anchorage\",\"TEI\":\"Asia/Kolkata\",\"TEK\":\"America/Anchorage\",\"TEL\":\"Asia/Kuala_Lumpur\",\"TEM\":\"Australia/Sydney\",\"TEN\":\"Asia/Shanghai\",\"TEO\":\"Pacific/Port_Moresby\",\"TEP\":\"Pacific/Port_Moresby\",\"TEQ\":\"Europe/Istanbul\",\"TER\":\"Atlantic/Azores\",\"TES\":\"Africa/Asmara\",\"TET\":\"Africa/Maputo\",\"TEU\":\"Pacific/Auckland\",\"TEV\":\"Europe/Madrid\",\"TEX\":\"America/Denver\",\"TEY\":\"Atlantic/Reykjavik\",\"TEZ\":\"Asia/Kolkata\",\"TFB\":\"Pacific/Port_Moresby\",\"TFF\":\"America/Porto_Velho\",\"TFI\":\"Pacific/Port_Moresby\",\"TFL\":\"America/Sao_Paulo\",\"TFM\":\"Pacific/Port_Moresby\",\"TFN\":\"Atlantic/Canary\",\"TFR\":\"Africa/Cairo\",\"TFS\":\"Atlantic/Canary\",\"TFT\":\"Asia/Karachi\",\"TFU\":\"Asia/Shanghai\",\"TFY\":\"Africa/Casablanca\",\"TGA\":\"Asia/Singapore\",\"TGB\":\"Asia/Manila\",\"TGC\":\"Asia/Kuala_Lumpur\",\"TGD\":\"Europe/Podgorica\",\"TGE\":\"America/Chicago\",\"TGF\":\"Europe/Paris\",\"TGG\":\"Asia/Kuala_Lumpur\",\"TGH\":\"Pacific/Efate\",\"TGI\":\"America/Lima\",\"TGJ\":\"Pacific/Noumea\",\"TGK\":\"Europe/Moscow\",\"TGL\":\"Pacific/Port_Moresby\",\"TGM\":\"Europe/Bucharest\",\"TGN\":\"Australia/Sydney\",\"TGO\":\"Asia/Shanghai\",\"TGP\":\"Asia/Krasnoyarsk\",\"TGQ\":\"America/Campo_Grande\",\"TGR\":\"Africa/Algiers\",\"TGS\":\"Africa/Maputo\",\"TGT\":\"Africa/Dar_es_Salaam\",\"TGU\":\"America/Tegucigalpa\",\"TGV\":\"Europe/Sofia\",\"TGZ\":\"America/Mexico_City\",\"THA\":\"America/Chicago\",\"THB\":\"Africa/Maseru\",\"THC\":\"Africa/Monrovia\",\"THD\":\"Asia/Ho_Chi_Minh\",\"THE\":\"America/Belem\",\"THG\":\"Australia/Brisbane\",\"THH\":\"Pacific/Auckland\",\"THI\":\"Africa/Nouakchott\",\"THK\":\"Asia/Vientiane\",\"THL\":\"Asia/Yangon\",\"THM\":\"America/Chicago\",\"THN\":\"Europe/Stockholm\",\"THO\":\"Atlantic/Reykjavik\",\"THP\":\"America/Denver\",\"THQ\":\"Asia/Shanghai\",\"THR\":\"Asia/Tehran\",\"THS\":\"Asia/Bangkok\",\"THT\":\"Africa/Nouakchott\",\"THU\":\"America/Thule\",\"THV\":\"America/New_York\",\"THW\":\"Asia/Colombo\",\"THX\":\"Asia/Krasnoyarsk\",\"THY\":\"Africa/Johannesburg\",\"THZ\":\"Africa/Niamey\",\"TIA\":\"Europe/Tirane\",\"TIB\":\"America/Bogota\",\"TIC\":\"Pacific/Majuro\",\"TID\":\"Africa/Algiers\",\"TIE\":\"Africa/Addis_Ababa\",\"TIF\":\"Asia/Riyadh\",\"TIG\":\"Pacific/Port_Moresby\",\"TIH\":\"Pacific/Tahiti\",\"TII\":\"Asia/Kabul\",\"TIJ\":\"America/Tijuana\",\"TIK\":\"America/Chicago\",\"TIM\":\"Asia/Jayapura\",\"TIN\":\"Africa/Algiers\",\"TIO\":\"Asia/Yangon\",\"TIP\":\"Africa/Tripoli\",\"TIQ\":\"Pacific/Saipan\",\"TIR\":\"Asia/Kolkata\",\"TIS\":\"Australia/Brisbane\",\"TIU\":\"Pacific/Auckland\",\"TIV\":\"Europe/Podgorica\",\"TIW\":\"America/Los_Angeles\",\"TIX\":\"America/New_York\",\"TIY\":\"Africa/Nouakchott\",\"TIZ\":\"Pacific/Port_Moresby\",\"TJA\":\"America/La_Paz\",\"TJB\":\"Asia/Jakarta\",\"TJC\":\"America/Panama\",\"TJG\":\"Asia/Makassar\",\"TJH\":\"Asia/Tokyo\",\"TJI\":\"America/Tegucigalpa\",\"TJK\":\"Europe/Istanbul\",\"TJL\":\"America/Campo_Grande\",\"TJM\":\"Asia/Yekaterinburg\",\"TJN\":\"Pacific/Tahiti\",\"TJQ\":\"Asia/Jakarta\",\"TJS\":\"Asia/Makassar\",\"TJU\":\"Asia/Dushanbe\",\"TJV\":\"Asia/Kolkata\",\"TKA\":\"America/Anchorage\",\"TKB\":\"Pacific/Port_Moresby\",\"TKC\":\"Africa/Douala\",\"TKD\":\"Africa/Accra\",\"TKE\":\"America/Anchorage\",\"TKF\":\"America/Los_Angeles\",\"TKG\":\"Asia/Jakarta\",\"TKH\":\"Asia/Bangkok\",\"TKI\":\"America/Anchorage\",\"TKJ\":\"America/Anchorage\",\"TKK\":\"Pacific/Chuuk\",\"TKL\":\"America/Anchorage\",\"TKM\":\"America/Guatemala\",\"TKN\":\"Asia/Tokyo\",\"TKO\":\"Africa/Maseru\",\"TKP\":\"Pacific/Tahiti\",\"TKQ\":\"Africa/Dar_es_Salaam\",\"TKR\":\"Asia/Dhaka\",\"TKS\":\"Asia/Tokyo\",\"TKT\":\"Asia/Bangkok\",\"TKU\":\"Europe/Helsinki\",\"TKV\":\"Pacific/Tahiti\",\"TKW\":\"Pacific/Port_Moresby\",\"TKX\":\"Pacific/Tahiti\",\"TKY\":\"Australia/Perth\",\"TKZ\":\"Pacific/Auckland\",\"TLA\":\"America/Anchorage\",\"TLB\":\"Asia/Karachi\",\"TLC\":\"America/Mexico_City\",\"TLD\":\"Africa/Gaborone\",\"TLE\":\"Indian/Antananarivo\",\"TLF\":\"America/Anchorage\",\"TLG\":\"Pacific/Guadalcanal\",\"TLH\":\"America/New_York\",\"TLI\":\"Asia/Makassar\",\"TLJ\":\"America/Anchorage\",\"TLK\":\"Asia/Yakutsk\",\"TLL\":\"Europe/Tallinn\",\"TLM\":\"Africa/Algiers\",\"TLN\":\"Europe/Paris\",\"TLO\":\"Pacific/Port_Moresby\",\"TLP\":\"Pacific/Port_Moresby\",\"TLQ\":\"Asia/Shanghai\",\"TLR\":\"America/Los_Angeles\",\"TLS\":\"Europe/Paris\",\"TLT\":\"America/Anchorage\",\"TLU\":\"America/Bogota\",\"TLV\":\"Asia/Jerusalem\",\"TLW\":\"Pacific/Port_Moresby\",\"TLX\":\"America/Santiago\",\"TLY\":\"Asia/Vladivostok\",\"TLZ\":\"America/Sao_Paulo\",\"TMA\":\"America/New_York\",\"TMB\":\"America/New_York\",\"TMC\":\"Asia/Makassar\",\"TMD\":\"Africa/Nouakchott\",\"TME\":\"America/Bogota\",\"TMF\":\"Indian/Maldives\",\"TMG\":\"Asia/Kuala_Lumpur\",\"TMH\":\"Asia/Jayapura\",\"TMI\":\"Asia/Kathmandu\",\"TMJ\":\"Asia/Tashkent\",\"TML\":\"Africa/Accra\",\"TMM\":\"Indian/Antananarivo\",\"TMN\":\"Pacific/Tarawa\",\"TMO\":\"America/Caracas\",\"TMP\":\"Europe/Helsinki\",\"TMQ\":\"Africa/Ouagadougou\",\"TMR\":\"Africa/Algiers\",\"TMS\":\"Africa/Sao_Tome\",\"TMT\":\"America/Belem\",\"TMU\":\"America/Costa_Rica\",\"TMW\":\"Australia/Sydney\",\"TMX\":\"Africa/Algiers\",\"TMY\":\"Asia/Jayapura\",\"TMZ\":\"Pacific/Auckland\",\"TNA\":\"Asia/Shanghai\",\"TNB\":\"Asia/Makassar\",\"TNC\":\"America/Anchorage\",\"TND\":\"America/Havana\",\"TNE\":\"Asia/Tokyo\",\"TNF\":\"Europe/Paris\",\"TNG\":\"Africa/Casablanca\",\"TNH\":\"Asia/Shanghai\",\"TNI\":\"Asia/Kolkata\",\"TNJ\":\"Asia/Jakarta\",\"TNK\":\"America/Anchorage\",\"TNL\":\"Europe/Kiev\",\"TNM\":\"Antarctica/Palmer\",\"TNN\":\"Asia/Taipei\",\"TNO\":\"America/Costa_Rica\",\"TNP\":\"America/Los_Angeles\",\"TNQ\":\"Pacific/Kiritimati\",\"TNR\":\"Indian/Antananarivo\",\"TNS\":\"America/Edmonton\",\"TNT\":\"America/New_York\",\"TNU\":\"America/Chicago\",\"TNV\":\"Pacific/Kiritimati\",\"TNW\":\"America/Guayaquil\",\"TNX\":\"Asia/Phnom_Penh\",\"TNZ\":\"Asia/Ulaanbaatar\",\"TOA\":\"America/Los_Angeles\",\"TOB\":\"Africa/Tripoli\",\"TOC\":\"America/New_York\",\"TOD\":\"Asia/Kuala_Lumpur\",\"TOE\":\"Africa/Tunis\",\"TOF\":\"Asia/Tomsk\",\"TOG\":\"America/Anchorage\",\"TOH\":\"Pacific/Efate\",\"TOI\":\"America/Chicago\",\"TOJ\":\"Europe/Madrid\",\"TOK\":\"Pacific/Bougainville\",\"TOL\":\"America/New_York\",\"TOM\":\"Africa/Bamako\",\"TON\":\"Pacific/Bougainville\",\"TOO\":\"America/Costa_Rica\",\"TOP\":\"America/Chicago\",\"TOQ\":\"America/Santiago\",\"TOR\":\"America/Denver\",\"TOS\":\"Europe/Oslo\",\"TOT\":\"America/Paramaribo\",\"TOU\":\"Pacific/Noumea\",\"TOV\":\"America/Tortola\",\"TOW\":\"America/Sao_Paulo\",\"TOX\":\"Asia/Yekaterinburg\",\"TOY\":\"Asia/Tokyo\",\"TOZ\":\"Africa/Abidjan\",\"TPA\":\"America/New_York\",\"TPC\":\"America/Guayaquil\",\"TPE\":\"Asia/Taipei\",\"TPF\":\"America/New_York\",\"TPG\":\"Asia/Kuala_Lumpur\",\"TPH\":\"America/Los_Angeles\",\"TPI\":\"Pacific/Port_Moresby\",\"TPJ\":\"Asia/Kathmandu\",\"TPK\":\"Asia/Jakarta\",\"TPL\":\"America/Chicago\",\"TPN\":\"America/Guayaquil\",\"TPO\":\"America/Anchorage\",\"TPP\":\"America/Lima\",\"TPQ\":\"America/Mazatlan\",\"TPR\":\"Australia/Perth\",\"TPS\":\"Europe/Rome\",\"TPT\":\"Africa/Monrovia\",\"TPU\":\"Asia/Kathmandu\",\"TPX\":\"Pacific/Tahiti\",\"TQA\":\"America/Godthab\",\"TQD\":\"Asia/Baghdad\",\"TQI\":\"America/Godthab\",\"TQL\":\"Asia/Yekaterinburg\",\"TQN\":\"Asia/Kabul\",\"TQP\":\"Australia/Brisbane\",\"TQQ\":\"Asia/Makassar\",\"TQR\":\"Europe/Rome\",\"TQS\":\"America/Bogota\",\"TRA\":\"Asia/Tokyo\",\"TRB\":\"America/Bogota\",\"TRC\":\"America/Mexico_City\",\"TRD\":\"Europe/Oslo\",\"TRE\":\"Europe/London\",\"TRF\":\"Europe/Oslo\",\"TRG\":\"Pacific/Auckland\",\"TRH\":\"America/Los_Angeles\",\"TRI\":\"America/New_York\",\"TRJ\":\"Pacific/Port_Moresby\",\"TRK\":\"Asia/Makassar\",\"TRL\":\"America/Chicago\",\"TRM\":\"America/Los_Angeles\",\"TRN\":\"Europe/Rome\",\"TRO\":\"Australia/Sydney\",\"TRQ\":\"America/Rio_Branco\",\"TRR\":\"Asia/Colombo\",\"TRS\":\"Europe/Rome\",\"TRT\":\"America/Denver\",\"TRU\":\"America/Lima\",\"TRV\":\"Asia/Kolkata\",\"TRW\":\"Pacific/Tarawa\",\"TRX\":\"America/Chicago\",\"TRY\":\"Africa/Kampala\",\"TRZ\":\"Asia/Kolkata\",\"TSA\":\"Asia/Taipei\",\"TSB\":\"Africa/Windhoek\",\"TSC\":\"America/Guayaquil\",\"TSD\":\"Africa/Johannesburg\",\"TSE\":\"Asia/Almaty\",\"TSF\":\"Europe/Rome\",\"TSG\":\"America/Anchorage\",\"TSH\":\"Africa/Lubumbashi\",\"TSI\":\"Pacific/Port_Moresby\",\"TSJ\":\"Asia/Tokyo\",\"TSK\":\"Pacific/Port_Moresby\",\"TSL\":\"America/Mexico_City\",\"TSM\":\"America/Denver\",\"TSN\":\"Asia/Shanghai\",\"TSO\":\"Europe/London\",\"TSP\":\"America/Los_Angeles\",\"TSQ\":\"America/Sao_Paulo\",\"TSR\":\"Europe/Bucharest\",\"TSS\":\"America/New_York\",\"TST\":\"Asia/Bangkok\",\"TSU\":\"Pacific/Tarawa\",\"TSV\":\"Australia/Brisbane\",\"TSW\":\"Pacific/Port_Moresby\",\"TSX\":\"Asia/Makassar\",\"TSY\":\"Asia/Jakarta\",\"TSZ\":\"Asia/Ulaanbaatar\",\"TTA\":\"Africa/Casablanca\",\"TTB\":\"Europe/Rome\",\"TTC\":\"America/Santiago\",\"TTD\":\"America/Los_Angeles\",\"TTE\":\"Asia/Jayapura\",\"TTG\":\"America/Argentina/Buenos_Aires\",\"TTH\":\"Asia/Muscat\",\"TTI\":\"Pacific/Tahiti\",\"TTJ\":\"Asia/Tokyo\",\"TTK\":\"Europe/London\",\"TTL\":\"Pacific/Fiji\",\"TTM\":\"America/Bogota\",\"TTN\":\"America/New_York\",\"TTO\":\"America/Chicago\",\"TTQ\":\"America/Costa_Rica\",\"TTR\":\"Asia/Makassar\",\"TTS\":\"Indian/Antananarivo\",\"TTT\":\"Asia/Taipei\",\"TTU\":\"Africa/Casablanca\",\"TUA\":\"America/Guayaquil\",\"TUB\":\"Pacific/Tahiti\",\"TUC\":\"America/Argentina/Buenos_Aires\",\"TUD\":\"Africa/Dakar\",\"TUE\":\"America/Panama\",\"TUF\":\"Europe/Paris\",\"TUG\":\"Asia/Manila\",\"TUH\":\"America/Chicago\",\"TUI\":\"Asia/Riyadh\",\"TUK\":\"Asia/Karachi\",\"TUL\":\"America/Chicago\",\"TUM\":\"Australia/Sydney\",\"TUN\":\"Africa/Tunis\",\"TUO\":\"Pacific/Auckland\",\"TUP\":\"America/Chicago\",\"TUQ\":\"Africa/Ouagadougou\",\"TUR\":\"America/Belem\",\"TUS\":\"America/Phoenix\",\"TUT\":\"Pacific/Port_Moresby\",\"TUU\":\"Asia/Riyadh\",\"TUV\":\"America/Caracas\",\"TUW\":\"America/Panama\",\"TUX\":\"America/Vancouver\",\"TUY\":\"America/Mexico_City\",\"TUZ\":\"America/Belem\",\"TVA\":\"Indian/Antananarivo\",\"TVC\":\"America/New_York\",\"TVF\":\"America/Chicago\",\"TVI\":\"America/New_York\",\"TVL\":\"America/Los_Angeles\",\"TVS\":\"Asia/Shanghai\",\"TVU\":\"Pacific/Fiji\",\"TVY\":\"Asia/Yangon\",\"TWA\":\"America/Anchorage\",\"TWB\":\"Australia/Brisbane\",\"TWC\":\"Asia/Shanghai\",\"TWD\":\"America/Los_Angeles\",\"TWE\":\"America/Anchorage\",\"TWF\":\"America/Denver\",\"TWH\":\"America/Los_Angeles\",\"TWN\":\"Australia/Brisbane\",\"TWP\":\"Australia/Brisbane\",\"TWT\":\"Asia/Manila\",\"TWU\":\"Asia/Kuala_Lumpur\",\"TWY\":\"Pacific/Port_Moresby\",\"TWZ\":\"Pacific/Auckland\",\"TXE\":\"Asia/Jakarta\",\"TXF\":\"America/Belem\",\"TXK\":\"America/Chicago\",\"TXL\":\"Europe/Berlin\",\"TXM\":\"Asia/Jayapura\",\"TXN\":\"Asia/Shanghai\",\"TXR\":\"Australia/Brisbane\",\"TXU\":\"Africa/Abidjan\",\"TYA\":\"Europe/Moscow\",\"TYB\":\"Australia/Sydney\",\"TYD\":\"Asia/Yakutsk\",\"TYE\":\"America/Anchorage\",\"TYF\":\"Europe/Stockholm\",\"TYG\":\"Australia/Brisbane\",\"TYL\":\"America/Lima\",\"TYM\":\"America/Nassau\",\"TYN\":\"Asia/Shanghai\",\"TYP\":\"Australia/Darwin\",\"TYR\":\"America/Chicago\",\"TYS\":\"America/New_York\",\"TYT\":\"America/Montevideo\",\"TYZ\":\"America/Phoenix\",\"TZA\":\"America/Belize\",\"TZL\":\"Europe/Sarajevo\",\"TZM\":\"America/Mexico_City\",\"TZN\":\"America/Nassau\",\"TZX\":\"Europe/Istanbul\",\"UAB\":\"Europe/Istanbul\",\"UAC\":\"America/Hermosillo\",\"UAE\":\"Pacific/Port_Moresby\",\"UAH\":\"Pacific/Marquesas\",\"UAI\":\"Asia/Dili\",\"UAK\":\"America/Godthab\",\"UAL\":\"Africa/Luanda\",\"UAM\":\"Pacific/Guam\",\"UAP\":\"Pacific/Marquesas\",\"UAQ\":\"America/Argentina/Buenos_Aires\",\"UAR\":\"Africa/Casablanca\",\"UAS\":\"Africa/Nairobi\",\"UAX\":\"America/Guatemala\",\"UBA\":\"America/Sao_Paulo\",\"UBB\":\"Australia/Brisbane\",\"UBI\":\"Pacific/Bougainville\",\"UBJ\":\"Asia/Tokyo\",\"UBN\":\"Asia/Ulaanbaatar\",\"UBP\":\"Asia/Bangkok\",\"UBR\":\"Asia/Jayapura\",\"UBS\":\"America/Chicago\",\"UBT\":\"America/Sao_Paulo\",\"UBU\":\"Australia/Perth\",\"UCA\":\"America/New_York\",\"UCB\":\"Asia/Shanghai\",\"UCC\":\"America/Los_Angeles\",\"UCE\":\"America/Chicago\",\"UCK\":\"Europe/Kiev\",\"UCN\":\"Africa/Monrovia\",\"UCT\":\"Europe/Moscow\",\"UCY\":\"America/Chicago\",\"UDA\":\"Australia/Brisbane\",\"UDD\":\"America/Los_Angeles\",\"UDE\":\"Europe/Amsterdam\",\"UDI\":\"America/Sao_Paulo\",\"UDJ\":\"Europe/Kiev\",\"UDN\":\"Europe/Rome\",\"UDO\":\"Asia/Vientiane\",\"UDR\":\"Asia/Kolkata\",\"UEE\":\"Australia/Hobart\",\"UEL\":\"Africa/Maputo\",\"UEO\":\"Asia/Tokyo\",\"UER\":\"Europe/Madrid\",\"UES\":\"America/Chicago\",\"UET\":\"Asia/Karachi\",\"UFA\":\"Asia/Yekaterinburg\",\"UGA\":\"Asia/Ulaanbaatar\",\"UGB\":\"America/Anchorage\",\"UGC\":\"Asia/Tashkent\",\"UGI\":\"America/Anchorage\",\"UGL\":\"Antarctica/Palmer\",\"UGN\":\"America/Chicago\",\"UGO\":\"Africa/Luanda\",\"UGS\":\"America/Anchorage\",\"UGT\":\"Asia/Ulaanbaatar\",\"UGU\":\"Asia/Jayapura\",\"UHE\":\"Europe/Prague\",\"UHF\":\"Europe/London\",\"UIB\":\"America/Bogota\",\"UIH\":\"Asia/Ho_Chi_Minh\",\"UII\":\"America/Tegucigalpa\",\"UIK\":\"Asia/Irkutsk\",\"UIL\":\"America/Los_Angeles\",\"UIN\":\"America/Chicago\",\"UIO\":\"America/Guayaquil\",\"UIP\":\"Europe/Paris\",\"UIQ\":\"Pacific/Efate\",\"UIR\":\"Australia/Sydney\",\"UIT\":\"Pacific/Majuro\",\"UIZ\":\"America/New_York\",\"UJE\":\"Pacific/Majuro\",\"UKA\":\"Africa/Nairobi\",\"UKB\":\"Asia/Tokyo\",\"UKG\":\"Asia/Vladivostok\",\"UKH\":\"Asia/Muscat\",\"UKI\":\"America/Los_Angeles\",\"UKK\":\"Asia/Almaty\",\"UKN\":\"America/Chicago\",\"UKR\":\"Asia/Aden\",\"UKS\":\"Europe/Simferopol\",\"UKT\":\"America/New_York\",\"UKU\":\"Pacific/Port_Moresby\",\"UKX\":\"Asia/Irkutsk\",\"ULA\":\"America/Argentina/Buenos_Aires\",\"ULB\":\"Pacific/Efate\",\"ULC\":\"America/Santiago\",\"ULD\":\"Africa/Johannesburg\",\"ULE\":\"Pacific/Port_Moresby\",\"ULG\":\"Asia/Ulaanbaatar\",\"ULH\":\"Asia/Riyadh\",\"ULI\":\"Pacific/Chuuk\",\"ULK\":\"Asia/Yakutsk\",\"ULL\":\"Europe/London\",\"ULM\":\"America/Chicago\",\"ULN\":\"Asia/Ulaanbaatar\",\"ULO\":\"Asia/Ulaanbaatar\",\"ULP\":\"Australia/Brisbane\",\"ULQ\":\"America/Bogota\",\"ULS\":\"America/Bogota\",\"ULU\":\"Africa/Kampala\",\"ULV\":\"Europe/Samara\",\"ULX\":\"Africa/Johannesburg\",\"ULY\":\"Europe/Samara\",\"ULZ\":\"Asia/Ulaanbaatar\",\"UMB\":\"America/Anchorage\",\"UMC\":\"Pacific/Port_Moresby\",\"UMD\":\"America/Godthab\",\"UME\":\"Europe/Stockholm\",\"UMI\":\"America/Lima\",\"UMM\":\"America/Anchorage\",\"UMR\":\"Australia/Adelaide\",\"UMS\":\"Asia/Yakutsk\",\"UMT\":\"America/Anchorage\",\"UMU\":\"America/Sao_Paulo\",\"UMY\":\"Europe/Kiev\",\"UMZ\":\"America/Chicago\",\"UNA\":\"America/Belem\",\"UNC\":\"America/Bogota\",\"UND\":\"Asia/Kabul\",\"UNE\":\"Africa/Maseru\",\"UNG\":\"Pacific/Port_Moresby\",\"UNI\":\"America/St_Vincent\",\"UNK\":\"America/Anchorage\",\"UNN\":\"Asia/Bangkok\",\"UNR\":\"Asia/Ulaanbaatar\",\"UNS\":\"America/Anchorage\",\"UNT\":\"Europe/London\",\"UNU\":\"America/Chicago\",\"UOL\":\"Asia/Makassar\",\"UON\":\"Asia/Vientiane\",\"UOS\":\"America/Chicago\",\"UOX\":\"America/Chicago\",\"UPA\":\"America/Havana\",\"UPB\":\"America/Havana\",\"UPC\":\"America/Caracas\",\"UPF\":\"Europe/Berlin\",\"UPG\":\"Asia/Makassar\",\"UPK\":\"America/Godthab\",\"UPL\":\"America/Costa_Rica\",\"UPN\":\"America/Mexico_City\",\"UPP\":\"Pacific/Honolulu\",\"UPR\":\"Pacific/Port_Moresby\",\"UPV\":\"Europe/London\",\"UQE\":\"America/Anchorage\",\"URA\":\"Asia/Oral\",\"URB\":\"America/Sao_Paulo\",\"URC\":\"Asia/Shanghai\",\"URD\":\"Europe/Berlin\",\"URE\":\"Europe/Tallinn\",\"URG\":\"America/Sao_Paulo\",\"URI\":\"America/Bogota\",\"URJ\":\"Asia/Yekaterinburg\",\"URM\":\"America/Caracas\",\"URN\":\"Asia/Kabul\",\"URO\":\"Europe/Paris\",\"URR\":\"America/Bogota\",\"URS\":\"Europe/Moscow\",\"URT\":\"Asia/Bangkok\",\"URU\":\"Pacific/Port_Moresby\",\"URY\":\"Asia/Riyadh\",\"URZ\":\"Asia/Kabul\",\"USA\":\"America/New_York\",\"USH\":\"America/Argentina/Buenos_Aires\",\"USI\":\"America/Guyana\",\"USJ\":\"Asia/Almaty\",\"USK\":\"Europe/Moscow\",\"USL\":\"Australia/Perth\",\"USM\":\"Asia/Bangkok\",\"USN\":\"Asia/Seoul\",\"USO\":\"Pacific/Port_Moresby\",\"USQ\":\"Europe/Istanbul\",\"USR\":\"Asia/Vladivostok\",\"USS\":\"America/Havana\",\"UST\":\"America/New_York\",\"USU\":\"Asia/Manila\",\"UTA\":\"Africa/Harare\",\"UTB\":\"Australia/Brisbane\",\"UTC\":\"Europe/Amsterdam\",\"UTD\":\"Australia/Darwin\",\"UTE\":\"Africa/Johannesburg\",\"UTG\":\"Africa/Maseru\",\"UTH\":\"Asia/Bangkok\",\"UTI\":\"Europe/Helsinki\",\"UTK\":\"Pacific/Majuro\",\"UTM\":\"America/Chicago\",\"UTN\":\"Africa/Johannesburg\",\"UTO\":\"America/Anchorage\",\"UTP\":\"Asia/Bangkok\",\"UTR\":\"Asia/Bangkok\",\"UTS\":\"Europe/Moscow\",\"UTT\":\"Africa/Johannesburg\",\"UTU\":\"America/Panama\",\"UTW\":\"Africa/Johannesburg\",\"UUA\":\"Europe/Moscow\",\"UUD\":\"Asia/Irkutsk\",\"UUK\":\"America/Anchorage\",\"UUN\":\"Asia/Ulaanbaatar\",\"UUS\":\"Asia/Sakhalin\",\"UUU\":\"Pacific/Port_Moresby\",\"UVA\":\"America/Chicago\",\"UVE\":\"Pacific/Noumea\",\"UVF\":\"America/St_Lucia\",\"UVI\":\"America/Sao_Paulo\",\"UVL\":\"Africa/Cairo\",\"UVO\":\"Pacific/Port_Moresby\",\"UWA\":\"America/New_York\",\"UYL\":\"Africa/Khartoum\",\"UYN\":\"Asia/Shanghai\",\"UYU\":\"America/La_Paz\",\"UZC\":\"Europe/Belgrade\",\"UZH\":\"Asia/Riyadh\",\"UZR\":\"Asia/Almaty\",\"UZU\":\"America/Argentina/Buenos_Aires\",\"VAA\":\"Europe/Helsinki\",\"VAB\":\"America/Bogota\",\"VAC\":\"Europe/Berlin\",\"VAD\":\"America/New_York\",\"VAF\":\"Europe/Paris\",\"VAG\":\"America/Sao_Paulo\",\"VAH\":\"America/La_Paz\",\"VAI\":\"Pacific/Port_Moresby\",\"VAK\":\"America/Anchorage\",\"VAL\":\"America/Belem\",\"VAM\":\"Indian/Maldives\",\"VAN\":\"Europe/Istanbul\",\"VAO\":\"Pacific/Guadalcanal\",\"VAP\":\"America/Santiago\",\"VAR\":\"Europe/Sofia\",\"VAS\":\"Europe/Istanbul\",\"VAT\":\"Indian/Antananarivo\",\"VAU\":\"Pacific/Fiji\",\"VAV\":\"Pacific/Tongatapu\",\"VAW\":\"Europe/Oslo\",\"VAZ\":\"Europe/Paris\",\"VBA\":\"Asia/Yangon\",\"VBC\":\"Asia/Yangon\",\"VBG\":\"America/Los_Angeles\",\"VBM\":\"America/Anchorage\",\"VBP\":\"Asia/Yangon\",\"VBS\":\"Europe/Rome\",\"VBV\":\"Pacific/Fiji\",\"VBY\":\"Europe/Stockholm\",\"VCA\":\"Asia/Ho_Chi_Minh\",\"VCB\":\"America/Anchorage\",\"VCC\":\"Africa/Douala\",\"VCD\":\"Australia/Darwin\",\"VCE\":\"Europe/Rome\",\"VCF\":\"America/Argentina/Buenos_Aires\",\"VCH\":\"America/Montevideo\",\"VCL\":\"Asia/Ho_Chi_Minh\",\"VCP\":\"America/Sao_Paulo\",\"VCR\":\"America/Caracas\",\"VCS\":\"Asia/Ho_Chi_Minh\",\"VCT\":\"America/Chicago\",\"VCV\":\"America/Los_Angeles\",\"VDA\":\"Asia/Jerusalem\",\"VDB\":\"Europe/Oslo\",\"VDC\":\"America/Belem\",\"VDE\":\"Atlantic/Canary\",\"VDF\":\"America/New_York\",\"VDH\":\"Asia/Ho_Chi_Minh\",\"VDI\":\"America/New_York\",\"VDM\":\"America/Argentina/Buenos_Aires\",\"VDO\":\"Asia/Ho_Chi_Minh\",\"VDP\":\"America/Caracas\",\"VDR\":\"America/Argentina/Buenos_Aires\",\"VDS\":\"Europe/Oslo\",\"VDU\":\"America/Chicago\",\"VDY\":\"Asia/Kolkata\",\"VDZ\":\"America/Anchorage\",\"VEE\":\"America/Anchorage\",\"VEG\":\"America/Guyana\",\"VEJ\":\"Europe/Copenhagen\",\"VEL\":\"America/Denver\",\"VER\":\"America/Mexico_City\",\"VEV\":\"Pacific/Guadalcanal\",\"VEX\":\"America/Chicago\",\"VEY\":\"Atlantic/Reykjavik\",\"VFA\":\"Africa/Harare\",\"VGA\":\"Asia/Kolkata\",\"VGD\":\"Europe/Moscow\",\"VGO\":\"Europe/Madrid\",\"VGS\":\"America/Argentina/Buenos_Aires\",\"VGT\":\"America/Los_Angeles\",\"VGZ\":\"America/Bogota\",\"VHC\":\"Africa/Luanda\",\"VHM\":\"Europe/Stockholm\",\"VHN\":\"America/Chicago\",\"VHO\":\"Africa/Maputo\",\"VHV\":\"Asia/Yakutsk\",\"VHY\":\"Europe/Paris\",\"VHZ\":\"Pacific/Tahiti\",\"VIA\":\"America/Sao_Paulo\",\"VIB\":\"America/Mazatlan\",\"VIC\":\"Europe/Rome\",\"VID\":\"Europe/Sofia\",\"VIE\":\"Europe/Vienna\",\"VIF\":\"Europe/Rome\",\"VIG\":\"America/Caracas\",\"VIH\":\"America/Chicago\",\"VII\":\"Asia/Ho_Chi_Minh\",\"VIJ\":\"America/Tortola\",\"VIL\":\"Africa/Casablanca\",\"VIN\":\"Europe/Kiev\",\"VIQ\":\"Asia/Jayapura\",\"VIR\":\"Africa/Johannesburg\",\"VIS\":\"America/Los_Angeles\",\"VIT\":\"Europe/Madrid\",\"VIU\":\"Pacific/Guadalcanal\",\"VIV\":\"Pacific/Port_Moresby\",\"VIX\":\"America/Sao_Paulo\",\"VIY\":\"Europe/Paris\",\"VJB\":\"Africa/Maputo\",\"VJI\":\"America/New_York\",\"VJQ\":\"Africa/Maputo\",\"VKG\":\"Asia/Ho_Chi_Minh\",\"VKO\":\"Europe/Moscow\",\"VKS\":\"America/Chicago\",\"VKT\":\"Europe/Moscow\",\"VKW\":\"America/Anchorage\",\"VLA\":\"America/Chicago\",\"VLC\":\"Europe/Madrid\",\"VLD\":\"America/New_York\",\"VLE\":\"America/Phoenix\",\"VLG\":\"America/Argentina/Buenos_Aires\",\"VLI\":\"Pacific/Efate\",\"VLK\":\"Europe/Moscow\",\"VLL\":\"Europe/Madrid\",\"VLM\":\"America/La_Paz\",\"VLN\":\"America/Caracas\",\"VLO\":\"America/Los_Angeles\",\"VLP\":\"America/Campo_Grande\",\"VLR\":\"America/Santiago\",\"VLS\":\"Pacific/Efate\",\"VLU\":\"Europe/Moscow\",\"VLV\":\"America/Caracas\",\"VLY\":\"Europe/London\",\"VME\":\"America/Argentina/Buenos_Aires\",\"VMI\":\"America/Asuncion\",\"VMU\":\"Pacific/Port_Moresby\",\"VNA\":\"Asia/Vientiane\",\"VNC\":\"America/New_York\",\"VND\":\"Indian/Antananarivo\",\"VNE\":\"Europe/Paris\",\"VNG\":\"Asia/Vientiane\",\"VNO\":\"Europe/Vilnius\",\"VNR\":\"Australia/Brisbane\",\"VNS\":\"Asia/Kolkata\",\"VNX\":\"Africa/Maputo\",\"VNY\":\"America/Los_Angeles\",\"VOG\":\"Europe/Samara\",\"VOH\":\"Indian/Antananarivo\",\"VOI\":\"Africa/Monrovia\",\"VOK\":\"America/Chicago\",\"VOL\":\"Europe/Athens\",\"VOT\":\"America/Sao_Paulo\",\"VOZ\":\"Europe/Moscow\",\"VPE\":\"Africa/Luanda\",\"VPG\":\"Africa/Nairobi\",\"VPN\":\"Atlantic/Reykjavik\",\"VPS\":\"America/Chicago\",\"VPY\":\"Africa/Maputo\",\"VPZ\":\"America/Chicago\",\"VQQ\":\"America/New_York\",\"VQS\":\"America/Puerto_Rico\",\"VRA\":\"America/Havana\",\"VRB\":\"America/New_York\",\"VRC\":\"Asia/Manila\",\"VRE\":\"Africa/Johannesburg\",\"VRK\":\"Europe/Helsinki\",\"VRL\":\"Europe/Lisbon\",\"VRN\":\"Europe/Rome\",\"VRO\":\"America/Havana\",\"VRS\":\"America/Chicago\",\"VRU\":\"Africa/Johannesburg\",\"VRY\":\"Europe/Oslo\",\"VSA\":\"America/Mexico_City\",\"VSE\":\"Europe/Lisbon\",\"VSF\":\"America/New_York\",\"VSO\":\"Asia/Ho_Chi_Minh\",\"VST\":\"Europe/Stockholm\",\"VTA\":\"America/Tegucigalpa\",\"VTB\":\"Europe/Minsk\",\"VTE\":\"Asia/Vientiane\",\"VTF\":\"Pacific/Fiji\",\"VTG\":\"Asia/Ho_Chi_Minh\",\"VTL\":\"Europe/Paris\",\"VTM\":\"Asia/Jerusalem\",\"VTN\":\"America/Chicago\",\"VTU\":\"America/Havana\",\"VTZ\":\"Asia/Kolkata\",\"VUP\":\"America/Bogota\",\"VUS\":\"Europe/Moscow\",\"VUU\":\"Africa/Blantyre\",\"VVB\":\"Indian/Antananarivo\",\"VVC\":\"America/Bogota\",\"VVI\":\"America/La_Paz\",\"VVK\":\"Europe/Stockholm\",\"VVN\":\"America/Lima\",\"VVO\":\"Asia/Vladivostok\",\"VVZ\":\"Africa/Algiers\",\"VXC\":\"Africa/Maputo\",\"VXE\":\"Atlantic/Cape_Verde\",\"VXO\":\"Europe/Stockholm\",\"VYD\":\"Africa/Johannesburg\",\"VYI\":\"Asia/Yakutsk\",\"VYS\":\"America/Chicago\",\"WAA\":\"America/Anchorage\",\"WAB\":\"Pacific/Port_Moresby\",\"WAC\":\"Africa/Addis_Ababa\",\"WAD\":\"Indian/Antananarivo\",\"WAE\":\"Asia/Riyadh\",\"WAF\":\"Asia/Karachi\",\"WAG\":\"Pacific/Auckland\",\"WAH\":\"America/Chicago\",\"WAI\":\"Indian/Antananarivo\",\"WAJ\":\"Pacific/Port_Moresby\",\"WAK\":\"Indian/Antananarivo\",\"WAL\":\"America/New_York\",\"WAM\":\"Indian/Antananarivo\",\"WAN\":\"Australia/Brisbane\",\"WAO\":\"Pacific/Port_Moresby\",\"WAP\":\"America/Santiago\",\"WAQ\":\"Indian/Antananarivo\",\"WAR\":\"Asia/Jayapura\",\"WAT\":\"Europe/Dublin\",\"WAU\":\"Australia/Sydney\",\"WAV\":\"Australia/Darwin\",\"WAW\":\"Europe/Warsaw\",\"WAX\":\"Africa/Tripoli\",\"WAY\":\"America/New_York\",\"WAZ\":\"Australia/Brisbane\",\"WBA\":\"Asia/Jayapura\",\"WBB\":\"America/Anchorage\",\"WBC\":\"Pacific/Port_Moresby\",\"WBD\":\"Indian/Antananarivo\",\"WBE\":\"Indian/Antananarivo\",\"WBG\":\"Europe/Berlin\",\"WBI\":\"America/Denver\",\"WBM\":\"Pacific/Port_Moresby\",\"WBN\":\"America/New_York\",\"WBO\":\"Indian/Antananarivo\",\"WBQ\":\"America/Anchorage\",\"WBR\":\"America/New_York\",\"WBU\":\"America/Denver\",\"WBW\":\"America/New_York\",\"WCA\":\"America/Santiago\",\"WCD\":\"Australia/Perth\",\"WCH\":\"America/Santiago\",\"WCR\":\"America/Anchorage\",\"WDA\":\"Asia/Aden\",\"WDB\":\"America/Anchorage\",\"WDG\":\"America/Chicago\",\"WDH\":\"Africa/Windhoek\",\"WDI\":\"Australia/Brisbane\",\"WDN\":\"America/Los_Angeles\",\"WDR\":\"America/New_York\",\"WDS\":\"Asia/Shanghai\",\"WDY\":\"America/Anchorage\",\"WEA\":\"America/Chicago\",\"WED\":\"Pacific/Port_Moresby\",\"WEF\":\"Asia/Shanghai\",\"WEH\":\"Asia/Shanghai\",\"WEI\":\"Australia/Brisbane\",\"WEL\":\"Africa/Johannesburg\",\"WEM\":\"Europe/London\",\"WEP\":\"Pacific/Port_Moresby\",\"WES\":\"Africa/Monrovia\",\"WET\":\"Asia/Jayapura\",\"WEW\":\"Australia/Sydney\",\"WEX\":\"Europe/Dublin\",\"WFB\":\"America/Anchorage\",\"WFD\":\"Europe/London\",\"WFI\":\"Indian/Antananarivo\",\"WFK\":\"America/New_York\",\"WGA\":\"Australia/Sydney\",\"WGB\":\"Asia/Karachi\",\"WGC\":\"Asia/Kolkata\",\"WGE\":\"Australia/Sydney\",\"WGL\":\"America/Guayaquil\",\"WGN\":\"Asia/Shanghai\",\"WGO\":\"America/New_York\",\"WGP\":\"Asia/Makassar\",\"WGT\":\"Australia/Sydney\",\"WGU\":\"Pacific/Port_Moresby\",\"WGY\":\"Africa/Libreville\",\"WHD\":\"America/Anchorage\",\"WHF\":\"Africa/Khartoum\",\"WHK\":\"Pacific/Auckland\",\"WHL\":\"Australia/Sydney\",\"WHO\":\"Pacific/Auckland\",\"WHP\":\"America/Los_Angeles\",\"WHS\":\"Europe/London\",\"WHT\":\"America/Chicago\",\"WHU\":\"Asia/Shanghai\",\"WIC\":\"Europe/London\",\"WID\":\"Europe/Berlin\",\"WIE\":\"Europe/Berlin\",\"WIK\":\"Pacific/Auckland\",\"WIL\":\"Africa/Nairobi\",\"WIN\":\"Australia/Brisbane\",\"WIO\":\"Australia/Sydney\",\"WIR\":\"Pacific/Auckland\",\"WIT\":\"Australia/Perth\",\"WIU\":\"Pacific/Port_Moresby\",\"WJA\":\"Pacific/Majuro\",\"WJF\":\"America/Los_Angeles\",\"WJR\":\"Africa/Nairobi\",\"WJU\":\"Asia/Seoul\",\"WKA\":\"Pacific/Auckland\",\"WKB\":\"Australia/Sydney\",\"WKF\":\"Africa/Johannesburg\",\"WKI\":\"Africa/Harare\",\"WKJ\":\"Asia/Tokyo\",\"WKK\":\"America/Anchorage\",\"WKL\":\"Pacific/Honolulu\",\"WKN\":\"Pacific/Bougainville\",\"WKR\":\"America/Nassau\",\"WLA\":\"Australia/Perth\",\"WLB\":\"America/Anchorage\",\"WLC\":\"Australia/Sydney\",\"WLD\":\"America/Chicago\",\"WLE\":\"Australia/Brisbane\",\"WLG\":\"Pacific/Auckland\",\"WLH\":\"Pacific/Efate\",\"WLK\":\"America/Anchorage\",\"WLL\":\"Australia/Brisbane\",\"WLM\":\"America/New_York\",\"WLN\":\"America/Anchorage\",\"WLO\":\"Australia/Darwin\",\"WLP\":\"Australia/Perth\",\"WLR\":\"America/Anchorage\",\"WLS\":\"Pacific/Wallis\",\"WLW\":\"America/Los_Angeles\",\"WMA\":\"Indian/Antananarivo\",\"WMB\":\"Australia/Sydney\",\"WMC\":\"America/Los_Angeles\",\"WMD\":\"Indian/Antananarivo\",\"WME\":\"Australia/Perth\",\"WMH\":\"America/Chicago\",\"WMI\":\"Europe/Warsaw\",\"WMK\":\"America/Anchorage\",\"WML\":\"Indian/Antananarivo\",\"WMN\":\"Indian/Antananarivo\",\"WMO\":\"America/Anchorage\",\"WMP\":\"Indian/Antananarivo\",\"WMR\":\"Indian/Antananarivo\",\"WMT\":\"Asia/Shanghai\",\"WMV\":\"Indian/Antananarivo\",\"WMX\":\"Asia/Jayapura\",\"WNA\":\"America/Anchorage\",\"WND\":\"Australia/Perth\",\"WNE\":\"Africa/Accra\",\"WNH\":\"Asia/Shanghai\",\"WNI\":\"Asia/Makassar\",\"WNN\":\"America/Winnipeg\",\"WNP\":\"Asia/Manila\",\"WNR\":\"Australia/Brisbane\",\"WNS\":\"Asia/Karachi\",\"WNU\":\"Pacific/Port_Moresby\",\"WNZ\":\"Asia/Shanghai\",\"WOA\":\"Pacific/Port_Moresby\",\"WOB\":\"Europe/London\",\"WOD\":\"America/Anchorage\",\"WOE\":\"Europe/Amsterdam\",\"WOG\":\"Australia/Darwin\",\"WOI\":\"Africa/Monrovia\",\"WOK\":\"America/Caracas\",\"WOL\":\"Australia/Sydney\",\"WON\":\"Australia/Brisbane\",\"WOO\":\"America/Anchorage\",\"WOR\":\"Indian/Antananarivo\",\"WOT\":\"Asia/Taipei\",\"WOW\":\"America/Anchorage\",\"WPA\":\"America/Santiago\",\"WPB\":\"Indian/Antananarivo\",\"WPC\":\"America/Edmonton\",\"WPK\":\"Australia/Brisbane\",\"WPL\":\"America/Vancouver\",\"WPM\":\"Pacific/Port_Moresby\",\"WPO\":\"America/Denver\",\"WPR\":\"America/Santiago\",\"WPU\":\"America/Santiago\",\"WRA\":\"Africa/Addis_Ababa\",\"WRB\":\"America/New_York\",\"WRE\":\"Pacific/Auckland\",\"WRG\":\"America/Anchorage\",\"WRH\":\"America/Anchorage\",\"WRI\":\"America/New_York\",\"WRL\":\"America/Denver\",\"WRN\":\"Australia/Perth\",\"WRO\":\"Europe/Warsaw\",\"WRW\":\"Australia/Perth\",\"WRY\":\"Europe/London\",\"WRZ\":\"Asia/Colombo\",\"WSA\":\"Pacific/Port_Moresby\",\"WSB\":\"America/Anchorage\",\"WSD\":\"America/Denver\",\"WSF\":\"America/Anchorage\",\"WSG\":\"America/New_York\",\"WSH\":\"America/New_York\",\"WSK\":\"Asia/Shanghai\",\"WSM\":\"America/Anchorage\",\"WSN\":\"America/Anchorage\",\"WSO\":\"America/Paramaribo\",\"WSP\":\"America/Managua\",\"WSR\":\"Asia/Jayapura\",\"WST\":\"America/New_York\",\"WSU\":\"Pacific/Port_Moresby\",\"WSX\":\"America/Los_Angeles\",\"WSY\":\"Australia/Brisbane\",\"WSZ\":\"Pacific/Auckland\",\"WTA\":\"Indian/Antananarivo\",\"WTB\":\"Australia/Brisbane\",\"WTD\":\"America/Nassau\",\"WTE\":\"Pacific/Majuro\",\"WTK\":\"America/Anchorage\",\"WTL\":\"America/Anchorage\",\"WTN\":\"Europe/London\",\"WTO\":\"Pacific/Majuro\",\"WTP\":\"Pacific/Port_Moresby\",\"WTR\":\"America/Phoenix\",\"WTS\":\"Indian/Antananarivo\",\"WTT\":\"Pacific/Port_Moresby\",\"WTZ\":\"Pacific/Auckland\",\"WUA\":\"Asia/Shanghai\",\"WUD\":\"Australia/Adelaide\",\"WUG\":\"Pacific/Port_Moresby\",\"WUH\":\"Asia/Shanghai\",\"WUI\":\"Australia/Perth\",\"WUM\":\"Pacific/Port_Moresby\",\"WUN\":\"Australia/Perth\",\"WUS\":\"Asia/Shanghai\",\"WUT\":\"Asia/Shanghai\",\"WUU\":\"Africa/Juba\",\"WUV\":\"Pacific/Port_Moresby\",\"WUX\":\"Asia/Shanghai\",\"WUZ\":\"Asia/Shanghai\",\"WVB\":\"Africa/Windhoek\",\"WVI\":\"America/Los_Angeles\",\"WVK\":\"Indian/Antananarivo\",\"WVL\":\"America/New_York\",\"WVN\":\"Europe/Berlin\",\"WWA\":\"America/Anchorage\",\"WWD\":\"America/New_York\",\"WWI\":\"Australia/Perth\",\"WWK\":\"Pacific/Port_Moresby\",\"WWP\":\"America/Anchorage\",\"WWR\":\"America/Chicago\",\"WWT\":\"America/Anchorage\",\"WWY\":\"Australia/Sydney\",\"WXN\":\"Asia/Shanghai\",\"WYA\":\"Australia/Adelaide\",\"WYB\":\"America/Anchorage\",\"WYE\":\"Africa/Freetown\",\"WYN\":\"Australia/Perth\",\"WYS\":\"America/Denver\",\"WZA\":\"Africa/Accra\",\"WZQ\":\"Asia/Shanghai\",\"WZY\":\"America/Nassau\",\"XAI\":\"Asia/Shanghai\",\"XAL\":\"America/Hermosillo\",\"XAP\":\"America/Sao_Paulo\",\"XAR\":\"Africa/Ouagadougou\",\"XAU\":\"America/Cayenne\",\"XAY\":\"Asia/Vientiane\",\"XBB\":\"America/Vancouver\",\"XBE\":\"America/Winnipeg\",\"XBG\":\"Africa/Ouagadougou\",\"XBJ\":\"Asia/Tehran\",\"XBL\":\"Africa/Addis_Ababa\",\"XBN\":\"Pacific/Port_Moresby\",\"XBO\":\"Africa/Ouagadougou\",\"XBR\":\"America/Toronto\",\"XCH\":\"Indian/Christmas\",\"XCL\":\"America/Regina\",\"XCM\":\"America/Toronto\",\"XCN\":\"Asia/Manila\",\"XCO\":\"Australia/Sydney\",\"XCR\":\"Europe/Paris\",\"XDE\":\"Africa/Ouagadougou\",\"XDJ\":\"Africa/Ouagadougou\",\"XEN\":\"Asia/Shanghai\",\"XEO\":\"America/Godthab\",\"XEQ\":\"America/Godthab\",\"XES\":\"America/Chicago\",\"XEX\":\"Europe/Paris\",\"XFN\":\"Asia/Shanghai\",\"XFW\":\"Europe/Berlin\",\"XGA\":\"Africa/Ouagadougou\",\"XGB\":\"Europe/Paris\",\"XGG\":\"Africa/Ouagadougou\",\"XGL\":\"America/Winnipeg\",\"XGN\":\"Africa/Luanda\",\"XGR\":\"America/Toronto\",\"XIC\":\"Asia/Shanghai\",\"XIE\":\"Asia/Vientiane\",\"XIG\":\"America/Belem\",\"XIJ\":\"Asia/Kuwait\",\"XIL\":\"Asia/Shanghai\",\"XIN\":\"Asia/Shanghai\",\"XIQ\":\"America/Godthab\",\"XIY\":\"Asia/Shanghai\",\"XJD\":\"Asia/Qatar\",\"XKA\":\"Africa/Ouagadougou\",\"XKH\":\"Asia/Vientiane\",\"XKO\":\"America/Vancouver\",\"XKS\":\"America/Winnipeg\",\"XKY\":\"Africa/Ouagadougou\",\"XLB\":\"America/Winnipeg\",\"XLF\":\"America/Toronto\",\"XLO\":\"Asia/Ho_Chi_Minh\",\"XLS\":\"Africa/Dakar\",\"XLU\":\"Africa/Ouagadougou\",\"XLW\":\"Europe/Berlin\",\"XMA\":\"Asia/Manila\",\"XMC\":\"Australia/Sydney\",\"XMD\":\"America/Chicago\",\"XMG\":\"Asia/Kathmandu\",\"XMH\":\"Pacific/Tahiti\",\"XMI\":\"Africa/Dar_es_Salaam\",\"XML\":\"Australia/Adelaide\",\"XMN\":\"Asia/Shanghai\",\"XMP\":\"America/Vancouver\",\"XMS\":\"America/Guayaquil\",\"XMY\":\"Australia/Brisbane\",\"XNA\":\"America/Chicago\",\"XNG\":\"Asia/Ho_Chi_Minh\",\"XNH\":\"Asia/Baghdad\",\"XNN\":\"Asia/Shanghai\",\"XNT\":\"Asia/Shanghai\",\"XNU\":\"Africa/Ouagadougou\",\"XPA\":\"Africa/Ouagadougou\",\"XPD\":\"America/Argentina/Buenos_Aires\",\"XPK\":\"America/Winnipeg\",\"XPL\":\"America/Tegucigalpa\",\"XPP\":\"America/Winnipeg\",\"XPR\":\"America/Denver\",\"XPU\":\"America/Anchorage\",\"XQC\":\"Asia/Baghdad\",\"XQP\":\"America/Costa_Rica\",\"XQU\":\"America/Vancouver\",\"XRH\":\"Australia/Sydney\",\"XRR\":\"America/Vancouver\",\"XRY\":\"Europe/Madrid\",\"XSB\":\"Asia/Dubai\",\"XSC\":\"America/Grand_Turk\",\"XSD\":\"America/Los_Angeles\",\"XSE\":\"Africa/Ouagadougou\",\"XSI\":\"America/Winnipeg\",\"XSM\":\"America/New_York\",\"XSO\":\"Asia/Manila\",\"XSP\":\"Asia/Singapore\",\"XTG\":\"Australia/Brisbane\",\"XTL\":\"America/Winnipeg\",\"XTO\":\"Australia/Brisbane\",\"XTR\":\"Australia/Brisbane\",\"XUZ\":\"Asia/Shanghai\",\"XVL\":\"Asia/Ho_Chi_Minh\",\"XWA\":\"America/Chicago\",\"XYA\":\"Pacific/Guadalcanal\",\"XYE\":\"Asia/Yangon\",\"XYR\":\"Pacific/Port_Moresby\",\"XYT\":\"Europe/Paris\",\"XZA\":\"Africa/Ouagadougou\",\"XZD\":\"Europe/Oslo\",\"YAA\":\"America/Vancouver\",\"YAB\":\"America/Iqaluit\",\"YAC\":\"America/Winnipeg\",\"YAD\":\"America/Winnipeg\",\"YAE\":\"America/Vancouver\",\"YAF\":\"America/Toronto\",\"YAG\":\"America/Winnipeg\",\"YAH\":\"America/Toronto\",\"YAI\":\"America/Santiago\",\"YAJ\":\"America/Vancouver\",\"YAK\":\"America/Anchorage\",\"YAL\":\"America/Vancouver\",\"YAM\":\"America/Toronto\",\"YAN\":\"Africa/Lubumbashi\",\"YAO\":\"Africa/Douala\",\"YAP\":\"Pacific/Chuuk\",\"YAQ\":\"America/Vancouver\",\"YAR\":\"America/Toronto\",\"YAS\":\"Pacific/Fiji\",\"YAT\":\"America/Toronto\",\"YAU\":\"America/Toronto\",\"YAV\":\"America/Vancouver\",\"YAW\":\"America/Halifax\",\"YAX\":\"America/Winnipeg\",\"YAY\":\"America/St_Johns\",\"YAZ\":\"America/Vancouver\",\"YBA\":\"America/Edmonton\",\"YBB\":\"America/Edmonton\",\"YBC\":\"America/Toronto\",\"YBD\":\"America/Vancouver\",\"YBE\":\"America/Regina\",\"YBF\":\"America/Vancouver\",\"YBG\":\"America/Toronto\",\"YBH\":\"America/Vancouver\",\"YBI\":\"America/Halifax\",\"YBJ\":\"America/Toronto\",\"YBK\":\"America/Winnipeg\",\"YBL\":\"America/Vancouver\",\"YBM\":\"America/Vancouver\",\"YBN\":\"America/Toronto\",\"YBO\":\"America/Vancouver\",\"YBP\":\"Asia/Shanghai\",\"YBQ\":\"America/Vancouver\",\"YBR\":\"America/Winnipeg\",\"YBS\":\"America/Toronto\",\"YBT\":\"America/Winnipeg\",\"YBV\":\"America/Winnipeg\",\"YBW\":\"America/Vancouver\",\"YBX\":\"America/Blanc-Sablon\",\"YBY\":\"America/Edmonton\",\"YCA\":\"America/Vancouver\",\"YCB\":\"America/Edmonton\",\"YCC\":\"America/Toronto\",\"YCD\":\"America/Vancouver\",\"YCE\":\"America/Toronto\",\"YCF\":\"America/Vancouver\",\"YCG\":\"America/Vancouver\",\"YCH\":\"America/Halifax\",\"YCI\":\"America/Toronto\",\"YCJ\":\"America/Vancouver\",\"YCK\":\"America/Edmonton\",\"YCL\":\"America/Halifax\",\"YCM\":\"America/Toronto\",\"YCN\":\"America/Toronto\",\"YCO\":\"America/Edmonton\",\"YCQ\":\"America/Dawson_Creek\",\"YCR\":\"America/Winnipeg\",\"YCS\":\"America/Winnipeg\",\"YCT\":\"America/Edmonton\",\"YCU\":\"Asia/Shanghai\",\"YCW\":\"America/Vancouver\",\"YCX\":\"America/Halifax\",\"YCY\":\"America/Toronto\",\"YCZ\":\"America/Edmonton\",\"YDA\":\"America/Vancouver\",\"YDB\":\"America/Vancouver\",\"YDC\":\"America/Edmonton\",\"YDE\":\"America/Halifax\",\"YDF\":\"America/St_Johns\",\"YDG\":\"America/Halifax\",\"YDH\":\"America/St_Johns\",\"YDI\":\"America/Halifax\",\"YDJ\":\"America/Regina\",\"YDK\":\"America/Toronto\",\"YDL\":\"America/Vancouver\",\"YDN\":\"America/Winnipeg\",\"YDO\":\"America/Toronto\",\"YDP\":\"America/Halifax\",\"YDQ\":\"America/Dawson_Creek\",\"YDR\":\"America/Regina\",\"YDS\":\"America/Vancouver\",\"YDT\":\"America/Vancouver\",\"YDU\":\"America/Winnipeg\",\"YDV\":\"America/Winnipeg\",\"YDW\":\"America/Winnipeg\",\"YDX\":\"America/Vancouver\",\"YEC\":\"Asia/Seoul\",\"YED\":\"America/Edmonton\",\"YEG\":\"America/Edmonton\",\"YEI\":\"Europe/Istanbul\",\"YEK\":\"America/Winnipeg\",\"YEL\":\"America/Toronto\",\"YEM\":\"America/Toronto\",\"YEN\":\"America/Regina\",\"YEO\":\"Europe/London\",\"YEP\":\"America/Vancouver\",\"YEQ\":\"Pacific/Port_Moresby\",\"YER\":\"America/Toronto\",\"YES\":\"Asia/Tehran\",\"YET\":\"America/Edmonton\",\"YEU\":\"America/Winnipeg\",\"YEV\":\"America/Edmonton\",\"YEY\":\"America/Toronto\",\"YFA\":\"America/Toronto\",\"YFB\":\"America/Toronto\",\"YFC\":\"America/Halifax\",\"YFE\":\"America/Toronto\",\"YFG\":\"America/Toronto\",\"YFH\":\"America/Toronto\",\"YFI\":\"America/Edmonton\",\"YFJ\":\"America/Edmonton\",\"YFL\":\"America/Vancouver\",\"YFO\":\"America/Winnipeg\",\"YFR\":\"America/Edmonton\",\"YFS\":\"America/Edmonton\",\"YFX\":\"America/St_Johns\",\"YGA\":\"America/Toronto\",\"YGB\":\"America/Vancouver\",\"YGC\":\"America/Edmonton\",\"YGE\":\"America/Vancouver\",\"YGG\":\"America/Vancouver\",\"YGH\":\"America/Edmonton\",\"YGJ\":\"Asia/Tokyo\",\"YGK\":\"America/Toronto\",\"YGL\":\"America/Toronto\",\"YGM\":\"America/Winnipeg\",\"YGN\":\"America/Vancouver\",\"YGO\":\"America/Winnipeg\",\"YGP\":\"America/Toronto\",\"YGQ\":\"America/Toronto\",\"YGR\":\"America/Halifax\",\"YGS\":\"America/Vancouver\",\"YGT\":\"America/Toronto\",\"YGV\":\"America/Toronto\",\"YGW\":\"America/Toronto\",\"YGX\":\"America/Winnipeg\",\"YGY\":\"America/Toronto\",\"YGZ\":\"America/Toronto\",\"YHA\":\"America/St_Johns\",\"YHB\":\"America/Regina\",\"YHC\":\"America/Vancouver\",\"YHD\":\"America/Winnipeg\",\"YHE\":\"America/Vancouver\",\"YHF\":\"America/Toronto\",\"YHG\":\"America/St_Johns\",\"YHH\":\"America/Vancouver\",\"YHI\":\"America/Edmonton\",\"YHK\":\"America/Edmonton\",\"YHM\":\"America/Toronto\",\"YHN\":\"America/Toronto\",\"YHO\":\"America/Halifax\",\"YHP\":\"America/Winnipeg\",\"YHR\":\"America/Blanc-Sablon\",\"YHS\":\"America/Vancouver\",\"YHT\":\"America/Vancouver\",\"YHU\":\"America/Toronto\",\"YHY\":\"America/Edmonton\",\"YHZ\":\"America/Halifax\",\"YIA\":\"Asia/Jakarta\",\"YIB\":\"America/Atikokan\",\"YIC\":\"Asia/Shanghai\",\"YIE\":\"Asia/Shanghai\",\"YIF\":\"America/Blanc-Sablon\",\"YIG\":\"America/Vancouver\",\"YIH\":\"Asia/Shanghai\",\"YIK\":\"America/Toronto\",\"YIN\":\"Asia/Shanghai\",\"YIO\":\"America/Toronto\",\"YIP\":\"America/New_York\",\"YIV\":\"America/Winnipeg\",\"YIW\":\"Asia/Shanghai\",\"YJA\":\"America/Edmonton\",\"YJF\":\"America/Edmonton\",\"YJN\":\"America/Toronto\",\"YJO\":\"America/Vancouver\",\"YJP\":\"America/Edmonton\",\"YJT\":\"America/St_Johns\",\"YKA\":\"America/Vancouver\",\"YKC\":\"America/Regina\",\"YKD\":\"America/Toronto\",\"YKE\":\"America/Winnipeg\",\"YKF\":\"America/Toronto\",\"YKG\":\"America/Toronto\",\"YKH\":\"Asia/Shanghai\",\"YKJ\":\"America/Regina\",\"YKK\":\"America/Vancouver\",\"YKL\":\"America/Toronto\",\"YKM\":\"America/Los_Angeles\",\"YKN\":\"America/Chicago\",\"YKO\":\"Europe/Istanbul\",\"YKQ\":\"America/Toronto\",\"YKS\":\"Asia/Yakutsk\",\"YKT\":\"America/Vancouver\",\"YKU\":\"America/Toronto\",\"YKX\":\"America/Toronto\",\"YKY\":\"America/Regina\",\"YKZ\":\"America/Toronto\",\"YLA\":\"America/Vancouver\",\"YLB\":\"America/Edmonton\",\"YLC\":\"America/Toronto\",\"YLD\":\"America/Toronto\",\"YLE\":\"America/Edmonton\",\"YLF\":\"America/Toronto\",\"YLG\":\"Australia/Perth\",\"YLH\":\"America/Toronto\",\"YLI\":\"Europe/Helsinki\",\"YLJ\":\"America/Regina\",\"YLL\":\"America/Edmonton\",\"YLM\":\"America/Vancouver\",\"YLN\":\"Asia/Shanghai\",\"YLO\":\"America/Winnipeg\",\"YLP\":\"America/Toronto\",\"YLQ\":\"America/Toronto\",\"YLR\":\"America/Winnipeg\",\"YLS\":\"America/Toronto\",\"YLT\":\"America/Winnipeg\",\"YLW\":\"America/Vancouver\",\"YLX\":\"Asia/Shanghai\",\"YLY\":\"America/Vancouver\",\"YMA\":\"America/Vancouver\",\"YMB\":\"America/Vancouver\",\"YMC\":\"America/Toronto\",\"YMD\":\"America/Edmonton\",\"YME\":\"America/Toronto\",\"YMF\":\"America/Vancouver\",\"YMG\":\"America/Toronto\",\"YMH\":\"America/St_Johns\",\"YMI\":\"America/Winnipeg\",\"YMJ\":\"America/Regina\",\"YMK\":\"Asia/Yekaterinburg\",\"YML\":\"America/Toronto\",\"YMM\":\"America/Edmonton\",\"YMN\":\"America/Halifax\",\"YMO\":\"America/Toronto\",\"YMP\":\"America/Vancouver\",\"YMR\":\"America/Vancouver\",\"YMS\":\"America/Lima\",\"YMT\":\"America/Toronto\",\"YMU\":\"America/Vancouver\",\"YMV\":\"America/Iqaluit\",\"YMW\":\"America/Toronto\",\"YMX\":\"America/Toronto\",\"YNA\":\"America/Toronto\",\"YNB\":\"Asia/Riyadh\",\"YNC\":\"America/Toronto\",\"YND\":\"America/Toronto\",\"YNE\":\"America/Winnipeg\",\"YNG\":\"America/New_York\",\"YNH\":\"America/Edmonton\",\"YNI\":\"America/Toronto\",\"YNJ\":\"Asia/Shanghai\",\"YNK\":\"America/Vancouver\",\"YNL\":\"America/Regina\",\"YNM\":\"America/Toronto\",\"YNN\":\"Australia/Perth\",\"YNO\":\"America/Winnipeg\",\"YNP\":\"America/Halifax\",\"YNR\":\"America/Winnipeg\",\"YNS\":\"America/Toronto\",\"YNT\":\"Asia/Shanghai\",\"YNY\":\"Asia/Seoul\",\"YNZ\":\"Asia/Shanghai\",\"YOA\":\"America/Edmonton\",\"YOC\":\"America/Vancouver\",\"YOD\":\"America/Edmonton\",\"YOE\":\"America/Edmonton\",\"YOG\":\"America/Toronto\",\"YOH\":\"America/Winnipeg\",\"YOJ\":\"America/Edmonton\",\"YOK\":\"Asia/Tokyo\",\"YOL\":\"Africa/Lagos\",\"YON\":\"Asia/Thimphu\",\"YOO\":\"America/Toronto\",\"YOP\":\"America/Edmonton\",\"YOS\":\"America/Toronto\",\"YOT\":\"Asia/Jerusalem\",\"YOW\":\"America/Toronto\",\"YOY\":\"America/Toronto\",\"YPA\":\"America/Regina\",\"YPB\":\"America/Vancouver\",\"YPC\":\"America/Edmonton\",\"YPD\":\"America/Toronto\",\"YPE\":\"America/Edmonton\",\"YPF\":\"America/Vancouver\",\"YPG\":\"America/Winnipeg\",\"YPH\":\"America/Toronto\",\"YPI\":\"America/Vancouver\",\"YPJ\":\"America/Toronto\",\"YPL\":\"America/Atikokan\",\"YPM\":\"America/Winnipeg\",\"YPN\":\"America/Toronto\",\"YPO\":\"America/Toronto\",\"YPP\":\"America/Edmonton\",\"YPQ\":\"America/Toronto\",\"YPR\":\"America/Vancouver\",\"YPS\":\"America/Halifax\",\"YPT\":\"America/Vancouver\",\"YPW\":\"America/Vancouver\",\"YPX\":\"America/Toronto\",\"YPY\":\"America/Edmonton\",\"YPZ\":\"America/Vancouver\",\"YQA\":\"America/Toronto\",\"YQB\":\"America/Toronto\",\"YQC\":\"America/Toronto\",\"YQD\":\"America/Winnipeg\",\"YQE\":\"America/Vancouver\",\"YQF\":\"America/Edmonton\",\"YQG\":\"America/Toronto\",\"YQH\":\"America/Vancouver\",\"YQI\":\"America/Halifax\",\"YQJ\":\"America/Vancouver\",\"YQK\":\"America/Winnipeg\",\"YQL\":\"America/Edmonton\",\"YQM\":\"America/Halifax\",\"YQN\":\"America/Toronto\",\"YQQ\":\"America/Vancouver\",\"YQR\":\"America/Regina\",\"YQS\":\"America/Toronto\",\"YQT\":\"America/Toronto\",\"YQU\":\"America/Edmonton\",\"YQV\":\"America/Regina\",\"YQW\":\"America/Regina\",\"YQX\":\"America/St_Johns\",\"YQY\":\"America/Halifax\",\"YQZ\":\"America/Vancouver\",\"YR6\":\"America/Vancouver\",\"YRA\":\"America/Edmonton\",\"YRB\":\"America/Winnipeg\",\"YRC\":\"America/Vancouver\",\"YRD\":\"America/Vancouver\",\"YRE\":\"America/Winnipeg\",\"YRF\":\"America/Halifax\",\"YRG\":\"America/Halifax\",\"YRI\":\"America/Toronto\",\"YRJ\":\"America/Toronto\",\"YRL\":\"America/Winnipeg\",\"YRM\":\"America/Edmonton\",\"YRN\":\"America/Vancouver\",\"YRO\":\"America/Toronto\",\"YRQ\":\"America/Toronto\",\"YRR\":\"America/Vancouver\",\"YRS\":\"America/Winnipeg\",\"YRT\":\"America/Winnipeg\",\"YRV\":\"America/Vancouver\",\"YSA\":\"America/Halifax\",\"YSB\":\"America/Toronto\",\"YSC\":\"America/Toronto\",\"YSD\":\"America/Edmonton\",\"YSE\":\"America/Vancouver\",\"YSF\":\"America/Regina\",\"YSG\":\"America/Edmonton\",\"YSH\":\"America/Toronto\",\"YSI\":\"America/Toronto\",\"YSJ\":\"America/Halifax\",\"YSK\":\"America/Toronto\",\"YSL\":\"America/Halifax\",\"YSM\":\"America/Edmonton\",\"YSN\":\"America/Vancouver\",\"YSO\":\"America/Halifax\",\"YSP\":\"America/Toronto\",\"YSQ\":\"Asia/Shanghai\",\"YSR\":\"America/Toronto\",\"YST\":\"America/Winnipeg\",\"YSU\":\"America/Halifax\",\"YSV\":\"America/Halifax\",\"YSX\":\"America/Vancouver\",\"YSY\":\"America/Edmonton\",\"YSZ\":\"America/Vancouver\",\"YTA\":\"America/Toronto\",\"YTB\":\"America/Vancouver\",\"YTC\":\"America/Vancouver\",\"YTD\":\"America/Winnipeg\",\"YTE\":\"America/Toronto\",\"YTF\":\"America/Toronto\",\"YTG\":\"America/Vancouver\",\"YTH\":\"America/Winnipeg\",\"YTJ\":\"America/Toronto\",\"YTK\":\"America/Toronto\",\"YTL\":\"America/Winnipeg\",\"YTM\":\"America/Toronto\",\"YTN\":\"America/Toronto\",\"YTP\":\"America/Vancouver\",\"YTQ\":\"America/Toronto\",\"YTR\":\"America/Toronto\",\"YTS\":\"America/Toronto\",\"YTT\":\"America/Regina\",\"YTU\":\"America/Vancouver\",\"YTX\":\"America/Vancouver\",\"YTY\":\"Asia/Shanghai\",\"YTZ\":\"America/Toronto\",\"YUA\":\"Asia/Shanghai\",\"YUB\":\"America/Edmonton\",\"YUD\":\"America/Toronto\",\"YUE\":\"Australia/Darwin\",\"YUF\":\"America/Edmonton\",\"YUL\":\"America/Toronto\",\"YUM\":\"America/Phoenix\",\"YUS\":\"Asia/Shanghai\",\"YUT\":\"America/Winnipeg\",\"YUX\":\"America/Toronto\",\"YUY\":\"America/Toronto\",\"YVB\":\"America/Toronto\",\"YVC\":\"America/Regina\",\"YVD\":\"Pacific/Port_Moresby\",\"YVE\":\"America/Vancouver\",\"YVG\":\"America/Edmonton\",\"YVM\":\"America/Toronto\",\"YVO\":\"America/Toronto\",\"YVP\":\"America/Toronto\",\"YVQ\":\"America/Edmonton\",\"YVR\":\"America/Vancouver\",\"YVT\":\"America/Regina\",\"YVV\":\"America/Toronto\",\"YVZ\":\"America/Winnipeg\",\"YWA\":\"America/Toronto\",\"YWB\":\"America/Toronto\",\"YWF\":\"America/Halifax\",\"YWG\":\"America/Winnipeg\",\"YWH\":\"America/Vancouver\",\"YWJ\":\"America/Edmonton\",\"YWK\":\"America/Halifax\",\"YWL\":\"America/Vancouver\",\"YWM\":\"America/St_Johns\",\"YWN\":\"America/Toronto\",\"YWO\":\"America/Edmonton\",\"YWP\":\"America/Toronto\",\"YWQ\":\"America/Toronto\",\"YWR\":\"America/Toronto\",\"YWS\":\"America/Vancouver\",\"YWY\":\"America/Edmonton\",\"YXC\":\"America/Edmonton\",\"YXE\":\"America/Regina\",\"YXF\":\"America/Vancouver\",\"YXH\":\"America/Edmonton\",\"YXI\":\"America/Toronto\",\"YXJ\":\"America/Dawson_Creek\",\"YXK\":\"America/Toronto\",\"YXL\":\"America/Winnipeg\",\"YXN\":\"America/Winnipeg\",\"YXP\":\"America/Toronto\",\"YXQ\":\"America/Vancouver\",\"YXR\":\"America/Toronto\",\"YXS\":\"America/Vancouver\",\"YXT\":\"America/Vancouver\",\"YXU\":\"America/Toronto\",\"YXX\":\"America/Vancouver\",\"YXY\":\"America/Vancouver\",\"YXZ\":\"America/Toronto\",\"YYA\":\"Asia/Shanghai\",\"YYB\":\"America/Toronto\",\"YYC\":\"America/Edmonton\",\"YYD\":\"America/Vancouver\",\"YYE\":\"America/Dawson_Creek\",\"YYF\":\"America/Vancouver\",\"YYG\":\"America/Halifax\",\"YYH\":\"America/Edmonton\",\"YYI\":\"America/Winnipeg\",\"YYJ\":\"America/Vancouver\",\"YYL\":\"America/Winnipeg\",\"YYM\":\"America/Edmonton\",\"YYN\":\"America/Regina\",\"YYQ\":\"America/Winnipeg\",\"YYR\":\"America/Halifax\",\"YYT\":\"America/St_Johns\",\"YYU\":\"America/Toronto\",\"YYW\":\"America/Toronto\",\"YYY\":\"America/Toronto\",\"YYZ\":\"America/Toronto\",\"YZA\":\"America/Vancouver\",\"YZC\":\"America/Vancouver\",\"YZE\":\"America/Toronto\",\"YZF\":\"America/Edmonton\",\"YZG\":\"America/Toronto\",\"YZH\":\"America/Edmonton\",\"YZM\":\"America/St_Johns\",\"YZP\":\"America/Vancouver\",\"YZR\":\"America/Toronto\",\"YZS\":\"America/Atikokan\",\"YZT\":\"America/Vancouver\",\"YZU\":\"America/Edmonton\",\"YZV\":\"America/Toronto\",\"YZW\":\"America/Vancouver\",\"YZX\":\"America/Halifax\",\"YZY\":\"Asia/Shanghai\",\"YZZ\":\"America/Vancouver\",\"ZAA\":\"America/Vancouver\",\"ZAC\":\"America/Winnipeg\",\"ZAD\":\"Europe/Zagreb\",\"ZAG\":\"Europe/Zagreb\",\"ZAH\":\"Asia/Tehran\",\"ZAJ\":\"Asia/Kabul\",\"ZAL\":\"America/Santiago\",\"ZAM\":\"Asia/Manila\",\"ZAO\":\"Europe/Paris\",\"ZAR\":\"Africa/Lagos\",\"ZAT\":\"Asia/Shanghai\",\"ZAZ\":\"Europe/Madrid\",\"ZBE\":\"Europe/Prague\",\"ZBF\":\"America/Halifax\",\"ZBK\":\"Europe/Podgorica\",\"ZBL\":\"Australia/Brisbane\",\"ZBM\":\"America/Toronto\",\"ZBO\":\"Australia/Brisbane\",\"ZBR\":\"Asia/Tehran\",\"ZBY\":\"Asia/Vientiane\",\"ZCL\":\"America/Mexico_City\",\"ZCO\":\"America/Santiago\",\"ZDY\":\"Asia/Dubai\",\"ZEC\":\"Africa/Johannesburg\",\"ZEG\":\"Asia/Jayapura\",\"ZEL\":\"America/Vancouver\",\"ZEM\":\"America/Toronto\",\"ZEN\":\"Pacific/Port_Moresby\",\"ZER\":\"Asia/Kolkata\",\"ZFA\":\"America/Vancouver\",\"ZFB\":\"America/Halifax\",\"ZFD\":\"America/Regina\",\"ZFL\":\"America/Winnipeg\",\"ZFM\":\"America/Edmonton\",\"ZFN\":\"America/Edmonton\",\"ZFW\":\"America/Edmonton\",\"ZGF\":\"America/Vancouver\",\"ZGI\":\"America/Winnipeg\",\"ZGL\":\"Australia/Brisbane\",\"ZGM\":\"Africa/Lusaka\",\"ZGR\":\"America/Winnipeg\",\"ZGS\":\"America/Blanc-Sablon\",\"ZGU\":\"Pacific/Efate\",\"ZHA\":\"Asia/Shanghai\",\"ZHM\":\"Asia/Dhaka\",\"ZHP\":\"America/Edmonton\",\"ZHY\":\"Asia/Shanghai\",\"ZIA\":\"Europe/Moscow\",\"ZIC\":\"America/Santiago\",\"ZIG\":\"Africa/Dakar\",\"ZIH\":\"America/Mexico_City\",\"ZIS\":\"Africa/Tripoli\",\"ZIX\":\"Asia/Yakutsk\",\"ZIZ\":\"Asia/Karachi\",\"ZJG\":\"America/Winnipeg\",\"ZJN\":\"America/Winnipeg\",\"ZKB\":\"Africa/Lusaka\",\"ZKE\":\"America/Toronto\",\"ZKG\":\"America/Blanc-Sablon\",\"ZKL\":\"Asia/Shanghai\",\"ZKM\":\"Africa/Libreville\",\"ZKP\":\"Asia/Magadan\",\"ZLO\":\"America/Mexico_City\",\"ZLT\":\"America/Blanc-Sablon\",\"ZLX\":\"Africa/Khartoum\",\"ZMD\":\"America/Rio_Branco\",\"ZMH\":\"America/Vancouver\",\"ZMM\":\"America/Mexico_City\",\"ZMT\":\"America/Vancouver\",\"ZNA\":\"America/Vancouver\",\"ZNC\":\"America/Anchorage\",\"ZND\":\"Africa/Niamey\",\"ZNE\":\"Australia/Perth\",\"ZNU\":\"America/Vancouver\",\"ZNZ\":\"Africa/Dar_es_Salaam\",\"ZOF\":\"America/Vancouver\",\"ZOS\":\"America/Santiago\",\"ZPB\":\"America/Winnipeg\",\"ZPC\":\"America/Santiago\",\"ZPH\":\"America/New_York\",\"ZPO\":\"America/Winnipeg\",\"ZQN\":\"Pacific/Auckland\",\"ZQS\":\"America/Vancouver\",\"ZQW\":\"Europe/Berlin\",\"ZQZ\":\"Asia/Shanghai\",\"ZRH\":\"Europe/Zurich\",\"ZRI\":\"Asia/Jayapura\",\"ZRJ\":\"America/Winnipeg\",\"ZRM\":\"Asia/Jayapura\",\"ZSA\":\"America/Nassau\",\"ZSE\":\"Indian/Reunion\",\"ZSJ\":\"America/Winnipeg\",\"ZSP\":\"America/Toronto\",\"ZSS\":\"Africa/Abidjan\",\"ZST\":\"America/Vancouver\",\"ZSW\":\"America/Vancouver\",\"ZTA\":\"Pacific/Tahiti\",\"ZTB\":\"America/Blanc-Sablon\",\"ZTH\":\"Europe/Athens\",\"ZTM\":\"America/Winnipeg\",\"ZTR\":\"Europe/Kiev\",\"ZTS\":\"America/Vancouver\",\"ZTU\":\"Asia/Baku\",\"ZUC\":\"America/Winnipeg\",\"ZUD\":\"America/Santiago\",\"ZUE\":\"Africa/Abidjan\",\"ZUH\":\"Asia/Shanghai\",\"ZUL\":\"Asia/Riyadh\",\"ZUM\":\"America/Halifax\",\"ZVA\":\"Indian/Antananarivo\",\"ZVG\":\"Australia/Perth\",\"ZVK\":\"Asia/Vientiane\",\"ZWA\":\"Indian/Antananarivo\",\"ZWL\":\"America/Regina\",\"ZWN\":\"Europe/Berlin\",\"ZXQ\":\"Europe/Oslo\",\"ZXT\":\"Asia/Baku\",\"ZYI\":\"Asia/Shanghai\",\"ZYL\":\"Asia/Dhaka\",\"ZZO\":\"Asia/Vladivostok\",\"ZZU\":\"Africa/Blantyre\",\"ZZV\":\"America/New_York\"}");

/***/ }),
/* 11 */
/***/ (function(module, exports, __webpack_require__) {

var map = {
	"./airlines/aa.js": 12,
	"./airlines/aaSabre.js": 49,
	"./airlines/ac.js": 13,
	"./airlines/af.js": 14,
	"./airlines/as.js": 15,
	"./airlines/az.js": 16,
	"./airlines/ba.js": 17,
	"./airlines/cz.js": 18,
	"./airlines/dl.js": 19,
	"./airlines/ek.js": 20,
	"./airlines/ey.js": 21,
	"./airlines/ib.js": 22,
	"./airlines/kl.js": 23,
	"./airlines/la.js": 24,
	"./airlines/lh.js": 25,
	"./airlines/lx.js": 26,
	"./airlines/oa.js": 27,
	"./airlines/ps.js": 28,
	"./airlines/qf.js": 29,
	"./airlines/qr.js": 30,
	"./airlines/tk.js": 31,
	"./index.js": 3,
	"./meta/googleFlights.js": 32,
	"./meta/jetcost.js": 33,
	"./meta/kayak.js": 34,
	"./meta/momondo.js": 35,
	"./meta/skyscanner.js": 36,
	"./meta/tripadvisor.js": 37,
	"./otas/cheapoair.js": 38,
	"./otas/edestinos.js": 39,
	"./otas/edreams.js": 40,
	"./otas/etraveli.js": 41,
	"./otas/expedia.js": 42,
	"./otas/flightnetwork.js": 43,
	"./otas/hop2.js": 44,
	"./otas/lucky2go.js": 45,
	"./otas/priceline.js": 46,
	"./other/gcm.js": 47,
	"./other/wheretocredit.js": 48
};


function webpackContext(req) {
	var id = webpackContextResolve(req);
	return __webpack_require__(id);
}
function webpackContextResolve(req) {
	if(!__webpack_require__.o(map, req)) {
		var e = new Error("Cannot find module '" + req + "'");
		e.code = 'MODULE_NOT_FOUND';
		throw e;
	}
	return map[req];
}
webpackContext.keys = function webpackContextKeys() {
	return Object.keys(map);
};
webpackContext.resolve = webpackContextResolve;
module.exports = webpackContext;
webpackContext.id = 11;

/***/ }),
/* 12 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1);
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);
/* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);





const aaEditions = [
  { value: "en_AU", name: "Australia" },
  { value: "en_BE", name: "Belgium" },
  { value: "en_CN", name: "China" },
  { value: "en_DK", name: "Denmark" },
  { value: "en_FI", name: "Finland" },
  { value: "en_FR", name: "France / English" },
  { value: "fr_FR", name: "France / French" },
  { value: "en_DE", name: "Germany / English" },
  { value: "de_DE", name: "Germany / Deutsch" },
  { value: "en_GR", name: "Greece" },
  { value: "en_HK", name: "Hong Kong" },
  { value: "en_IN", name: "India" },
  { value: "en_IE", name: "Ireland" },
  { value: "en_IL", name: "Israel" },
  { value: "en_IT", name: "Italy" },
  { value: "en_JP", name: "Japan" },
  { value: "en_KR", name: "Korea" },
  { value: "en_NL", name: "Netherlands" },
  { value: "en_NZ", name: "New Zealand" },
  { value: "en_NO", name: "Norway" },
  { value: "en_PT", name: "Portugal" },
  { value: "en_RU", name: "Russia" },
  { value: "en_ES", name: "Spain / English" },
  { value: "es_ES", name: "Spain / Spanish" },
  { value: "en_SE", name: "Sweden" },
  { value: "en_CH", name: "Switzerland" }
];

function printAA() {
  if (!Object(___WEBPACK_IMPORTED_MODULE_2__["anyCarriers"])("AA")) {
    return;
  }

  var createUrl = function(edition) {
    var url =
      "http://i11l-services.aa.com/xaa/mseGateway/entryPoint.php?PARAM=";
    var search = "1,,USD0.00," + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length + ",";
    var legs = new Array();
    var leg = "";
    var segs = new Array();
    var seg = "";

    //Build multi-city search based on legs
    for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) {
      // walks each leg
      segs = new Array();
      for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) {
        //walks each segment of leg
        var k = 0;
        // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover
        while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length - 1) {
          if (
            _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].fnr !=
              _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr ||
            _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440
          )
            break;
          k++;
        }
        seg =
          _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].arr.year +
          "-" +
          ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].arr.month).slice(-2) +
          "-" +
          ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].arr.day).slice(-2) +
          "T" +
          ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].arr.time).slice(-5) +
          (typeof _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].arr.offset == "undefined"
            ? "+00:00"
            : _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].arr.offset) +
          ",";
        seg += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].bookingclass + ",";
        seg +=
          _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year +
          "-" +
          ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) +
          "-" +
          ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2) +
          "T" +
          ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.time).slice(-5) +
          (typeof _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.offset == "undefined"
            ? "+00:00"
            : _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.offset) +
          ",";
        seg += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].dest + ",";
        seg +=
          _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].carrier +
          _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].fnr +
          ",";
        seg += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig; // NO , here!
        segs.push(seg);
        j += k;
      }
      search += segs.length + "," + segs.join() + ",";
      //build leg structure
      leg =
        _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dep.year +
        "-" +
        ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dep.month).slice(-2) +
        "-" +
        ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dep.day).slice(-2) +
        ",";
      leg += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dest + ",,";
      leg += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].orig + ","; // USE , here!
      legs.push(leg);
    }
    search += "DIRECT,";
    search += edition[0].toUpperCase() + ","; // Language
    search += "3,";
    // validate Passengers here: Max Paxcount = 7 (Infs not included) - >11 = Adult - InfSeat = Child
    var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({
      maxPaxcount: 7,
      countInf: false,
      childAsAdult: 12,
      sepInfSeat: false,
      childMinAge: 2
    });
    if (!pax) {
      Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printAA");
      return;
    }
    search += pax.adults + ","; // ADT
    search += pax.children.length + ","; // Child
    search += pax.infLap + ","; // Inf
    search += "0,"; // Senior
    search += edition[1].toUpperCase() + ","; // Country
    // push outer search
    search += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length + "," + legs.join();
    url += encodeURIComponent(search);
    return url;
  };

  // get edition
  var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].aaEdition.split("_");
  if (edition.length != 2) {
    Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error:Invalid AA-Edition");
    return;
  }
  var url = createUrl(edition);
  if (!url) {
    return;
  }
  var extra =
    ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  extra += aaEditions
    .map(function(obj, i) {
      return (
        '<a href="' +
        createUrl(obj.value.split("_")) +
        '" target="_blank">' +
        obj.name +
        "</a>"
      );
    })
    .join("<br/>");
  extra += "</span></span>";

  return {
    url,
    title: "American",
    desc: "Europe/Asia/Pacific",
    extra
  };
}

Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("airlines", printAA);
Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* registerSetting */ "c"])(
  "American (Europe/Asia/Pacific)",
  "aaEdition",
  aaEditions,
  "en_DE"
);


/***/ }),
/* 13 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
/* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
/* harmony import */ var _settings_translations__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1);
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(3);
/* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(0);
/* harmony import */ var _print_amadeus__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(7);








const acEditions = [
  { name: "Algeria", value: "dz" },
  { name: "Antigua", value: "ag" },
  { name: "Argentina", value: "ar" },
  { name: "Australia", value: "au" },
  { name: "Austria", value: "at" },
  { name: "Bahamas", value: "bs" },
  { name: "Bahrain", value: "bh" },
  { name: "Barbados", value: "bb" },
  { name: "Belgium", value: "be" },
  { name: "Bermuda", value: "bm" },
  { name: "Canada", value: "ca" },
  { name: "Cayman Islands", value: "ky" },
  { name: "Chile", value: "cl" },
  { name: "China", value: "cn" },
  { name: "Colombia", value: "co" },
  { name: "Costa Rica", value: "cr" },
  { name: "Croatia", value: "hr" },
  { name: "Czech Republic", value: "cz" },
  { name: "Denmark", value: "dk" },
  { name: "Dominican Republic", value: "do" },
  { name: "Egypt", value: "eg" },
  { name: "Finland", value: "fi" },
  { name: "France", value: "fr" },
  { name: "Germany", value: "de" },
  { name: "Greece", value: "gr" },
  { name: "Haiti", value: "ht" },
  { name: "Hong Kong SAR, China", value: "hk" },
  { name: "Hungary", value: "hu" },
  { name: "India", value: "in" },
  { name: "Indonesia", value: "id" },
  { name: "Ireland", value: "ie" },
  { name: "Israel", value: "il" },
  { name: "Italy", value: "it" },
  { name: "Jamaica", value: "jm" },
  { name: "Japan", value: "jp" },
  { name: "Jordan", value: "jo" },
  { name: "Kuwait", value: "kw" },
  { name: "Malaysia", value: "my" },
  { name: "Mexico", value: "mx" },
  { name: "Morocco", value: "ma" },
  { name: "Mozambique", value: "mz" },
  { name: "Netherlands", value: "nl" },
  { name: "New Zealand", value: "nz" },
  { name: "Nigeria", value: "ng" },
  { name: "Norway", value: "no" },
  { name: "Panama", value: "pa" },
  { name: "Peru", value: "pe" },
  { name: "Poland", value: "pl" },
  { name: "Portugal", value: "pt" },
  { name: "Qatar", value: "qa" },
  { name: "Russia", value: "ru" },
  { name: "Romania", value: "ro" },
  { name: "Saudi Arabia", value: "sa" },
  { name: "Singapore", value: "sg" },
  { name: "South Africa", value: "za" },
  { name: "South Korea", value: "kr" },
  { name: "Spain", value: "es" },
  { name: "St. Lucia", value: "lc" },
  { name: "Sweden", value: "se" },
  { name: "Switzerland", value: "ch" },
  { name: "Taiwan, China", value: "tw" },
  { name: "Thailand", value: "th" },
  { name: "Trinidad &amp; Tobago", value: "tt" },
  { name: "Turkey", value: "tr" },
  { name: "Turks and Caicos Island", value: "tc" },
  { name: "Ukraine", value: "ua" },
  { name: "United Arab Emirates", value: "ae" },
  { name: "United Kingdom", value: "gb" },
  { name: "United States", value: "us" },
  { name: "Venezuela", value: "ve" },
  { name: "Vietnam", value: "vn" }
];

function printAC() {
  if (!Object(___WEBPACK_IMPORTED_MODULE_4__["anyCarriers"])("AC")) {
    return;
  }

  var createUrl = function(edition) {
    var acUrl =
      "https://book.aircanada.com/pl/AConline/en/RedirectionServlet?FareRequest=YES&PRICING_MODE=0&fromThirdParty=YES";
    acUrl +=
      "&country=" +
      edition +
      "&countryOfResidence=" +
      edition +
      (_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].itaLanguage == "de" || _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language == "de"
        ? "&language=de"
        : "&language=en");
    // validate Passengers here: Max Paxcount = 7 (Infs not included) - >11 = Adult - InfSeat = Child
    var pax = Object(___WEBPACK_IMPORTED_MODULE_4__["validatePax"])({
      maxPaxcount: 9,
      countInf: true,
      childAsAdult: 16,
      sepInfSeat: false,
      childMinAge: 2
    });
    if (!pax) {
      Object(_utils__WEBPACK_IMPORTED_MODULE_3__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printAC");
      return;
    }
    var paxConfig = { allowinf: 0, youthage: 12 }; // AC does not allow booking of infants for int. flights
    var amadeusConfig = { sepcabin: 1, detailed: 1, allowpremium: 1 };
    var tmpPax = Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_6__[/* getAmadeusPax */ "a"])(pax, paxConfig);
    acUrl += tmpPax.url;
    acUrl += "&numberOfAdults=" + tmpPax.adults;
    acUrl += "&numberOfInfants=" + tmpPax.infants;
    acUrl += "&numberOfYouth=" + tmpPax.youth;
    acUrl += "&numberOfChildren=" + tmpPax.children;
    acUrl += "&tripType=" + Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_6__[/* getAmadeusTriptype */ "b"])();
    for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_5__[/* currentItin */ "a"].itin.length; i++) {
      acUrl +=
        "&departure" +
        (i + 1) +
        "=" +
        ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_5__[/* currentItin */ "a"].itin[i].dep.day).slice(-2) +
        "/" +
        ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_5__[/* currentItin */ "a"].itin[i].dep.month).slice(-2) +
        "/" +
        _parse_itin__WEBPACK_IMPORTED_MODULE_5__[/* currentItin */ "a"].itin[i].dep.year +
        "&org" +
        (i + 1) +
        "=" +
        _parse_itin__WEBPACK_IMPORTED_MODULE_5__[/* currentItin */ "a"].itin[i].orig +
        "&dest" +
        (i + 1) +
        "=" +
        _parse_itin__WEBPACK_IMPORTED_MODULE_5__[/* currentItin */ "a"].itin[i].dest;
    }
    acUrl += Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_6__[/* getAmadeusUrl */ "c"])(amadeusConfig);
    return acUrl;
  };
  var acUrl = createUrl(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].acEdition.toUpperCase());
  if (!acUrl) {
    return;
  }
  var extra =
    ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  extra += acEditions
    .map(function(edition, i) {
      return (
        '<a href="' +
        createUrl(edition.value.toUpperCase()) +
        '" target="_blank">' +
        edition.name +
        "</a>"
      );
    })
    .join("<br/>");
  extra += '<br/><a href="javascript:addACPromo();">Add Promo Code</a>';
  extra += "</span></span>";
  extra += addACPromoControls(acUrl);

  return {
    url: acUrl,
    title: "Air Canada",
    extra
  };
}

function addACPromoControls(url) {
  var script = document.createElement("script");
  script.appendChild(document.createTextNode("(" + addACPromo + ")();"));
  (document.body || document.head || document.documentElement).appendChild(
    script
  );

  var label = "Open";
  if (_settings_translations__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"][_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language] !== undefined) {
    if (_settings_translations__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"][_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language]["open"] !== undefined) {
      label = _settings_translations__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"][_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language]["open"];
    }
  }

  var extra =
    '<input type="input" id="ac-promo-input" size="8" style="display:none;margin:0 5px;"></input>';
  extra +=
    '<label style="font-size:' + Number(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].linkFontsize) + '%;">';
  extra +=
    '<a id="ac-promo-link" style="display:none" target="_blank" href="' +
    url +
    '">' +
    label +
    "</a></label>";
  return extra;
}

function addACPromo() {
  window.addACPromo = function() {
    var input = document.getElementById("ac-promo-input");
    input.style.display = "inline";
    input.addEventListener("change", event => {
      var replacement =
        event.target.value != ""
          ? "&AUTHORIZATION_ID=" + event.target.value
          : "";
      var link = document.getElementById("ac-promo-link");
      var match = link.href.match(/(&AUTHORIZATION_ID=.*)/g);
      if (match == null) {
        link.href += replacement;
      } else {
        link.href = link.href.replace(match, replacement);
      }
    });

    var link = document.getElementById("ac-promo-link");
    link.style.display = "inline";
  };
}

Object(___WEBPACK_IMPORTED_MODULE_4__["register"])("airlines", printAC);
Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("Air Canada", "acEdition", acEditions, "us");


/***/ }),
/* 14 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
/* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1);
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3);
/* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(0);






const editions = [
  { name: "Brazil", value: "www.airfrance.com.br", country: "BR" },
  { name: "Finland", value: "www.airfrance.fi", country: "FI" },
  { name: "France", value: "www.airfrance.fr", country: "FR" },
  { name: "Germany", value: "www.airfrance.de", country: "DE" },
  { name: "Italy", value: "www.airfrance.it", country: "IT" },
  { name: "Netherlands", value: "www.airfrance.nl", country: "NL" },
  { name: "Spain", value: "www.airfrance.es", country: "ES" },
  { name: "United Kingdom", value: "www.airfrance.co.uk", country: "GB" },
  { name: "United States", value: "www.airfrance.us", country: "US" }
];

const cabins = ["ECONOMY", "W", "C", "F"];

function print() {
  if (!Object(___WEBPACK_IMPORTED_MODULE_3__["anyCarriers"])("AF", "KL")) {
    return;
  }

  var pax = Object(___WEBPACK_IMPORTED_MODULE_3__["validatePax"])({
    maxPaxcount: 9,
    countInf: true,
    childAsAdult: 12,
    sepInfSeat: false,
    childMinAge: 2
  });
  if (!pax) {
    Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printAF");
    return;
  }

  const segs = Object(_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* getCurrentSegs */ "b"])();
  const cabin = cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getCabin */ "b"])(Math.max(...segs.map(seg => seg.cabin)))];

  const createUrl = function(edition) {
    const country = editions.find(e => e.value === edition).country;
    return (
      `https://${edition}/ams/exchange?language=${_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language}&country=${country}&target=` +
      encodeURIComponent(
        `/search/summary?deviationValue=5&connections=${segs
          .map(
            seg =>
              `${seg.orig}:${seg.dep.year}${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to2digits */ "h"])(
                seg.dep.month
              )}${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to2digits */ "h"])(seg.dep.day)}@${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to4digitTime */ "i"])(seg.dep.time24)}:${
                seg.carrier
              }${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to4digits */ "j"])(seg.fnr)}:${seg.bookingclass}:${seg.farebase}:${
                cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getCabin */ "b"])(seg.cabin)]
              }>${seg.dest}`
          )
          .join("-")}&cabinClass=${cabin}&pax=${pax.adults}:0:${
          pax.children.length
        }:${pax.infLap}`
      )
    );
  };

  var url = createUrl(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].afEdition2);
  if (!url) {
    return;
  }

  var extra =
    ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  extra += editions
    .map(function(obj, i) {
      return (
        '<a href="' +
        createUrl(obj.value) +
        '" target="_blank">' +
        obj.name +
        "</a>"
      );
    })
    .join("<br/>");
  extra += "</span></span>";

  return {
    url,
    title: "Air France",
    extra
  };
}

Object(___WEBPACK_IMPORTED_MODULE_3__["register"])("airlines", print);
Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("Air France", "afEdition2", editions, "www.airfrance.us");


/***/ }),
/* 15 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3);
/* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0);




function printAS() {
  if (!Object(___WEBPACK_IMPORTED_MODULE_1__["anyCarriers"])("AS")) {
    return;
  }

  // validate Passengers here: Max Paxcount = 7 (Infs not included) - >11 = Adult - InfSeat = Child
  var createUrl = function() {
    var pax = Object(___WEBPACK_IMPORTED_MODULE_1__["validatePax"])({
      maxPaxcount: 6,
      countInf: true,
      childAsAdult: 6,
      sepInfSeat: false,
      childMinAge: 2
    });
    if (!pax) {
      Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printAS");
      return;
    }
    var url = "https://www.alaskaair.com/planbook/shoppingstart?";
    url += "A=" + pax.adults + "&C=" + pax.children.length + "&FT=";
    if (_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length == 1) {
      url += "ow";
    } else {
      url += "rt";
    }

    var k = 0;
    //Build multi-city search based on legs
    for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length; i++) {
      // walks each leg
      for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg.length; j++) {
        //walks each segment of leg
        var itinseg =
          _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].orig +
          "|" +
          _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dest;
        itinseg +=
          "|" +
          ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) +
          "/" +
          ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2);
        itinseg += "/" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dep.year;
        itinseg += "|" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].fnr + "|";
        itinseg += _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].cabin ? "f" : "c";
        url += "&F" + ++k + "=" + encodeURIComponent(itinseg);
      }
    }
    url +=
      "&DEST=" +
      _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[0].seg[_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[0].seg.length - 1].dest;
    url += "&FARE=" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].price + "&frm=cart&META=GOO_CS";
    return url;
  };
  var url = createUrl();
  if (!url) {
    return;
  }

  return {
    url,
    title: "Alaska"
  };
}

Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("airlines", printAS);


/***/ }),
/* 16 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1);
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);
/* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);





const azEditions = [
  { value: "de_de", name: "Germany / Deutsch" },
  { value: "at_de", name: "Austria / Deutsch" },
  { value: "ch_de", name: "Switzerland / Deutsch" },
  { value: "fr_fr", name: "France / French" },
  { value: "nl_nl", name: "Netherlands / Dutch" },
  { value: "it_it", name: "Italy / Italian" },
  { value: "ca_en", name: "Canada / Englisch" },
  { value: "us_en", name: "US / Englisch" },
  { value: "gb_en", name: "GB / Englisch" },
  { value: "en_en", name: "International / Englisch" }
];

function printAZ() {
  if (!Object(___WEBPACK_IMPORTED_MODULE_2__["anyCarriers"])("AZ")) {
    return;
  }

  var createUrl = function(edition) {
    var azUrl =
      "https://www.alitalia.com/" +
      edition +
      "/home-page.metasearch.json?SearchType=BrandMetasearch";
    var cabins = ["Economy", "Economy", "Business", "First"];
    var seg = 0;
    for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) {
      for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) {
        azUrl +=
          "&MetaSearchDestinations[" +
          seg +
          "].From=" +
          _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig;
        azUrl +=
          "&MetaSearchDestinations[" +
          seg +
          "].To=" +
          _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dest;
        azUrl +=
          "&MetaSearchDestinations[" +
          seg +
          "].DepartureDate=" +
          _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year +
          "-" +
          ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) +
          "-" +
          ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2) +
          ":" +
          ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.time).slice(-5);
        azUrl +=
          "&MetaSearchDestinations[" +
          seg +
          "].ArrivalDate=" +
          _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].arr.year +
          "-" +
          ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].arr.month).slice(-2) +
          "-" +
          ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].arr.day).slice(-2) +
          ":" +
          ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].arr.time).slice(-5);
        azUrl +=
          "&MetaSearchDestinations[" +
          seg +
          "].Flight=" +
          _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].fnr;
        azUrl +=
          "&MetaSearchDestinations[" +
          seg +
          "].code=" +
          _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].farebase;
        azUrl += "&MetaSearchDestinations[" + seg + "].MseType=";
        azUrl +=
          "&MetaSearchDestinations[" +
          seg +
          "].bookingClass=" +
          _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].bookingclass;
        azUrl +=
          "&MetaSearchDestinations[" +
          seg +
          "].cabinClass=" +
          cabins[_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].cabin];
        azUrl += "&MetaSearchDestinations[" + seg + "].slices=" + i;
        seg++;
      }
    }
    var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({
      maxPaxcount: 7,
      countInf: false,
      childAsAdult: 12,
      sepInfSeat: false,
      childMinAge: 2
    });
    if (!pax) {
      Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printAZ");
      return false;
    }
    azUrl +=
      "&children_number=" +
      pax.children.length +
      "&newborn_number=" +
      pax.infLap +
      "&adult_number=" +
      pax.adults;
    return azUrl;
  };
  // get edition
  var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].azEdition;
  var azUrl = createUrl(edition);
  if (!azUrl) {
    return;
  }
  var extra =
    ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  extra += azEditions
    .map(function(obj, i) {
      return (
        '<a href="' +
        createUrl(obj.value) +
        '" target="_blank">' +
        obj.name +
        "</a>"
      );
    })
    .join("<br/>");
  extra += "</span></span>";

  return {
    url: azUrl,
    title: "Alitalia",
    extra
  };
}

Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("airlines", printAZ);
Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* registerSetting */ "c"])("Alitalia", "azEdition", azEditions, "us_en");


/***/ }),
/* 17 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
/* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1);
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3);
/* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(0);






const baEditions = [
  { value: "AF", name: "Afghanistan" },
  { value: "AL", name: "Albania" },
  { value: "DZ", name: "Algeria" },
  { value: "AS", name: "American Samoa" },
  { value: "AD", name: "Andorra" },
  { value: "AO", name: "Angola" },
  { value: "AI", name: "Anguilla" },
  { value: "AG", name: "Antigua" },
  { value: "AR", name: "Argentina" },
  { value: "AM", name: "Armenia" },
  { value: "AW", name: "Aruba" },
  { value: "AU", name: "Australia" },
  { value: "AT", name: "Austria" },
  { value: "AZ", name: "Azerbaijan" },
  { value: "BS", name: "Bahamas" },
  { value: "BH", name: "Bahrain" },
  { value: "BD", name: "Bangladesh" },
  { value: "BB", name: "Barbados" },
  { value: "BY", name: "Belarus" },
  { value: "BE", name: "Belgium" },
  { value: "BZ", name: "Belize" },
  { value: "BJ", name: "Benin Republic" },
  { value: "BM", name: "Bermuda" },
  { value: "BT", name: "Bhutan" },
  { value: "BO", name: "Bolivia" },
  { value: "BA", name: "Bosnia-Herzegovina" },
  { value: "BW", name: "Botswana" },
  { value: "BR", name: "Brazil" },
  { value: "VG", name: "British Virgin Islands" },
  { value: "BN", name: "Brunei" },
  { value: "BG", name: "Bulgaria" },
  { value: "BF", name: "Burkina Faso" },
  { value: "BI", name: "Burundi" },
  { value: "KH", name: "Cambodia" },
  { value: "CA", name: "Canada" },
  { value: "CV", name: "Cape Verde" },
  { value: "KY", name: "Cayman Islands" },
  { value: "CF", name: "Central African Rep" },
  { value: "TD", name: "Chad" },
  { value: "CL", name: "Chile" },
  { value: "CN", name: "China" },
  { value: "CX", name: "Christmas Island" },
  { value: "CC", name: "Cocos Islands" },
  { value: "CO", name: "Colombia" },
  { value: "CG", name: "Congo" },
  { value: "CK", name: "Cook Islands" },
  { value: "CR", name: "Costa Rica" },
  { value: "HR", name: "Croatia" },
  { value: "CU", name: "Cuba" },
  { value: "CY", name: "Cyprus" },
  { value: "CZ", name: "Czech Republic" },
  { value: "DK", name: "Denmark" },
  { value: "DJ", name: "Djibouti" },
  { value: "DM", name: "Dominica" },
  { value: "DO", name: "Dominican Rep" },
  { value: "EC", name: "Ecuador" },
  { value: "EG", name: "Egypt" },
  { value: "SV", name: "El Salvador" },
  { value: "GQ", name: "Equatorial Guinea" },
  { value: "ER", name: "Eritrea" },
  { value: "EE", name: "Estonia" },
  { value: "ET", name: "Ethiopia" },
  { value: "FO", name: "Faeroe Is" },
  { value: "FK", name: "Falkland Is" },
  { value: "FJ", name: "Fiji" },
  { value: "FI", name: "Finland" },
  { value: "FR", name: "France" },
  { value: "GF", name: "French Guyana" },
  { value: "PF", name: "French Polynesia" },
  { value: "GA", name: "Gabon" },
  { value: "GM", name: "Gambia" },
  { value: "GE", name: "Georgia" },
  { value: "DE", name: "Germany" },
  { value: "GH", name: "Ghana" },
  { value: "GI", name: "Gibraltar (UK)" },
  { value: "GR", name: "Greece" },
  { value: "GL", name: "Greenland" },
  { value: "GD", name: "Grenada" },
  { value: "GP", name: "Guadeloupe" },
  { value: "GU", name: "Guam" },
  { value: "GT", name: "Guatemala" },
  { value: "GN", name: "Guinea" },
  { value: "GW", name: "Guinea Bissau" },
  { value: "GY", name: "Guyana" },
  { value: "HT", name: "Haiti" },
  { value: "HN", name: "Honduras" },
  { value: "HK", name: "Hong Kong" },
  { value: "HU", name: "Hungary" },
  { value: "IS", name: "Iceland" },
  { value: "IN", name: "India" },
  { value: "ID", name: "Indonesia" },
  { value: "IR", name: "Iran" },
  { value: "IQ", name: "Iraq" },
  { value: "IE", name: "Ireland" },
  { value: "IL", name: "Israel" },
  { value: "IT", name: "Italy" },
  { value: "CI", name: "Ivory Coast" },
  { value: "JM", name: "Jamaica" },
  { value: "JP", name: "Japan" },
  { value: "JO", name: "Jordan" },
  { value: "KZ", name: "Kazakhstan" },
  { value: "KE", name: "Kenya" },
  { value: "KI", name: "Kiribati" },
  { value: "XK", name: "Kosovo" },
  { value: "KW", name: "Kuwait" },
  { value: "KG", name: "Kyrgyzstan" },
  { value: "LA", name: "Laos" },
  { value: "LV", name: "Latvia" },
  { value: "LB", name: "Lebanon" },
  { value: "LS", name: "Lesotho" },
  { value: "LR", name: "Liberia" },
  { value: "LY", name: "Libya" },
  { value: "LI", name: "Liechtenstein" },
  { value: "LT", name: "Lithuania" },
  { value: "LU", name: "Luxembourg" },
  { value: "MO", name: "Macau" },
  { value: "MK", name: "Macedonia" },
  { value: "MG", name: "Madagascar" },
  { value: "MW", name: "Malawi" },
  { value: "MY", name: "Malaysia" },
  { value: "MV", name: "Maldives" },
  { value: "ML", name: "Mali" },
  { value: "MT", name: "Malta" },
  { value: "MP", name: "Mariana Islands" },
  { value: "MH", name: "Marshall Islands" },
  { value: "MQ", name: "Martinique" },
  { value: "MR", name: "Mauritania" },
  { value: "MU", name: "Mauritius" },
  { value: "MX", name: "Mexico" },
  { value: "FM", name: "Micronesia" },
  { value: "UM", name: "Minor Island" },
  { value: "MD", name: "Moldova" },
  { value: "MC", name: "Monaco" },
  { value: "ME", name: "Montenegro" },
  { value: "MS", name: "Montserrat" },
  { value: "MA", name: "Morocco" },
  { value: "MZ", name: "Mozambique" },
  { value: "MM", name: "Myanmar" },
  { value: "NA", name: "Namibia" },
  { value: "NR", name: "Nauru" },
  { value: "NP", name: "Nepal" },
  { value: "AN", name: "Netherland Antilles" },
  { value: "NL", name: "Netherlands" },
  { value: "NC", name: "New Caledonia" },
  { value: "NZ", name: "New Zealand" },
  { value: "NI", name: "Nicaragua" },
  { value: "NE", name: "Niger" },
  { value: "NG", name: "Nigeria" },
  { value: "NU", name: "Niue" },
  { value: "NF", name: "Norfolk Island" },
  { value: "NO", name: "Norway" },
  { value: "OM", name: "Oman" },
  { value: "PK", name: "Pakistan" },
  { value: "PA", name: "Panama" },
  { value: "PG", name: "Papua New Guinea" },
  { value: "PY", name: "Paraguay" },
  { value: "KP", name: "Peoples Rep Korea" },
  { value: "PE", name: "Peru" },
  { value: "PH", name: "Philippines" },
  { value: "PL", name: "Poland" },
  { value: "PT", name: "Portugal" },
  { value: "PR", name: "Puerto Rico" },
  { value: "QA", name: "Qatar" },
  { value: "CM", name: "Republic Cameroon" },
  { value: "RE", name: "Reunion" },
  { value: "RO", name: "Romania" },
  { value: "RU", name: "Russia" },
  { value: "RW", name: "Rwanda" },
  { value: "SM", name: "San Marino" },
  { value: "SA", name: "Saudi Arabia" },
  { value: "SN", name: "Senegal" },
  { value: "RS", name: "Serbia" },
  { value: "SC", name: "Seychelles" },
  { value: "SL", name: "Sierra Leone" },
  { value: "SG", name: "Singapore" },
  { value: "SK", name: "Slovakia" },
  { value: "SI", name: "Slovenia" },
  { value: "SB", name: "Solomon Island" },
  { value: "SO", name: "Somalia" },
  { value: "ZA", name: "South Africa" },
  { value: "KR", name: "South Korea" },
  { value: "ES", name: "Spain" },
  { value: "LK", name: "Sri Lanka" },
  { value: "KN", name: "St Kitts and Nevis" },
  { value: "LC", name: "St Lucia" },
  { value: "VC", name: "St Vincent" },
  { value: "SD", name: "Sudan" },
  { value: "SR", name: "Suriname" },
  { value: "SZ", name: "Swaziland" },
  { value: "SE", name: "Sweden" },
  { value: "CH", name: "Switzerland" },
  { value: "SY", name: "Syria" },
  { value: "TW", name: "Taiwan" },
  { value: "TJ", name: "Tajikistan" },
  { value: "TZ", name: "Tanzania" },
  { value: "TH", name: "Thailand" },
  { value: "TL", name: "Timor - Leste" },
  { value: "TG", name: "Togo" },
  { value: "TO", name: "Tonga" },
  { value: "TT", name: "Trinidad and Tobago" },
  { value: "TN", name: "Tunisia" },
  { value: "TR", name: "Turkey" },
  { value: "TM", name: "Turkmenistan" },
  { value: "TC", name: "Turks Caicos" },
  { value: "TV", name: "Tuvalu" },
  { value: "VI", name: "US Virgin Islands" },
  { value: "US", name: "USA" },
  { value: "UG", name: "Uganda" },
  { value: "UA", name: "Ukraine" },
  { value: "AE", name: "United Arab Emirates" },
  { value: "GB", name: "United Kingdom" },
  { value: "UY", name: "Uruguay" },
  { value: "UZ", name: "Uzbekistan" },
  { value: "VU", name: "Vanuatu" },
  { value: "VE", name: "Venezuela" },
  { value: "VN", name: "Vietnam" },
  { value: "WS", name: "Western Samoa" },
  { value: "YE", name: "Yemen Republic" },
  { value: "ZM", name: "Zambia" },
  { value: "ZW", name: "Zimbabwe" }
];

function printBA() {
  if (!Object(___WEBPACK_IMPORTED_MODULE_3__["anyCarriers"])("IB", "BA")) {
    return;
  }

  var createUrl = function(edition, language) {
    // 0 = Economy; 1=Premium Economy; 2=Business; 3=First
    var cabins = ["M", "W", "C", "F"];
    var pax = Object(___WEBPACK_IMPORTED_MODULE_3__["validatePax"])({
      maxPaxcount: 9,
      countInf: false,
      childAsAdult: 16,
      sepInfSeat: false,
      childMinAge: 2
    });
    if (!pax) {
      Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printBA");
      return false;
    }
    var tmpPax = { c: 0, y: 0 };
    for (i = 0; i < pax.children.length; i++) {
      if (pax.children[i] > 11) {
        tmpPax.y++;
      } else {
        tmpPax.c++;
      }
    }
    var url =
      "https://www.britishairways.com/travel/fx/public/" +
      language +
      "_" +
      edition +
      "?eId=111054&data=F" +
      pax.adults +
      tmpPax.y +
      tmpPax.c +
      pax.infLap +
      "LF";
    var mincabin = 3;
    //Build multi-city search based on legs
    for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin.length; i++) {
      // walks each leg
      for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length; j++) {
        //walks each segment of leg
        var k = 0;
        // lets have a look if we need to skip segments - fnr has to be the same and it must be just a layover
        while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length - 1) {
          if (
            _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k].fnr !=
              _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr ||
            _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440
          )
            break;
          k++;
        }
        url +=
          ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2) +
          ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) +
          _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.year +
          ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.time.replace(":", "")).slice(
            -4
          );
        url +=
          _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].carrier +
          ("000" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].fnr).slice(-4);
        url += cabins[_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin];
        url +=
          _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].orig + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k].dest;
        if (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin.length == 2 && i == 1) {
          url += "F";
        } else {
          url += "T";
        }
        if (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin < mincabin) {
          mincabin = _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin;
        }
        j += k;
      }
    }
    url +=
      "&p=EUR6666.66&e=SL&c=" +
      cabins[_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? mincabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])()] +
      "&source=FareQuoteEmail&isEmailHBOFareQuote=false";
    return url;
  };
  // get edition
  var url = createUrl(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].baEdition, _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].baLanguage);
  if (!url) {
    return;
  }
  var extra =
    ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  extra += baEditions
    .map(function(obj, i) {
      return (
        '<a href="' +
        createUrl(obj.value, _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].baLanguage) +
        '" target="_blank">' +
        obj.name +
        "</a>"
      );
    })
    .join("<br/>");
  extra += "</span></span>";

  return {
    url,
    title: "British Airways",
    extra
  };
}

Object(___WEBPACK_IMPORTED_MODULE_3__["register"])("airlines", printBA);
Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("British Airways", "baEdition", baEditions, "US");


/***/ }),
/* 18 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1);
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);
/* harmony import */ var _print_amadeus__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7);





const czEditions = [
  { value: "AR-GB", name: "Argentina / English" },
  { value: "AU-GB", name: "Australia / English" },
  { value: "AZ-GB", name: "Azerbaijan / English" },
  { value: "BD-GB", name: "Bangladesh / English" },
  { value: "BE-GB", name: "Belgium / English" },
  { value: "BR-GB", name: "Brazil / English" },
  { value: "KH-GB", name: "Cambodia / English" },
  { value: "CA-GB", name: "Canada / English" },
  { value: "CA-FR", name: "Canada / French" },
  { value: "CN-GB", name: "China / English" },
  { value: "DK-GB", name: "Denmark / English" },
  { value: "FI-GB", name: "Finland / English" },
  { value: "FR-GB", name: "France / English" },
  { value: "FR-FR", name: "France / French" },
  { value: "GE-GB", name: "Georgia / English" },
  { value: "DE-GB", name: "Germany / English" },
  { value: "DE-DE", name: "Germany / German" },
  { value: "GR-GB", name: "Greece / English" },
  { value: "HK-GB", name: "Hong Kong / English" },
  { value: "IN-GB", name: "India / English" },
  { value: "ID-GB", name: "Indonesia / English" },
  { value: "IR-GB", name: "Iran / English" },
  { value: "IE-GB", name: "Ireland / English" },
  { value: "IT-GB", name: "Italy / English" },
  { value: "JP-GB", name: "Japan / English" },
  { value: "JO-GB", name: "Jordan / English" },
  { value: "KZ-GB", name: "Kazakhstan / English" },
  { value: "KE-GB", name: "Kenya / English" },
  { value: "KG-GB", name: "Kyrgyzstan / English" },
  { value: "MY-GB", name: "Malaysia / English" },
  { value: "MV-GB", name: "Maldives / English" },
  { value: "MO-GB", name: "Macau / English" },
  { value: "MM-GB", name: "Myanmar / English" },
  { value: "NP-GB", name: "Nepal / English" },
  { value: "NL-GB", name: "Netherlands / English" },
  { value: "NZ-GB", name: "New Zealand / English" },
  { value: "NO-GB", name: "Norway / English" },
  { value: "PK-GB", name: "Pakistan / English" },
  { value: "PA-GB", name: "Panama / English" },
  { value: "PE-GB", name: "Peru / English" },
  { value: "PH-GB", name: "Philippines / English" },
  { value: "PT-GB", name: "Portugal / English" },
  { value: "RU-GB", name: "Russia / English" },
  { value: "SA-GB", name: "Saudi Arabia / English" },
  { value: "SG-GB", name: "Singapore / English" },
  { value: "ZA-GB", name: "South Africa / English" },
  { value: "KR-GB", name: "South Korea / English" },
  { value: "ES-GB", name: "Spain / English" },
  { value: "SE-GB", name: "Sweden / English" },
  { value: "CH-GB", name: "Switzerland / English" },
  { value: "TW-GB", name: "Taiwan / English" },
  { value: "TJ-GB", name: "Tajikistan / English" },
  { value: "TZ-GB", name: "Tanzania / English" },
  { value: "TH-GB", name: "Thailand / English" },
  { value: "TR-GB", name: "Turkey / English" },
  { value: "TM-GB", name: "Turkmenistan / English" },
  { value: "UA-GB", name: "Ukraine / English" },
  { value: "GB-GB", name: "United Kingdom / English" },
  { value: "AE-GB", name: "United Arab Emirates / English" },
  { value: "UG-GB", name: "Uganda / English" },
  { value: "US-GB", name: "United  States / English" },
  { value: "UZ-GB", name: "Uzbekistan / English" },
  { value: "VE-GB", name: "Venezuela / English" },
  { value: "VN-GB", name: "Vietnam / English" }
];

function printCZ() {
  if (!Object(___WEBPACK_IMPORTED_MODULE_2__["anyCarriers"])("CZ")) {
    return;
  }

  var createUrl = function(edition) {
    var paxConfig = { allowinf: 1, youthage: 0 };
    var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({
      maxPaxcount: 9,
      countInf: false,
      childAsAdult: 12,
      sepInfSeat: false,
      childMinAge: 2
    });
    if (!pax) {
      Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printCZ");
      return;
    }
    var amadeusConfig = {
      sepcabin: 0,
      detailed: 0,
      allowpremium: 0,
      inctimes: 0
    };
    var url =
      "http://global.csair.com/CZPortal/dyn/portal/doEnc?SITE=J00YJ00Y&BOOKING_FLOW=REVENUE&IS_FLEXIBLE=FALSE&LANGUAGE=" +
      edition[1] +
      "&PRICING_TYPE=O&COUNTRY_SITE=" +
      edition[0] +
      "&DISPLAY_TYPE=1";
    var tmpPax = Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_3__[/* getAmadeusPax */ "a"])(pax, paxConfig);
    url += tmpPax.url;
    url += "&NB_ADT=" + tmpPax.adults;
    url += "&NB_INF=" + tmpPax.infants;
    url += "&NB_CHD=" + tmpPax.children;
    url += "&TRIP_TYPE=M";
    url += Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_3__[/* getAmadeusUrl */ "c"])(amadeusConfig);
    return url;
  };
  // get edition
  var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].czEdition.split("-");
  if (edition.length != 2) {
    Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error:Invalid CZ-Edition");
    return;
  }
  var url = createUrl(edition);
  if (!url) {
    return;
  }
  var extra =
    ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  extra += czEditions
    .map(function(obj, i) {
      return (
        '<a href="' +
        createUrl(obj.value.split("-")) +
        '" target="_blank">' +
        obj.name +
        "</a>"
      );
    })
    .join("<br/>");
  extra += "</span></span>";

  return {
    url,
    title: "China Southern",
    extra
  };
}

Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("airlines", printCZ);
Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* registerSetting */ "c"])("China Southern", "czEdition", czEditions, "US-GB");


/***/ }),
/* 19 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
/* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1);
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3);
/* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(0);






const dlEditions = [
  { value: "de_de", name: "Germany" },
  { value: "www_us", name: "US" }
];

function printDL() {
  if (!Object(___WEBPACK_IMPORTED_MODULE_3__["anyCarriers"])("DL")) {
    return;
  }

  /* Steppo: What about farebasis?
   * What about segmentskipping? */
  var createUrl = function(edition) {
    // 0 = Economy; 1=Premium Economy; 2=Business; 3=First
    // Defaults for cabin identifiers for DL pricing engine; exceptions handled later
    var cabins = ["MAIN", "DPPS", "BU", "FIRST"];
    var mincabin = 3;
    var farebases = new Array();
    var pax = Object(___WEBPACK_IMPORTED_MODULE_3__["validatePax"])({
      maxPaxcount: 9,
      countInf: true,
      childAsAdult: 12,
      sepInfSeat: false,
      childMinAge: 2
    });
    if (!pax) {
      Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printDL");
      return;
    }

    var deltaURL =
      "http://" +
      edition[0] +
      ".delta.com/air-shopping/priceTripAction.action?ftw_reroute=true&tripType=multiCity";
    deltaURL += "&currencyCd=" + (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].cur == "EUR" ? "EUR" : "USD");
    deltaURL += "&exitCountry=" + edition[1];
    var segcounter = 0;
    for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin.length; i++) {
      // walks each leg
      for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length; j++) {
        //walks each segment of leg
        deltaURL +=
          "&itinSegment[" +
          segcounter.toString() +
          "]=" +
          i.toString() +
          ":" +
          _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].bookingclass;
        deltaURL +=
          ":" +
          _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].orig +
          ":" +
          _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dest +
          ":" +
          _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].carrier +
          ":" +
          _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].fnr;
        deltaURL +=
          ":" +
          Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* monthnumberToName */ "f"])(_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.month) +
          ":" +
          (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.day < 10 ? "0" : "") +
          _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.day +
          ":" +
          _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.year +
          ":0";
        farebases.push(_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].farebase);
        if (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin < mincabin) {
          mincabin = _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin;
        }
        // Exceptions to cabin identifiers for pricing
        switch (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].bookingclass) {
          // Basic Economy fares
          case "E":
            cabins[0] = "BASIC-ECONOMY";
            break;
          // Comfort+ fares
          case "W":
            cabins[1] = "DCP";
            break;
          default:
        }
        segcounter++;
      }
    }
    deltaURL +=
      "&cabin=" +
      cabins[_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? mincabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])()];
    deltaURL += "&fareBasis=" + farebases.join(":");
    //deltaURL += "&price=0";
    deltaURL +=
      "&numOfSegments=" +
      segcounter.toString() +
      "&paxCount=" +
      (pax.adults + pax.children.length + pax.infLap);
    deltaURL += "&vendorRedirectFlag=true&vendorID=Google";
    return deltaURL;
  };
  // get edition
  var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].dlEdition.split("_");
  if (edition.length != 2) {
    Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "g"])("Error:Invalid Delta-Edition");
    return;
  }
  var url = createUrl(edition);
  if (!url) {
    return;
  }
  var extra =
    ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  extra += dlEditions
    .map(function(obj, i) {
      return (
        '<a href="' +
        createUrl(obj.value.split("_")) +
        '" target="_blank">' +
        obj.name +
        "</a>"
      );
    })
    .join("<br/>");
  extra += "</span></span>";

  return {
    url,
    title: "Delta",
    extra
  };
}

Object(___WEBPACK_IMPORTED_MODULE_3__["register"])("airlines", printDL);
Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("Delta", "dlEdition", dlEditions, "www_us");


/***/ }),
/* 20 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1);
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);
/* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);
/* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(4);






const cabins = ["0", "0", "1", "2"];

const editions = [
  { name: "Arabic (AE)", value: "/ae/arabic" },
  { name: "Arabic (BH)", value: "/bh/arabic" },
  { name: "Arabic (DZ)", value: "/dz/arabic" },
  { name: "Arabic (EG)", value: "/eg/arabic" },
  { name: "Arabic (IQ)", value: "/iq/arabic" },
  { name: "Arabic (JO)", value: "/jo/arabic" },
  { name: "Arabic (KW)", value: "/kw/arabic" },
  { name: "Arabic (LB)", value: "/lb/arabic" },
  { name: "Arabic (LY)", value: "/ly/arabic" },
  { name: "Arabic (MA)", value: "/ma/arabic" },
  { name: "Arabic (OM)", value: "/om/arabic" },
  { name: "Arabic (QA)", value: "/qa/arabic" },
  { name: "Arabic (SA)", value: "/sa/arabic" },
  { name: "Arabic (SD)", value: "/sd/arabic" },
  { name: "Arabic (SY)", value: "/sy/arabic" },
  { name: "Arabic (YE)", value: "/ye/arabic" },
  { name: "Chinese (CN)", value: "/cn/chinese" },
  { name: "Chinese (HK)", value: "/hk/chinese" },
  { name: "Chinese (TW)", value: "/tw/chinese" },
  { name: "Czech (CZ)", value: "/cz/czech" },
  { name: "Danish (DK)", value: "/dk/danish" },
  { name: "Dutch (BE)", value: "/be/dutch" },
  { name: "Dutch (NL)", value: "/nl/dutch" },
  { name: "English (AF)", value: "/af/english" },
  { name: "English (AU)", value: "/au/english" },
  { name: "English (BD)", value: "/bd/english" },
  { name: "English (BG)", value: "/bg/english" },
  { name: "English (EE)", value: "/ee/english" },
  { name: "English (ET)", value: "/et/english" },
  { name: "English (FI)", value: "/fi/english" },
  { name: "English (GH)", value: "/gh/english" },
  { name: "English (Global)", value: "/global/english" },
  { name: "English (HR)", value: "/hr/english" },
  { name: "English (IE)", value: "/ie/english" },
  { name: "English (IN)", value: "/in/english" },
  { name: "English (IR)", value: "/ir/english" },
  { name: "English (IS)", value: "/is/english" },
  { name: "English (KE)", value: "/ke/english" },
  { name: "English (KH)", value: "/kh/english" },
  { name: "English (LK)", value: "/lk/english" },
  { name: "English (LT)", value: "/lt/english" },
  { name: "English (LV)", value: "/lv/english" },
  { name: "English (MM)", value: "/mm/english" },
  { name: "English (MT)", value: "/mt/english" },
  { name: "English (MU)", value: "/mu/english" },
  { name: "English (MV)", value: "/mv/english" },
  { name: "English (MY)", value: "/my/english" },
  { name: "English (NG)", value: "/ng/english" },
  { name: "English (NZ)", value: "/nz/english" },
  { name: "English (PH)", value: "/ph/english" },
  { name: "English (PK)", value: "/pk/english" },
  { name: "English (RO)", value: "/ro/english" },
  { name: "English (SC)", value: "/sc/english" },
  { name: "English (SG)", value: "/sg/english" },
  { name: "English (TZ)", value: "/tz/english" },
  { name: "English (UG)", value: "/ug/english" },
  { name: "English (UK)", value: "/uk/english" },
  { name: "English (US)", value: "/us/english" },
  { name: "English (ZA)", value: "/za/english" },
  { name: "English (ZM)", value: "/zm/english" },
  { name: "English (ZW)", value: "/zw/english" },
  { name: "French (CA)", value: "/ca/french" },
  { name: "French (CI)", value: "/ci/french" },
  { name: "French (FR)", value: "/fr/french" },
  { name: "French (GN)", value: "/gn/french" },
  { name: "French (SN)", value: "/sn/french" },
  { name: "French (TN)", value: "/tn/french" },
  { name: "German (AT)", value: "/at/german" },
  { name: "German (DE)", value: "/de/german" },
  { name: "Greek (CY)", value: "/cy/greek" },
  { name: "Greek (GR)", value: "/gr/greek" },
  { name: "Hungarian (HU)", value: "/hu/hungarian" },
  { name: "Indonesian (ID)", value: "/id/indonesian" },
  { name: "Italian (CH)", value: "/ch/italian" },
  { name: "Italian (IT)", value: "/it/italian" },
  { name: "Japanese (JP)", value: "/jp/japanese" },
  { name: "Korean (KR)", value: "/kr/korean" },
  { name: "Norwegian (NO)", value: "/no/norwegian" },
  { name: "Polish (PL)", value: "/pl/polish" },
  { name: "Portuguese (AO)", value: "/ao/portuguese" },
  { name: "Portuguese (BR)", value: "/br/portuguese" },
  { name: "Portuguese (PT)", value: "/pt/portuguese" },
  { name: "Russian (RU)", value: "/ru/russian" },
  { name: "Russian (UA)", value: "/ua/russian" },
  { name: "Spanish (AR)", value: "/ar/spanish" },
  { name: "Spanish (CL)", value: "/cl/spanish" },
  { name: "Spanish (CO)", value: "/co/spanish" },
  { name: "Spanish (EC)", value: "/ec/spanish" },
  { name: "Spanish (ES)", value: "/es/spanish" },
  { name: "Spanish (MX)", value: "/mx/spanish" },
  { name: "Spanish (PA)", value: "/pa/spanish" },
  { name: "Spanish (PE)", value: "/pe/spanish" },
  { name: "Spanish (UY)", value: "/uy/spanish" },
  { name: "Swedish (SE)", value: "/se/swedish" },
  { name: "Thai (TH)", value: "/th/thai" },
  { name: "Turkish (TR)", value: "/tr/turkish" },
  { name: "Vietnamese (VN)", value: "/vn/vietnamese" }
];

function print() {
  if (!Object(___WEBPACK_IMPORTED_MODULE_2__["anyCarriers"])("EK")) {
    return;
  }

  const pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({
    maxPaxcount: 9,
    countInf: false,
    childAsAdult: 12,
    sepInfSeat: false,
    childMinAge: 2
  });
  if (!pax) {
    Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printEK");
    return;
  }

  let desc = "";
  const createUrl = function(edition) {
    let url = `https://www.emirates.com/sessionhandler.aspx?pageurl=/IBE.aspx&pub=${edition}&j=f&section=IBE&j=t&seldcity1=${
      _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].orig
    }&selacity1=${_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].dest}&selddate1=${formatDate(
      _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].dep
    )}&seladults=${pax.adults}&selofw=0&selteenager=0&selchildren=${
      pax.children.length
    }&selinfants=${pax.infLap}&selcabinclass=${
      cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_4__[/* getCabin */ "b"])(Math.max(...Object(_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* getCurrentSegs */ "b"])().map(seg => seg.cabin)))]
    }&selcabinclass1=${
      cabins[
        Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_4__[/* getCabin */ "b"])(Math.max(..._parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].seg.map(seg => seg.cabin)))
      ]
    }&showsearch=false&showTeenager=false&showOFW=false&chkFlexibleDates=false&resultby=0&multiCity=`;
    if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 1) {
      url += `&seladate1=&TID=OW`;
    } else if (
      _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 2 &&
      _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].dest &&
      _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].orig
    ) {
      url += `&seladate1=${formatDate(_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].dep)}&TID=SB`;
    } else {
      // open-jaw and multi-city for mobile only (TID=AS)
      url =
        `https://mobile.emirates.com${edition}/CAB/IBE/searchResults.xhtml?cugoDisabledCabinClass=true&flexiDate=false&searchType=MC&classTypeRadioMulti=0&bookingType=Revenue&originInterlineFlag=false&destInterlineFlag=false&totalAdults=${pax.adults}&totalTeens=0&totalChildren=${pax.children.length}&totalInfants=${pax.infLap}&` +
        _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin
          .map(
            itin =>
              `fromCity=${itin.orig}&toCity=${itin.dest}&classType=${
                cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_4__[/* getCabin */ "b"])(Math.max(...itin.seg.map(seg => seg.cabin)))]
              }&departDay=${Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* to2digits */ "h"])(itin.dep.day)}&departMonth=${Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* to2digits */ "h"])(
                itin.dep.month
              )}&departYear=${
                itin.dep.year
              }&returnDay=&returnMonth=&returnYear=`
          )
          .join("&");
      desc = "Mobile (or resize browser)";
    }
    return url;
  };

  const url = createUrl(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].ekEdition);
  if (!url) {
    return;
  }
  let extra =
    ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  extra += editions
    .map(function(edition, i) {
      return (
        '<a href="' +
        createUrl(edition.value) +
        '" target="_blank">' +
        edition.name +
        "</a>"
      );
    })
    .join("<br/>");
  extra += "</span></span>";

  return {
    url,
    title: "Emirates",
    desc,
    extra
  };
}

function formatDate(date) {
  return `${Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* to2digits */ "h"])(date.day)}-${Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* monthnumberToName */ "f"])(date.month)}-${Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* to2digits */ "h"])(
    date.year
  )}`;
}

Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("airlines", print);
Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* registerSetting */ "c"])("Emirates", "ekEdition", editions, "/global/english");


/***/ }),
/* 21 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);
/* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9);
/* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0);
/* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4);
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(3);






const cabins = ["ECONOMY", "ECONOMY", "BUSINESS", "FIRST"];

function printEY() {
  if (!Object(___WEBPACK_IMPORTED_MODULE_4__["anyCarriers"])("EY")) {
    return;
  }

  var createUrl = function() {
    var pax = Object(___WEBPACK_IMPORTED_MODULE_4__["validatePax"])({
      maxPaxcount: 9,
      countInf: false,
      childAsAdult: 12,
      sepInfSeat: false,
      childMinAge: 2
    });
    if (!pax) {
      Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printEY");
      return;
    }

    let url =
      "https://booking.etihad.com/SSW2010/EYEY/webqtrip.html?journeySpan=MC";
    url += `&numAdults=${pax.adults}`;
    url += `&numChildren=${pax.children.length}`;
    url += `&numInfants=${pax.infLap}`;
    url += `&advertisedFare=${_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].price}`;
    url += `&currency=${_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].cur || "USD"}`;

    let segnum = 0;
    _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.forEach((itin, legnum) => {
      itin.seg.forEach(seg => {
        url += `&ms[${segnum}].from=${seg.orig}`;
        url += `&ms[${segnum}].to=${seg.dest}`;
        url += `&ms[${segnum}].departure=${seg.dep.year}-${Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to2digits */ "h"])(
          seg.dep.month
        )}-${Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to2digits */ "h"])(seg.dep.day)}T${Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to4digitTime */ "i"])(seg.dep.time24)}`;
        url += `&ms[${segnum}].arrival=${seg.arr.year}-${Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to2digits */ "h"])(
          seg.arr.month
        )}-${Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to2digits */ "h"])(seg.arr.day)}T${Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to4digitTime */ "i"])(seg.arr.time24)}`;
        url += `&ms[${segnum}].leg=${legnum}`;
        url += `&ms[${segnum}].cbnClass=${cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_3__[/* getCabin */ "b"])(seg.cabin)]}`;

        segnum++;
      });
    });

    return url;
  };

  var url = createUrl();
  if (!url) {
    return;
  }

  return {
    url,
    title: "Etihad"
  };
}

Object(_print_links__WEBPACK_IMPORTED_MODULE_1__[/* registerLink */ "b"])("airlines", printEY);


/***/ }),
/* 22 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1);
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);
/* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);





const ibEditions = [
  { value: "es-AO", name: "Angola - Español" },
  { value: "pt-AO", name: "Angola - Português" },
  { value: "es-DZ", name: "Argelia - Español" },
  { value: "fr-DZ", name: "Algérie - Français" },
  { value: "en-AR", name: "Argentina - English" },
  { value: "es-AR", name: "Argentina - Español" },
  { value: "en-BE", name: "Belgium - English" },
  { value: "es-BE", name: "Bélgica - Español" },
  { value: "fr-BE", name: "Belgique - Français" },
  { value: "es-BR", name: "Brasil - Español" },
  { value: "pt-BR", name: "Brasil - Português" },
  { value: "en-CL", name: "Chile - English" },
  { value: "es-CL", name: "Chile - Español" },
  { value: "en-CO", name: "Colombia - English" },
  { value: "es-CO", name: "Colombia - Español" },
  { value: "en-CR", name: "Costa Rica - English" },
  { value: "es-CR", name: "Costa Rica - Español" },
  { value: "en-HR", name: "Croatia - English" },
  { value: "es-HR", name: "Croacia - Español" },
  { value: "it-HR", name: "Croazia - Italiano" },
  { value: "en-CU", name: "Cuba - English" },
  { value: "es-CU", name: "Cuba - Español" },
  { value: "en-CZ", name: "Czech Republic - English" },
  { value: "es-CZ", name: "República Checa - Español" },
  { value: "en-DK", name: "Denmark - English" },
  { value: "es-DK", name: "Dinamarca - Español" },
  { value: "de-DE", name: "Deutschland - Deutsch" },
  { value: "es-DE", name: "Alemania - Español" },
  { value: "en-DO", name: "Dominican Republic - English" },
  { value: "es-DO", name: "República Dominicana - Español" },
  { value: "en-EC", name: "Ecuador - English" },
  { value: "es-EC", name: "Ecuador - Español" },
  { value: "en-SV", name: "El Salvador - English" },
  { value: "es-SV", name: "El Salvador - Español" },
  { value: "en-GQ", name: "Equatorial Guinea - English" },
  { value: "es-GQ", name: "Guinea Ecuatorial - Español" },
  { value: "ca-ES", name: "Espanya - Català" },
  { value: "en-ES", name: "Spain - English" },
  { value: "es-ES", name: "España - Español" },
  { value: "es-FR", name: "Francia - Español" },
  { value: "fr-FR", name: "France - Français" },
  { value: "en-GH", name: "Ghana - English" },
  { value: "es-GH", name: "Ghana - Español" },
  { value: "en-GR", name: "Greece - English" },
  { value: "es-GR", name: "Grecia - Español" },
  { value: "en-GT", name: "Guatemala - English" },
  { value: "es-GT", name: "Guatemala - Español" },
  { value: "en-HN", name: "Honduras - English" },
  { value: "es-HN", name: "Honduras - Español" },
  { value: "en-IE", name: "Ireland - English" },
  { value: "es-IE", name: "Irlanda - Español" },
  { value: "en-IL", name: "Israel - English" },
  { value: "es-IL", name: "Israel - Español" },
  { value: "en-IT", name: "Italy - English" },
  { value: "es-IT", name: "Italia - Español" },
  { value: "it-IT", name: "Italia - Italiano" },
  { value: "en-JP", name: "Japan - English" },
  { value: "es-JP", name: "Japón - Español" },
  { value: "ja-JP", name: "日本 - 日本語" },
  { value: "en-MT", name: "Malta - English" },
  { value: "es-MT", name: "Malta - Español" },
  { value: "it-MT", name: "Malta - Italiano" },
  { value: "es-MA", name: "Marruecos - Español" },
  { value: "fr-MA", name: "Maroc - Français" },
  { value: "es-MR", name: "Mauritania - Español" },
  { value: "fr-MR", name: "Mauritanie - Français" },
  { value: "en-MX", name: "Mexico - English" },
  { value: "es-MX", name: "México - Español" },
  { value: "en-NL", name: "Netherlands - English" },
  { value: "es-NL", name: "Holanda - Español" },
  { value: "nl-NL", name: "Nederland - Nederlands" },
  { value: "en-NI", name: "Nicaragua - English" },
  { value: "es-NI", name: "Nicaragua - Español" },
  { value: "en-NG", name: "Nigeria - English" },
  { value: "es-NG", name: "Nigeria - Español" },
  { value: "en-PA", name: "Panama - English" },
  { value: "es-PA", name: "Panamá - Español" },
  { value: "en-PE", name: "Peru - English" },
  { value: "es-PE", name: "Perú - Español" },
  { value: "es-PT", name: "Portugal - Español" },
  { value: "pt-PT", name: "Portugal - Português" },
  { value: "en-PR", name: "Puerto Rico - English" },
  { value: "es-PR", name: "Puerto Rico - Español" },
  { value: "en-RU", name: "Russian Federation - English" },
  { value: "es-RU", name: "Rusia - Español" },
  { value: "ru-RU", name: "Rossiya - Русский" },
  { value: "de-CH", name: "Schweiz - Deutsch" },
  { value: "es-CH", name: "Suiza - Español" },
  { value: "fr-CH", name: "Suisse - Français" },
  { value: "es-SN", name: "Senegal - Español" },
  { value: "fr-SN", name: "Sénégal - Français" },
  { value: "en-ZA", name: "South Africa - English" },
  { value: "es-ZA", name: "Sudáfrica - Español" },
  { value: "en-SE", name: "Sweden - English" },
  { value: "es-SE", name: "Suecia - Español" },
  { value: "en-TR", name: "Turkey - English" },
  { value: "es-TR", name: "Turquía - Español" },
  { value: "en-US", name: "USA - English" },
  { value: "es-US", name: "USA - Español" },
  { value: "en-GB", name: "United Kingdom - English" },
  { value: "es-GB", name: "Reino Unido - Español" },
  { value: "en-UY", name: "Uruguay - English" },
  { value: "es-UY", name: "Uruguay - Español" },
  { value: "en-VE", name: "Venezuela - English" },
  { value: "es-VE", name: "Venezuela - Español" }
];

function printIB() {
  if (!Object(___WEBPACK_IMPORTED_MODULE_2__["anyCarriers"])("IB", "BA")) {
    return;
  }

  var createUrl = function(edition, currency) {
    // 0 = Economy; 1=Premium Economy; 2=Business; 3=First
    var cabins = ["Economy", "Economy", "Business", "First"];
    var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({
      maxPaxcount: 9,
      countInf: false,
      childAsAdult: 12,
      sepInfSeat: false,
      childMinAge: 2
    });
    if (!pax) {
      Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printIB");
      return;
    }
    var url =
      "http://www.iberia.com/web/partnerLink.do?Adult=" +
      pax.adults +
      "&Child=" +
      pax.children.length +
      "&Infant=0&InfantLap=" +
      pax.infLap +
      "&PointOfSaleCountry=" +
      edition[1] +
      "&UserCurrency=" +
      currency +
      "&UserLanguage=" +
      edition[0] +
      "&TripType=";
    if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 1) {
      url += "OneWay";
    } else if (
      _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 2 &&
      _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].dest &&
      _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].orig
    ) {
      url += "RoundTrip";
    } else {
      url += "MultiCity";
    }

    var seg = 0;
    var slice = 1;
    var slicestr = "";
    //Build multi-city search based on legs
    for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) {
      // walks each leg
      for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) {
        seg++;
        //walks each segment of leg
        var k = 0;
        // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover
        while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length - 1) {
          if (
            _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].fnr !=
              _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr ||
            _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440
          )
            break;
          k++;
        }
        url += "&Origin" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig;
        url += "&Destination" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].dest;
        url += "&Carrier" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].carrier;
        url +=
          "&DepartureDate" +
          seg +
          "=" +
          _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year +
          "-" +
          ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) +
          "-" +
          ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2);
        url += "&FlightNumber" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].fnr;
        url +=
          "&BookingCode" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].bookingclass;
        url += "&Cabin" + seg + "=" + cabins[_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].cabin];
        slicestr += (slicestr === "" ? "" : "%2C") + seg;
        j += k;
      }
      url += "&Slice" + slice + "=" + slicestr;
      slice++;
      slicestr = "";
    }
    return url;
  };
  // get edition
  var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].ibEdition.split("-");
  var url = createUrl(edition, "USD");
  if (!url) {
    return;
  }
  var extra =
    ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  extra += ibEditions
    .map(function(obj, i) {
      return (
        '<a href="' +
        createUrl(obj.value.split("-"), "USD") +
        '" target="_blank">' +
        obj.name +
        "</a>"
      );
    })
    .join("<br/>");
  extra += "</span></span>";

  return {
    url,
    title: "Iberia",
    extra
  };
}

Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("airlines", printIB);
Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* registerSetting */ "c"])("Iberia", "ibEdition", ibEditions, "en-US");


/***/ }),
/* 23 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
/* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1);
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3);
/* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(0);






const klEditions = [
  { value: "de_de", name: "Germany / Deutsch" },
  { value: "de_en", name: "Germany / English" },
  { value: "fr_en", name: "France / English" },
  { value: "fr_fr", name: "France / French" },
  { value: "nl_en", name: "Netherlands / English" },
  { value: "gb_en", name: "United Kingdom / English" },
  { value: "us_en", name: "US / English" }
];

const cabins = ["M", "W", "C", "F"];

function printKL() {
  if (!Object(___WEBPACK_IMPORTED_MODULE_3__["anyCarriers"])("KL")) {
    return;
  }

  var createUrl = function(edition) {
    var pax = Object(___WEBPACK_IMPORTED_MODULE_3__["validatePax"])({
      maxPaxcount: 9,
      countInf: false,
      childAsAdult: 12,
      sepInfSeat: false,
      childMinAge: 2
    });
    if (!pax) {
      Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printKL");
      return;
    }

    const segs = Object(_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* getCurrentSegs */ "b"])();

    let url =
      "https://www.klm.com/ams/search-web/api/metasearch?application=EBT7";
    url +=
      "&trip=" +
      segs
        .map(
          seg =>
            `${seg.orig}:${seg.dep.year}${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to2digits */ "h"])(seg.dep.month)}${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to2digits */ "h"])(
              seg.dep.day
            )}@${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to4digitTime */ "i"])(seg.dep.time)}:${seg.carrier}${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to4digits */ "j"])(
              seg.fnr
            )}:${seg.bookingclass}>${seg.dest}`
        )
        .join("-");
    url += "&ref=MS,fb=" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].farebases.join(".");
    url += "&numberOfAdults=" + pax.adults;
    url += "&numberOfChildren=" + pax.children.length;
    url += "&numberOfInfants=" + pax.infLap;
    url +=
      "&cabinClass=" +
      cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getCabin */ "b"])(Math.min(...segs.map(seg => seg.cabin)))];
    url += "&country=" + edition[0];
    url += "&language=" + edition[1];

    return url;
  };

  // get edition
  var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].klEdition.split("_");
  if (edition.length != 2) {
    Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "g"])("Error:Invalid KLM-Edition");
    return;
  }
  var url = createUrl(edition);
  if (!url) {
    return;
  }
  var extra =
    ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  extra += klEditions
    .map(function(obj, i) {
      return (
        '<a href="' +
        createUrl(obj.value.split("_")) +
        '" target="_blank">' +
        obj.name +
        "</a>"
      );
    })
    .join("<br/>");
  extra += "</span></span>";

  return {
    url,
    title: "KLM",
    extra
  };
}

Object(___WEBPACK_IMPORTED_MODULE_3__["register"])("airlines", printKL);
Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("KLM", "klEdition", klEditions, "us_en");


/***/ }),
/* 24 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1);
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);
/* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);





const laEditions = [
  { value: "es/ar", name: "Argentina / Spanish" },
  { value: "pt/br", name: "Brasil / Portuguese" },
  { value: "es/cl", name: "Chile / Spanish" },
  { value: "es/co", name: "Colombia / Spanish" },
  { value: "es/ec", name: "Ecuador / Spanish" },
  { value: "es/pe", name: "Peru / Spanish" },
  { value: "es/uy", name: "Uruguay / Spanish" },
  { value: "en/us", name: "US / English" },
  { value: "es/mx", name: "Mexico / Spanish" },
  { value: "en/ca", name: "Canada / English" },
  { value: "de/de", name: "Germany / German" },
  { value: "es/es", name: "Spain / Spanish" },
  { value: "fr/fr", name: "France / French" },
  { value: "en/it", name: "Italy / English" },
  { value: "en/uk", name: "UK / English" },
  { value: "en/ue", name: "Rest of Europe / English" },
  { value: "en/au", name: "Australia / English" },
  { value: "en/nz", name: "New Zealand / English" },
  { value: "es/un", name: "Other Countries / Spanish" },
  { value: "en/un", name: "Other Countries / English" }
];

function printLA() {
  if (!Object(___WEBPACK_IMPORTED_MODULE_2__["anyCarriers"])("LA")) {
    return;
  }

  // NOTE: currency will be determined by the locale; the deeplink does not support manually specifying the currency
  var createUrl = function(edition) {
    var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({
      maxPaxcount: 9,
      countInf: false,
      childAsAdult: 12,
      sepInfSeat: false,
      childMinAge: 2
    });
    if (!pax) {
      Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printLA");
      return;
    }

    const parameters = {
      passengers: {
        numberAdults: pax.adults.toString(),
        numberInfants: pax.infLap.toString(),
        numberChildren: pax.children.length.toString()
      },
      trip: {
        flights: _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.map(itin => {
          return {
            amount: _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].price,
            currency: _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].cur || "USD",
            segments: itin.seg.map(seg => {
              return {
                departure_airport: seg.orig,
                flight_number: seg.fnr,
                departure_date: formatDate(seg.dep),
                arrival_airport: seg.dest,
                farebasis: seg.farebase,
                marketing_airline: seg.carrier,
                class: seg.bookingclass,
                arrival_date: formatDate(seg.arr)
              };
            })
          };
        })
      }
    };

    // The booking.lan.com url as of 2/27/2020 needs to be http instead of https. Fortunately, it does redirect you
    // to https://ssl.lan.com afterwards, but the booking link seems to be more successful than starting with ssl
    return (
      `http://booking.lan.com/cgi-bin/compra/paso4.cgi?forced_home=${edition}&sessionParameters=` +
      encodeURIComponent(JSON.stringify(parameters))
    );
  };
  var url = createUrl(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].laEdition);
  if (!url) {
    return;
  }
  var extra =
    ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  extra += laEditions
    .map(function(obj, i) {
      return (
        '<a href="' +
        createUrl(obj.value) +
        '" target="_blank">' +
        obj.name +
        "</a>"
      );
    })
    .join("<br/>");
  extra += "</span></span>";
  return {
    url,
    title: "LATAM",
    extra
  };
}

function formatDate(date) {
  return `${date.year}-${Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* to2digits */ "h"])(date.month)}-${Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* to2digits */ "h"])(date.day)}`;
}

Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("airlines", printLA);
Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* registerSetting */ "c"])("LATAM", "laEdition", laEditions, "en/us");


/***/ }),
/* 25 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1);
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);
/* harmony import */ var _print_amadeus__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7);





const lhEditions = [
  { value: "AL-gb", name: "Albania / English" },
  { value: "DZ-fr", name: "Algeria / Français" },
  { value: "AO-gb", name: "Angola / English" },
  { value: "AR-es", name: "Argentina / Español" },
  { value: "AM-gb", name: "Armenia / English" },
  { value: "AU-gb", name: "Australia / English" },
  { value: "AT-de", name: "Austria / Deutsch" },
  { value: "AT-gb", name: "Austria / English" },
  { value: "AZ-gb", name: "Azerbaijan / English" },
  { value: "BH-gb", name: "Bahrain / English" },
  { value: "BY-gb", name: "Belarus / English" },
  { value: "BE-gb", name: "Belgium / English" },
  { value: "BA-gb", name: "Bosnia/Hercegovina / English" },
  { value: "BR-pt", name: "Brazil / Português" },
  { value: "BG-gb", name: "Bulgaria / English" },
  { value: "CA-gb", name: "Canada / English" },
  { value: "CA-fr", name: "Canada / Français" },
  { value: "CL-es", name: "Chile / Español" },
  { value: "CN-gb", name: "China / English" },
  { value: "CO-es", name: "Colombia / Español" },
  { value: "HR-gb", name: "Croatia / English" },
  { value: "CY-gb", name: "Cyprus / English" },
  { value: "CZ-gb", name: "Czech Republic / English" },
  { value: "DK-gb", name: "Denmark / English" },
  { value: "EG-gb", name: "Egypt / English" },
  { value: "GQ-gb", name: "Equatorial Guinea / English" },
  { value: "ER-gb", name: "Eritrea / English" },
  { value: "EE-gb", name: "Estonia / English" },
  { value: "ET-gb", name: "Ethiopia / English" },
  { value: "FI-gb", name: "Finland / English" },
  { value: "FR-gb", name: "France / English" },
  { value: "FR-fr", name: "France / Français" },
  { value: "GA-gb", name: "Gabon / English" },
  { value: "GE-gb", name: "Georgia / English" },
  { value: "DE-de", name: "Germany / Deutsch" },
  { value: "DE-gb", name: "Germany / English" },
  { value: "GH-gb", name: "Ghana / English" },
  { value: "GR-gb", name: "Greece / English" },
  { value: "HK-gb", name: "Hong Kong / English" },
  { value: "HU-gb", name: "Hungary / English" },
  { value: "IS-gb", name: "Iceland / English" },
  { value: "IN-gb", name: "India / English" },
  { value: "ID-gb", name: "Indonesia / English" },
  { value: "IR-gb", name: "Iran / English" },
  { value: "IQ-gb", name: "Iraq / English" },
  { value: "IE-gb", name: "Ireland / English" },
  { value: "IL-gb", name: "Israel / English" },
  { value: "IT-it", name: "Italy / Italiano" },
  { value: "IT-gb", name: "Italy / English" },
  { value: "JP-gb", name: "Japan / English" },
  { value: "JO-gb", name: "Jordan / English" },
  { value: "KZ-gb", name: "Kazakhstan / English" },
  { value: "KE-gb", name: "Kenya / English" },
  { value: "KR-gb", name: "Republic of Korea / English" },
  { value: "KW-gb", name: "Kuwait / English" },
  { value: "LV-gb", name: "Latvia / English" },
  { value: "LB-gb", name: "Lebanon / English" },
  { value: "LY-gb", name: "Libya / English" },
  { value: "LT-gb", name: "Lithuania / English" },
  { value: "LU-gb", name: "Luxembourg / English" },
  { value: "MY-gb", name: "Malaysia / English" },
  { value: "MV-gb", name: "Maldives / English" },
  { value: "MT-gb", name: "Malta / English" },
  { value: "MU-gb", name: "Mauritius / English" },
  { value: "MX-es", name: "Mexico / Español" },
  { value: "MD-gb", name: "Moldova / English" },
  { value: "MA-fr", name: "Morocco / Français" },
  { value: "NL-gb", name: "Netherlands / English" },
  { value: "NZ-gb", name: "New Zealand / English" },
  { value: "NG-gb", name: "Nigeria / English" },
  { value: "NO-gb", name: "Norway / English" },
  { value: "OM-gb", name: "Oman / English" },
  { value: "PK-gb", name: "Pakistan / English" },
  { value: "PA-es", name: "Panama / Español" },
  { value: "PH-gb", name: "Philippines / English" },
  { value: "PL-gb", name: "Poland / English" },
  { value: "PL-pl", name: "Poland / Polski" },
  { value: "PT-gb", name: "Portugal / English" },
  { value: "PT-pt", name: "Portugal / Português" },
  { value: "QA-gb", name: "Qatar / English" },
  { value: "CD-gb", name: "Republic of the Congo / English" },
  { value: "RO-gb", name: "Romania / English" },
  { value: "RU-gb", name: "Russia / English" },
  { value: "RU-ru", name: "Russia / Русский" },
  { value: "SA-gb", name: "Saudi Arabia / English" },
  { value: "RS-gb", name: "Serbia / English" },
  { value: "SG-gb", name: "Singapore / English" },
  { value: "SK-gb", name: "Slovakia / English" },
  { value: "SI-gb", name: "Slovenia / English" },
  { value: "ZA-gb", name: "South Africa / English" },
  { value: "ES-gb", name: "Spain / English" },
  { value: "ES-es", name: "Spain / Español" },
  { value: "SD-gb", name: "Sudan / English" },
  { value: "SE-gb", name: "Sweden / English" },
  { value: "CH-de", name: "Switzerland / Deutsch" },
  { value: "CH-gb", name: "Switzerland / English" },
  { value: "CH-fr", name: "Switzerland / Français" },
  { value: "TW-gb", name: "Taiwan / English " },
  { value: "TH-gb", name: "Thailand / English" },
  { value: "TN-fr", name: "Tunisia / Français" },
  { value: "TR-gb", name: "Turkey / English" },
  { value: "TM-gb", name: "Turkmenistan / English" },
  { value: "UA-gb", name: "Ukraine / English" },
  { value: "AE-gb", name: "United Arab Emirates / English" },
  { value: "UK-gb", name: "United Kingdom / English" },
  { value: "US-gb", name: "United States / English" },
  { value: "VE-es", name: "Venezuela / Español" },
  { value: "VN-gb", name: "Vietnam / English" },
  { value: "XX-gb", name: "Other countries / English" }
];

function printLH() {
  if (!Object(___WEBPACK_IMPORTED_MODULE_2__["anyCarriers"])("LH", "OS")) {
    return;
  }

  var createUrl = function(edition) {
    var style = 0; // 0 is direct booking - 1 is pre selected
    var paxConfig = { allowinf: 1, youthage: 0 };
    var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({
      maxPaxcount: 9,
      countInf: false,
      childAsAdult: 12,
      sepInfSeat: false,
      childMinAge: 2
    });
    if (!pax) {
      Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printLH");
      return false;
    }
    var amadeusConfig = {
      sepcabin: 0,
      detailed: 0,
      allowpremium: 1,
      inctimes: 0
    };
    if (style == 0) {
      var url =
        "https://book.lufthansa.com/lh/dyn/air-lh/revenue/availThenFare?";
      url += "WDS_MSE_PRICE_CURRENCY=EUR&WDS_MSE_TOTAL_PRICE=1.00&";
    } else {
      var url = "https://book.lufthansa.com/lh/dyn/air-lh/revenue/viewFlights?";
    }
    url +=
      "PORTAL=LH&COUNTRY_SITE=" +
      edition[0].toUpperCase() +
      "&POS=" +
      edition[0].toUpperCase() +
      "&LANGUAGE=" +
      edition[1].toUpperCase() +
      "&SECURE=TRUE&SITE=LUFTLUFT&SO_SITE_LH_FRONTEND_URL=www.lufthansa.com&WDS_WR_CHANNEL=LHCOM";
    var tmpPax = Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_3__[/* getAmadeusPax */ "a"])(pax, paxConfig);
    url += tmpPax.url;
    url += "&NB_ADT=" + tmpPax.adults;
    url += "&NB_INF=" + tmpPax.infants;
    url += "&NB_CHD=" + tmpPax.children;
    url += "&TRIP_TYPE=" + Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_3__[/* getAmadeusTriptype */ "b"])();
    url += Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_3__[/* getAmadeusUrl */ "c"])(amadeusConfig);

    return url;
  };
  // get edition
  var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].lhEdition.split("-");
  if (edition.length != 2) {
    Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error:Invalid Lufthansa-Edition");
    return;
  }
  var url = createUrl(edition);
  if (!url) {
    return;
  }
  var extra =
    ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  extra += lhEditions
    .map(function(obj, i) {
      return (
        '<a href="' +
        createUrl(obj.value.split("-")) +
        '" target="_blank">' +
        obj.name +
        "</a>"
      );
    })
    .join("<br/>");
  extra += "</span></span>";

  return {
    url,
    title: "Lufthansa",
    extra
  };
}

Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("airlines", printLH);
Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* registerSetting */ "c"])("Lufthansa", "lhEdition", lhEditions, "US-gb");


/***/ }),
/* 26 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
/* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1);
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3);
/* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(0);






const lxEditions = [
  { value: "de_de", name: "Germany" },
  { value: "us_en", name: "US" }
];

function printLX() {
  if (!Object(___WEBPACK_IMPORTED_MODULE_3__["anyCarriers"])("LX")) {
    return;
  }

  // 0 = Economy; 1=Premium Economy; 2=Business; 3=First
  var cabins = ["", "", "/class-business", "/class-first"];
  var mincabin = 3;
  var createUrl = function(edition) {
    var url =
      "https://www.swiss.com/" +
      edition[0] +
      "/" +
      edition[1] +
      "/Book/Combined";
    var pax = Object(___WEBPACK_IMPORTED_MODULE_3__["validatePax"])({
      maxPaxcount: 9,
      countInf: false,
      childAsAdult: 12,
      sepInfSeat: false,
      childMinAge: 2
    });
    if (!pax) {
      Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printLX");
      return;
    }
    //Build multi-city search based on legs
    for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin.length; i++) {
      // walks each leg
      url +=
        "/" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].orig + "-" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dest + "/";
      for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length; j++) {
        //walks each segment of leg
        var k = 0;
        // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover
        while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length - 1) {
          if (
            _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k].fnr !=
              _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr ||
            _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440
          )
            break;
          k++;
        }
        url +=
          _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].carrier +
          _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].fnr +
          "-";
        if (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin < mincabin) {
          mincabin = _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin;
        }
        j += k;
      }
      url = url.substring(0, url.length - 1);
      url +=
        "/" +
        (i > 0 ? "to" : "from") +
        "-" +
        _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.year +
        "-" +
        ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.month).slice(-2) +
        "-" +
        ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.day).slice(-2);
    }
    url +=
      "/adults-" +
      pax.adults +
      "/children-" +
      pax.children.length +
      "/infants-" +
      pax.infLap;
    url += cabins[_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? mincabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])()];
    return url;
  };
  // get edition
  var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].lxEdition.split("_");
  if (edition.length != 2) {
    Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "g"])("Error:Invalid Swiss-Edition");
    return;
  }
  var url = createUrl(edition);
  if (!url) {
    return;
  }
  var extra =
    ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  extra += lxEditions
    .map(function(obj, i) {
      return (
        '<a href="' +
        createUrl(obj.value.split("_")) +
        '" target="_blank">' +
        obj.name +
        "</a>"
      );
    })
    .join("<br/>");
  extra += "</span></span>";

  return {
    url,
    title: "Swiss",
    extra
  };
}

Object(___WEBPACK_IMPORTED_MODULE_3__["register"])("airlines", printLX);
Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("Swiss", "lxEdition", lxEditions, "us_en");


/***/ }),
/* 27 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1);
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);
/* harmony import */ var _print_amadeus__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7);





function printOA() {
  if (!Object(___WEBPACK_IMPORTED_MODULE_2__["anyCarriers"])("OA", "A3")) {
    return;
  }

  var url =
    "https://e-ticket.olympicair.com/A3Responsive/dyn/air/booking/?BOOKING_FLOW=REVENUE&FLEXIBILITY=3&DISPLAY_TYPE=2&FORCE_OVERRIDE=TRUE&PRICING_TYPE=O";
  var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({
    maxPaxcount: 9,
    countInf: false,
    childAsAdult: 12,
    sepInfSeat: false,
    childMinAge: 2
  });
  if (!pax) {
    Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printOA");
    return;
  }
  var paxConfig = { allowinf: 1, youthage: 0 };
  var amadeusConfig = {
    sepcabin: 0,
    detailed: 0,
    allowpremium: 1,
    inctimes: 1
  };
  var tmpPax = Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_3__[/* getAmadeusPax */ "a"])(pax, paxConfig);
  url += "&TRIP_TYPE=" + Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_3__[/* getAmadeusTriptype */ "b"])();
  url += tmpPax.url;
  url += Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_3__[/* getAmadeusUrl */ "c"])(amadeusConfig);
  url +=
    "&SITE=E00KE00K&SKIN=skin_oa&SO_GL=%3CSO_GL%3E%09%3CGLOBAL_LIST%3E%09%09%3CNAME%3ESL_TRAVELLER_TYPE_LIST%3C%2FNAME%3E%09%09%3CLIST_ELEMENT%3E%3CCODE%3EADT%3C%2FCODE%3E%3CLIST_VALUE%3EAdult%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EN%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EADT%3C%2FLIST_VALUE%3E%3C%2FLIST_ELEMENT%3E%09%09%3CLIST_ELEMENT%3E%3CCODE%3EB15%3C%2FCODE%3E%3CLIST_VALUE%3EYoung+adult%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EN%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EB15%3C%2FLIST_VALUE%3E%3C%2FLIST_ELEMENT%3E%09%09%3CLIST_ELEMENT%3E%3CCODE%3EC07%3C%2FCODE%3E%3CLIST_VALUE%3EYouth%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EN%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EC07%3C%2FLIST_VALUE%3E%3C%2FLIST_ELEMENT%3E%09%09%3CLIST_ELEMENT%3E%3CCODE%3EC03%3C%2FCODE%3E%3CLIST_VALUE%3EChild%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EN%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EC03%3C%2FLIST_VALUE%3E%3C%2FLIST_ELEMENT%3E%09%09%3CLIST_ELEMENT%3E%3CCODE%3EINF%3C%2FCODE%3E%3CLIST_VALUE%3EInfant%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EN%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EINF%3C%2FLIST_VALUE%3E%3C%2FLIST_ELEMENT%3E++++++++%3CLIST_ELEMENT%3E%3CCODE%3EUNN%3C%2FCODE%3E%3CLIST_VALUE%3EUMNR%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EN%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EUNN%3C%2FLIST_VALUE%3E%3C%2FLIST_ELEMENT%3E%09%3C%2FGLOBAL_LIST%3E%3C%2FSO_GL%3E&SO_SITE_ETKT_Q_OFFICE_ID=ATHA308OA&SO_SITE_OFFICE_ID=ATHA308OA&SO_SITE_POINT_OF_SALE=ATH&SO_SITE_POINT_OF_TICKETING=ATH&SO_SITE_PREBOOK_DURATION=I180&SO_SITE_QUEUE_OFFICE_ID=ATHA308OA&SO_SITE_SP_QUEUE_OFFICE_ID=ATHA308OA";
  url +=
    "&LANGUAGE=" +
    (_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language == "oa" || _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language == "de"
      ? _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language.toUpperCase()
      : "GB");
  url +=
    "&WDS_ADD_BOOK_NOW_BUTTON_EMAF=TRUE&WDS_ADVERTISING_PANEL_CONF_ACTIVATED=true&WDS_AFFILIATE_STATUS=C&WDS_AMOP_DISPLAY_PRIORITY=PAYPAL:SOFORT:KLARNA:EPS:IDEAL:BANCONTACT:ENTERCASH:ALIPAY:CUP&WDS_AMOP_FEE=PAYPAL:0;KLARNA:0;SOFORT:0;ENTERCASH:0;EPS:0;IDEAL:0;BANCONTACT:0;ALIPAY:0;CUP:0;&WDS_AMOP_FEE_APPLY=PER_TRANSACTION&WDS_AMOP_FEE_CALCULATION=PER&WDS_AMOP_LIST_ACTIVATED=PAYPAL;KLARNA;SOFORT;ENTERCASH;EPS;IDEAL;BANCONTACT;ALIPAY;CUP&WDS_AMOP_LIST_DEACTIVATED=&WDS_AMOP_TIME_LIMIT=PAYPAL:48;KLARNA:0;SOFORT:0;ENTERCASH:0;EPS:0;IDEAL:0;BANCONTACT:0;ALIPAY:24;CUP:24;&WDS_ANCILLARY_IN_MILES_ENABLED=TRUE&WDS_ASSISTANCE_REQUEST_ACTIVATED=TRUE&WDS_ATCOM_TIMEOUT=2000&WDS_AVAIL_PRICE_DISPLAY_TYPE=PER_ADT_WITH_TAX_NO_FEE&WDS_BAG_PLACEHOLDER_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_BAG_POLICY_PANEL_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_BOOKING_LISTENER_URL=https://en.aegeanair.com/BookingListener.axd&WDS_BOUND_INDEX_EXPANDED=1&WDS_BUSINESS_MEAL_FARE_FAMILIES=BUSINESS:BUSINESTES:BUSINESSI&WDS_BUSINESS_MEAL_FREQUENT_FLYER_LEVELS=GOLD:SILVER&WDS_BUSINESS_MEAL_SUPPORTED=true&WDS_BUSINESS_ON_BOARD_DISPLAY_IN_LOGIN_PANEL=TRUE&WDS_BUSINESS_ON_BOARD_ENABLED=TRUE&WDS_BUSINESS_ON_BOARD_PAX_TYPE=ADT&WDS_CABIN_CLASS_DISPLAY=TRUE&WDS_CALENDAR_TO_UPSELL_FLEXIBLE_ACTIVATED=3&[email protected]&WDS_CAR_ENABLED=FALSE&WDS_CAR_PANEL_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_CC_FEE_CARD_TYPE=VI:0;CA:0;MA:0;AX:0;DC:0;TP:;&WDS_CC_FEE_NO_CARD=0&WDS_CC_FEE_ZERO_DISPLAYED=FALSE&WDS_CC_LIST=VI:CA:MA:AX:DC:TP&WDS_CFF_TOUSE=CFF01FEB14&WDS_CHANNEL=B2C&WDS_CLEAR_CONTENT_URL=https://en.aegeanair.com/PlainContent.axd&WDS_DEVICE_NAME=DESKTOP_UNKNOWN&WDS_DEVICE_OS=Windows_10&WDS_DEVICE_VIEWPORT=L&WDS_DISPLAY_EMAIL_IN_BROWSER_URL=https://en.aegeanair.com/ConfirmationEmail.axd&WDS_DISPLAY_FBA_AND_REFUNDABILITY_PER_BOUND_IN_SB=TRUE&WDS_DISPLAY_GREEK_RURAL_ID=FALSE&WDS_DISPLAY_RECEIPT=SHOW&WDS_DISPLAY_REGULATION_CONDITIONS_COUNTRY=FR&WDS_DISPLAY_REGULATION_CONDITIONS_LANG=FR&WDS_DONATION_PANEL_ACTIVATED=FALSE&WDS_DONATION_PANEL_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_EMAF_BOOK_NOW_URL=https://en.aegeanair.com/PostHandler.axd&WDS_ENABLE_PARKING=FALSE&WDS_ENABLE_TOKEN=true&WDS_ENABLE_TOKEN_FOR_CAR=false&WDS_ENABLE_TOKEN_FOR_HOTEL=false&WDS_EPTS=unknown_call&WDS_EXTERNAL_CSS_URL=https://en.aegeanair.com/css/1A/responsive.css?v=10&WDS_EXTRAS_DEFAULT_PANEL_ORDER=BAGGAGE;MEALS;SPEQ;PETS;FASTTRACK;INSURANCE;PARKING;DONATION&WDS_FARE_COMPARISON_URL=https://en.aegeanair.com/FareFamilyComparison.axd&WDS_FARE_CONDITIONS_URL=https://en.aegeanair.com/ffc.axd&WDS_FASTTRACK_ELIGIBLE_AIRPORTS=LCA;ATH&WDS_FASTTRACK_ENABLED=TRUE&WDS_FASTTRACK_HANDLER_URL=https://en.aegeanair.com/FastTrackHandler.axd&WDS_FREQUENT_FLYER_PROGRAMS_OA_FLIGHTS=A3;AC;UA;MS;TK;NH;LH;SQ&WDS_GDPR_DISPLAY_PROMOS_CONFIRMATION_NO_CONSENT=FALSE&WDS_GDPR_HANDLER_URL=https://en.aegeanair.com/api/v1/members/checkgdpremailstatus&WDS_GO_TO_FINALIZE_URL=https://en.aegeanair.com/FinalizeRedirect.axd&WDS_GO_TO_MY_BOOKING_URL=https://en.aegeanair.com/MyBooking.axd&WDS_GO_TO_SEAT_SELECTION_URL=https://en.aegeanair.com/SeatRedirect.axd&WDS_HANDLE_SOS_AS_RM_FEE=TRUE&WDS_HOTEL_ENABLED=FALSE&WDS_HOTEL_PANEL_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_HOTEL_POPUP_CONF_ACTIVATED=TRUE&WDS_HOTEL_POPUP_CONF_DELAY=10000&WDS_HOTEL_RECOMMENDATION_PANEL_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_INSURANCE_ACTIVATED=TRUE&WDS_INSURANCE_PANEL_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_INSURANCE_PRESELECT=NONE&WDS_LATE_LOGIN_ENABLED=TRUE&WDS_LATE_LOGIN_URL=https://en.aegeanair.com/api/v1/members/loyaltyauth&WDS_MEAL_FORBIDDEN_PAX_TYPE=INF&WDS_MEAL_HANDLER_URL=https://en.aegeanair.com/MealHandler.axd&WDS_MEAL_LIST_PROPOSED=BBML:BLML:CHML:DBML:FPML:GFML:KSML:LCML:LFML:NLML:LSML:MOML:HNML:SFML:VOML:VLML:AVML:VJML:VGML:RVML&WDS_MILES_EARNED_HANDLER_URL=https://en.aegeanair.com/AwardedMiles.axd&WDS_NEW_PROMOTION_TYPE=NONE&WDS_NEW_PROMOTION_WEBSERVICES_ENVIRONMENT=PRODUCTION&WDS_OBFEE_FROM_NEWPOLICY_ACTIVATED=TRUE&WDS_OLYMPIC_TRACKING=true&WDS_ONLY_DIRECT_REQUESTED=FALSE&WDS_PARKING_PANEL_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_PETS_ENABLED=TRUE&WDS_PHONE_PRESELECT_COUNTRY_CODE=US&WDS_PLUSGRADE_ENABLED=false&WDS_PLUSGRADE_HANDLER_URL=https://en.aegeanair.com/PlusgradeHandler.axd&WDS_PROMO_SLOT_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_PROMOCODE_ROUTE_AUTHORIZED=FALSE&WDS_PROMOTION_RBD_LIST=P&WDS_REBOOKING_HIGHSEASON_DATE=&WDS_RESKIN=TRUE&WDS_SB_HOTEL_TIMEOUT=15000&WDS_SEAT_BANNER_URL=https://en.aegeanair.com/SeatBanner.axd&WDS_SEATMAP_ENABLED=TRUE&WDS_SMS_OPTION=SHOW&[email protected]&[email protected]&WDS_SPECIAL_MEAL_LIST=BBML:BLML:CHML:DBML:FPML:GFML:KSML:LCML:LFML:NLML:LSML:MOML:HNML:SFML:VOML:VLML:AVML:VJML:VGML:RVML&WDS_SPECIAL_MEAL_SUPPORTED=TRUE&WDS_SPEQ_ENABLED=TRUE&WDS_TAX_BREAKDOWN_REGULATION_ALLOW_LANG=FR&WDS_TEALEAF_ENABLED=TRUE&WDS_TTT_ENABLED=TRUE&WDS_TTT_PROMO_FARES_REG_EXP=^PR([0-9])+$&WDS_TTT_SELECTION_PANEL_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_UMNR_ENTRY_OVERRIDE=WDS_HOTEL_ENABLED:FALSE;WDS_CAR_ENABLED:FALSE;WDS_TTT_ENABLED:false;WDS_FASTTRACK_ENABLED:false;WDS_ANCILLARY_IN_MILES:false;WDS_ENABLE_PARKING:false;WDS_ASSISTANCE_REQUEST_ACTIVATED:false;WDS_LATE_LOGIN_ENABLED:false;WDS_BUSINESS_ON_BOARD_ENABLED:false&WDS_URL_FACADE_ERROR=https://www.olympicair.com/en/Travel/Reservations/Tickets&WDS_URL_FACADE_NEWSEARCH=https://www.olympicair.com/en/Travel/Reservations/Tickets&WDS_URL_WAITING_CONTENT=https://en.aegeanair.com/WaitingPage.axd&WDS_USE_A3_SOS_INSURANCE_PANEL=TRUE&WDS_USEFUL_LINKS_PANEL_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_VOUCHER_BANNER_ACTIVATED=TRUE&WDS_VOUCHER_BANNER_URL=https://en.aegeanair.com/PromoSlots.axd";

  return {
    url,
    title: "Olympic Air"
  };
}

Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("airlines", printOA);


/***/ }),
/* 28 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3);
/* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0);




function printPS() {
  if (!Object(___WEBPACK_IMPORTED_MODULE_1__["anyCarriers"])("PS")) {
    return;
  }

  var createUrl = function(edition, currency) {
    // 0 = Economy; 1=Premium Economy; 2=Business; 3=First
    var cabins = ["Economy", "Economy", "Business", "First"];
    var pax = Object(___WEBPACK_IMPORTED_MODULE_1__["validatePax"])({
      maxPaxcount: 9,
      countInf: false,
      childAsAdult: 12,
      sepInfSeat: false,
      childMinAge: 2
    });
    if (!pax) {
      Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printPS");
      return false;
    }
    var url =
      "https://bookapi.flyuia.com/flights/metaSearchQuery?Adult=" +
      pax.adults +
      "&Child=" +
      pax.children.length +
      "&Infant=" +
      pax.infLap +
      "&PointOfSaleCountry=" +
      edition[1] +
      "&UserCurrency=" +
      currency +
      "&UserLanguage=" +
      edition[0] +
      "&TripType=";
    if (_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length == 1) {
      url += "OneWay";
    } else if (
      _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length == 2 &&
      _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[1].dest &&
      _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[1].orig
    ) {
      url += "RoundTrip";
    } else {
      url += "MultiCity";
    }

    var seg = 0;
    var slice = 1;
    var slicestr = "";
    //Build multi-city search based on legs
    for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length; i++) {
      // walks each leg
      for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg.length; j++) {
        seg++;
        //walks each segment of leg
        var k = 0;
        // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover
        while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg.length - 1) {
          if (
            _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].fnr !=
              _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr ||
            _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440
          )
            break;
          k++;
        }
        url += "&Origin" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].orig;
        url += "&Destination" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].dest;
        url += "&Carrier" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].carrier;
        url +=
          "&DepartureDate" +
          seg +
          "=" +
          _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dep.year +
          "-" +
          ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) +
          "-" +
          ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2);
        url += "&FlightNumber" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].fnr;
        url +=
          "&BookingCode" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].bookingclass;
        url += "&Cabin" + seg + "=" + cabins[_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].cabin];
        slicestr += (slicestr === "" ? "" : "%2C") + seg;
        j += k;
      }
      url += "&Slice" + slice + "=" + slicestr;
      slice++;
      slicestr = "";
    }
    return url;
  };
  var url = createUrl(["EN", "US"], "USD");
  if (!url) {
    return;
  }

  return {
    url,
    title: "UIA"
  };
}

Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("airlines", printPS);


/***/ }),
/* 29 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
/* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1);
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3);
/* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(0);






const qfEditions = [
  { value: "EN_AU", name: "Australia" },
  { value: "EN_NZ", name: "New Zealand" },
  { value: "EN_US", name: "United States" }
];

const qfCurrencies = [
  { value: "AUD", name: "AUD" },
  { value: "NZD", name: "NZD" },
  { value: "USD", name: "USD" }
];

function printQF() {
  if (!Object(___WEBPACK_IMPORTED_MODULE_3__["anyCarriers"])("QF", "JQ", "NZ")) {
    return;
  }

  /* Qantas partner deep-link */
  var createUrl = function(edition, currency) {
    // 0 = Economy; 1=Premium Economy; 2=Business; 3=First
    var travelClass = ["ECO", "PRM", "BUS", "FIR"];
    // Start the minimum cabin at highest possible (it will drop as we check each leg):
    var mincabin = 3;
    // Validate the passenger totals first:
    var pax = Object(___WEBPACK_IMPORTED_MODULE_3__["validatePax"])({
      maxPaxcount: 9,
      countInf: false,
      childAsAdult: 16,
      sepInfSeat: false,
      childMinAge: 2
    });
    if (!pax) {
      Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printQF");
      return false;
    }
    var nbrChildren = pax.children.length;
    if (!nbrChildren || typeof nbrChildren === "undefined") {
      // default to 0 children if undefined:
      nbrChildren = 0;
    }

    // Build search based on legs:
    console.log("printQF: begin leg traversal...");
    var url = "";
    var prefixFltNbr = "sdcFlightNumber";
    var prefixSegRbd = "sdcSegmentRbd";
    var depAirports = "&depAirports=";
    var destAirports = "&destAirports=";
    var segDepAirports = "&depAirports=";
    var segDestAirports = "&destAirports=";
    var tmpTravelDates = "";
    var finalDest = _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[0].seg[0].dest;

    for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin.length; i++) {
      // walks each parent "leg" of the itinerary (a leg can have multiple flight segments)

      // Record the travel date for each leg:
      if (tmpTravelDates === "" || !tmpTravelDates) {
        tmpTravelDates +=
          _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.year.toString() +
          ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.month).slice(-2).toString() +
          ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.day).slice(-2).toString() +
          "0000";
      } else {
        tmpTravelDates +=
          "%2C" +
          _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.year.toString() +
          ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.month).slice(-2).toString() +
          ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.day).slice(-2).toString() +
          "0000";
      }

      // Grab the origin airport of each leg:
      if (segDepAirports.length > 13) segDepAirports += "%2C";
      segDepAirports += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].orig.toString();
      // Grab the destination airport of each leg:
      if (segDestAirports.length > 14) segDestAirports += "%2C";
      segDestAirports += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dest.toString();

      for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length; j++) {
        // walks each flight segment of the parent leg
        var k = 0;
        // Do we need to skip segments? fnr has to be the same and it must be just a layover:
        while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length - 1) {
          if (
            _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k].fnr !=
              _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr ||
            _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440
          ) {
            break;
          }
          k++;
        }
        // Construct URL for this leg:
        url +=
          "&" +
          prefixFltNbr +
          (i + 1) +
          (j + 1) +
          "=" +
          _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].carrier +
          _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].fnr;
        url +=
          "&" +
          prefixSegRbd +
          (i + 1) +
          (j + 1) +
          "=" +
          _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].bookingclass;

        // record the departing and destination airports for this leg:
        // all departing airports:
        if (depAirports.length > 13) depAirports += "%2C";
        depAirports += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].orig.toString();
        // all destination airports:
        if (destAirports.length > 14) destAirports += "%2C";
        destAirports += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dest.toString();

        if (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin < mincabin) {
          mincabin = _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin;
        }
        j += k;
      }
    }

    // Add airports:
    // url += depAirports + destAirports;
    url += segDepAirports + segDestAirports;
    // Add travel dates:
    url += "&travelDates=" + tmpTravelDates;
    // Add price info:
    url += "&sdcTripPriceAmount=0.00";
    // Add device type:
    url += "&QFdeviceType=desktop";

    // Begin final deeplink URL construction:
    var urlBase =
      "https://book.qantas.com/qf-booking/dyn/air/tripflow.redirect?APPLICATION_NAME=SDC";
    // Add edition / locale:
    urlBase += "&USER_LANG=EN&USER_LOCALE=" + edition;
    // Add class(es) of service:
    urlBase +=
      "&travelClass=" +
      travelClass[_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? mincabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])()];
    // Add passenger info:
    urlBase +=
      "&numberOfAdults=" +
      pax.adults +
      "&numberOfChildren=" +
      nbrChildren.toString() +
      "&numberOfInfants=" +
      pax.infLap;
    // Add currency:
    urlBase += "&sdcPriceCurrency=" + currency;

    return urlBase + url;
  };
  // get edition
  var url = createUrl(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].qfEdition, _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].qfCurrency);
  if (!url) {
    return;
  }

  var extra =
    ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  extra += qfEditions
    .map(function(obj, i) {
      return (
        '<a href="' +
        createUrl(obj.value, _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].qfCurrency) +
        '" target="_blank">' +
        obj.name +
        "</a>"
      );
    })
    .join("<br/>");
  extra += "</span></span>";

  return {
    url,
    title: "Qantas",
    extra
  };
}

Object(___WEBPACK_IMPORTED_MODULE_3__["register"])("airlines", printQF);
Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("Qantas", "qfEdition", qfEditions, "EN_US");
Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("Qantas", "qfCurrency", qfCurrencies, "USD");


/***/ }),
/* 30 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3);
/* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0);
/* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4);





var cabins = ["E", "E", "B", "F"];

function print() {
  if (!Object(___WEBPACK_IMPORTED_MODULE_1__["allCarriers"])("QR")) {
    return;
  }

  const pax = Object(___WEBPACK_IMPORTED_MODULE_1__["validatePax"])({
    maxPaxcount: 9,
    countInf: false,
    childAsAdult: 12,
    sepInfSeat: false,
    childMinAge: 2
  });
  if (!pax) {
    Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printQR");
    return;
  }

  const cabin =
    cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_3__[/* getCabin */ "b"])(Math.min(...Object(_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* getCurrentSegs */ "b"])().map(seg => seg.cabin)))];

  const tripType = _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length > 1 ? "M" : "O";

  let url = `https://booking.qatarairways.com/nsp/views/showBooking.action?widget=MLC&selLang=${_settings_appSettings__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].itaLanguage}&tripType=${tripType}&bookingClass=${cabin}&adults=${pax.adults}&children=${pax.children.length}&infants=${pax.infLap}&isMetaSearch=true&`;
  url += _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin
    .map((itin, i) => {
      let qs = `fromStation=${itin.orig}&toStation=${itin.dest}&departing=${
        itin.dep.year
      }-${Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to2digits */ "h"])(itin.dep.month)}-${Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to2digits */ "h"])(itin.dep.day)}`;
      if (i <= 1)
        qs += `&${i === 0 ? "out" : "in"}boundFltNumber=${itin.seg
          .map(seg => seg.fnr)
          .join(",")}`;
      return qs;
    })
    .join("&");
  if (_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length <= 2) url += "&price=0";
  return {
    url,
    title: "Qatar Airways"
  };
}

Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("airlines", print);


/***/ }),
/* 31 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1);
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);
/* harmony import */ var _print_amadeus__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7);





function printTK() {
  if (!Object(___WEBPACK_IMPORTED_MODULE_2__["anyCarriers"])("TK")) {
    return;
  }

  var url =
    "https://book.eu2.amadeus.com/plnext/turkishairlines/Override.action?";
  var paxConfig = { allowinf: 1, youthage: 0 };
  var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({
    maxPaxcount: 9,
    countInf: false,
    childAsAdult: 12,
    sepInfSeat: false,
    childMinAge: 2
  });
  if (!pax) {
    Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printTK");
    return;
  }
  var amadeusConfig = {
    sepcabin: 0,
    detailed: 0,
    allowpremium: 1,
    inctimes: 1
  };
  var tmpPax = Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_3__[/* getAmadeusPax */ "a"])(pax, paxConfig);
  url += "TRIP_TYPE=" + Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_3__[/* getAmadeusTriptype */ "b"])();
  url += tmpPax.url;
  url += Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_3__[/* getAmadeusUrl */ "c"])(amadeusConfig);
  url +=
    "&PORT_TSC=FALSE&SO_SITE_ALLOW_SERVICE_FEE=0&SO_SITE_SERVICE_FEE_MODE=AIR&SITE=BBAHBBAH";
  url +=
    "&LANGUAGE=" +
    (_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language == "tk" || _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language == "de"
      ? _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language.toUpperCase()
      : "GB");
  url += "&EMBEDDED_TRANSACTION=AirComplexAvailability&TRIPFLOW=YES";
  url +=
    "SO_LANG_TRIPFLOW_ENTRY_ADDRE=online.turkishairlines.com%2Finternet-booking%2Famadeus.tk&ARRANGE_BY=N&DIRECT_NON_STOP=false&REFRESH=0&SO_SITE_TAX_BREAKDOWN_DISP=TRUE&SO_LANG_DISABLE_X_XSS_PROTEC=TRUE&SO_SITE_REDIRECT_MODE=AUTOMATIC&SO_LANG_URL_AIR_NFS_SRCH=http%3A%2F%2Fonline.turkishairlines.com%2Finternet-booking%2Fstart.tk";

  return {
    url,
    title: "Turkish"
  };
}

Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("airlines", printTK);


/***/ }),
/* 32 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
/* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(0);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1);
/* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4);





const cabins = ["", "p", "b", "f"];

function print() {
  var pax = Object(___WEBPACK_IMPORTED_MODULE_0__["validatePax"])({
    maxPaxcount: 9,
    countInf: false,
    childAsAdult: 12,
    sepInfSeat: true,
    childMinAge: 2
  });
  if (!pax) {
    Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "g"])(
      "Error: Failed to validate Passengers in printGoogleFlights"
    );
    return;
  }

  const cabin =
    cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_3__[/* getCabin */ "b"])(Math.min(...Object(_parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* getCurrentSegs */ "b"])().map(seg => seg.cabin)))];

  const url =
    "https://www.google.com/flights/#flt=" +
    _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin
      .map(
        itin =>
          `${itin.orig}.${itin.dest}.${itin.dep.year}-${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to2digits */ "h"])(
            itin.dep.month
          )}-${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to2digits */ "h"])(itin.dep.day)}.${itin.seg
            .map(
              (seg, j) => `${seg.orig}${seg.dest}${j}${seg.carrier}${seg.fnr}`
            )
            .join("~")}`
      )
      .join("*") +
    `;c:${_parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].cur || "USD"};px:${pax.adults},${pax.children.length},${
      pax.infLap
    },${pax.infSeat};sc:${cabin};tt:${
      _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin.length === 1 ? "o" : "m"
    }`;

  return {
    url,
    title: "Google Flights"
  };
}

Object(___WEBPACK_IMPORTED_MODULE_0__["register"])("meta", print);


/***/ }),
/* 33 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
/* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(0);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1);
/* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4);





const editions = [
  { name: "Argentina", host: "https://ar.jetcost.com/vuelos/busqueda" },
  { name: "Australia", host: "https://www.jetcost.com.au/flights/search" },
  { name: "Bolivia", host: "https://www.jetcost.com.bo/vuelos/busqueda" },
  { name: "Brasil", host: "https://www.jetcost.com.br/voos/pesquisa" },
  { name: "Canada (en)", host: "https://ca.jetcost.com/en/flights/search" },
  { name: "Canada (fr)", host: "https://ca.jetcost.com/fr/vols/recherche" },
  { name: "Chile", host: "https://www.jetcost.cl/vuelos/busqueda" },
  { name: "Colombia", host: "https://www.jetcost.com.co/vuelos/busqueda" },
  { name: "Danmark", host: "https://www.jetcost.dk/flyrejser/sogning" },
  { name: "Deutschland", host: "https://www.jetcost.de/fluge/suche" },
  { name: "España", host: "https://www.jetcost.es/vuelos/busqueda" },
  {
    name: "Estados Unidos (es)",
    host: "https://us.jetcost.com/es/vuelos/busqueda"
  },
  { name: "France", host: "https://www.jetcost.com/vols/recherche" },
  { name: "Hong Kong", host: "https://www.jetcost.hk/en/flights/search" },
  { name: "India", host: "https://www.jetcost.co.in/en/flights/search" },
  { name: "Indonesia", host: "https://www.jetcost.co.id/en/flights/search" },
  { name: "Ireland", host: "https://www.jetcost.ie/flights/search" },
  { name: "Italia", host: "https://www.jetcost.it/voli/ricerca" },
  { name: "Magyarország", host: "https://www.jetcost.hu/jaratok/kereses" },
  { name: "Malaysia", host: "https://www.jetcost.com.my/en/flights/search" },
  { name: "México", host: "https://www.jetcost.com.mx/vuelos/busqueda" },
  { name: "Nederland", host: "https://www.jetcost.nl/vluchten/zoeken" },
  { name: "New Zealand", host: "https://www.jetcost.co.nz/flights/search" },
  { name: "Norge", host: "https://www.jetcost.no/flyvninger/sok" },
  { name: "Österreich", host: "https://www.jetcost.at/fluge/suche" },
  { name: "Perú", host: "https://www.jetcost.com.pe/vuelos/busqueda" },
  { name: "Philippines", host: "https://www.jetcost.com.ph/en/flights/search" },
  { name: "Polska", host: "https://www.jetcost.pl/loty/wyszukiwanie" },
  { name: "Portugal", host: "https://www.jetcost.pt/voos/pesquisar" },
  { name: "România", host: "https://www.jetcost.ro/zboruri/cautare" },
  { name: "Россия", host: "https://www.jetcost.ru/reysy/poisk" },
  { name: "Singapore", host: "https://www.jetcost.com.sg/en/flights/search" },
  { name: "South Africa", host: "https://www.jetcost.co.za/en/flights/search" },
  { name: "Suomi", host: "https://www.jetcost.fi/lennot/hae" },
  { name: "Sverige", host: "https://www.jetcost.se/flighter/sokning" },
  { name: "Thailand", host: "https://www.jetcost.co.th/en/flights/search" },
  { name: "United Kingdom", host: "https://www.jetcost.co.uk/flights/search" },
  {
    name: "United States (en)",
    host: "https://us.jetcost.com/en/flights/search"
  },
  { name: "Uruguay", host: "https://www.jetcost.com.uy/vuelos/busqueda" },
  { name: "Venezuela", host: "https://www.jetcost.co.ve/vuelos/busqueda" },
  { name: "한국", host: "https://www.jetcost.co.kr/flights/search" }
];

const cabins = [0, 0, 1, 2];

function print() {
  if (_parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin.length > 2) return; // no multi segments
  if (
    _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin.length == 2 &&
    !(
      _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[1].dest &&
      _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[1].orig
    )
  )
    return; // no open jaws

  var pax = Object(___WEBPACK_IMPORTED_MODULE_0__["validatePax"])({
    maxPaxcount: 9,
    countInf: false,
    childAsAdult: 12,
    sepInfSeat: false,
    childMinAge: 2
  });
  if (!pax) {
    Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printOvago");
    return;
  }

  const cabin =
    cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_3__[/* getCabin */ "b"])(Math.min(...Object(_parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* getCurrentSegs */ "b"])().map(seg => seg.cabin)))];

  var createUrl = function(host) {
    return `${host}?adults=${pax.adults}&children=${
      pax.children.length
    }&infants=${pax.infLap}&cabin_class=${cabin}&${_parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin
      .map(
        (seg, i) =>
          `trips[${i}][date]=${formatDate(seg.dep)}&trips[${i}][from_iata]=${
            seg.orig
          }&trips[${i}][to_iata]=${seg.dest}`
      )
      .join("&")}`;
  };

  var url = createUrl("https://us.jetcost.com/en/flights/search");
  if (!url) {
    return;
  }

  var extra =
    ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  extra += editions
    .map(function(obj, i) {
      return (
        '<a href="' +
        createUrl(obj.host) +
        '" target="_blank">' +
        obj.name +
        "</a>"
      );
    })
    .join("<br/>");
  extra += "</span></span>";

  return {
    url,
    title: "Jetcost",
    extra
  };
}

function formatDate(date) {
  return `${date.year}-${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to2digits */ "h"])(date.month)}-${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to2digits */ "h"])(date.day)}`;
}

Object(___WEBPACK_IMPORTED_MODULE_0__["register"])("meta", print);


/***/ }),
/* 34 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
/* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);
/* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1);






const editions = [
  { name: "Kayak.ae", host: "www.kayak.ae" },
  { name: "Kayak.ar", host: "www.kayak.com.ar" },
  { name: "Kayak.at", host: "www.kayak.cat" },
  { name: "Kayak.au", host: "www.kayak.com.au" },
  { name: "Kayak.br", host: "www.kayak.com.br" },
  { name: "Kayak.ca", host: "www.ca.kayak.com" },
  { name: "Kayak.ch", host: "www.kayak.ch" },
  { name: "Kayak.cl", host: "www.kayak.cl" },
  { name: "Kayak.cn", host: "www.cn.kayak.com" },
  { name: "Kayak.co", host: "www.kayak.com.co" },
  { name: "Kayak.com", host: "www.kayak.com" },
  { name: "Kayak.de", host: "www.kayak.de" },
  { name: "Kayak.dk", host: "www.kayak.dk" },
  { name: "Kayak.es", host: "www.es.kayak.com" },
  { name: "Kayak.es", host: "www.kayak.es" },
  { name: "Kayak.fi", host: "www.fi.kayak.com" },
  { name: "Kayak.fr", host: "www.kayak.fr" },
  { name: "Kayak.gr", host: "www.gr.kayak.com" },
  { name: "Kayak.hk", host: "www.kayak.com.hk" },
  { name: "Kayak.id", host: "www.kayak.co.id" },
  { name: "Kayak.ie", host: "www.kayak.ie" },
  { name: "Kayak.in", host: "www.kayak.co.in" },
  { name: "Kayak.it", host: "www.kayak.it" },
  { name: "Kayak.jp", host: "www.kayak.co.jp" },
  { name: "Kayak.kr", host: "www.kayak.co.kr" },
  { name: "Kayak.mx", host: "www.kayak.com.mx" },
  { name: "Kayak.my", host: "www.kayak.com.my" },
  { name: "Kayak.nl", host: "www.kayak.nl" },
  { name: "Kayak.no", host: "www.kayak.no" },
  { name: "Kayak.nz", host: "www.nz.kayak.com" },
  { name: "Kayak.pe", host: "www.kayak.com.pe" },
  { name: "Kayak.pl", host: "www.kayak.pl" },
  { name: "Kayak.pt", host: "www.kayak.pt" },
  { name: "Kayak.ru", host: "www.kayak.ru" },
  { name: "Kayak.se", host: "www.kayak.se" },
  { name: "Kayak.sg", host: "www.kayak.sg" },
  { name: "Kayak.th", host: "www.kayak.co.th" },
  { name: "Kayak.tr", host: "www.kayak.com.tr" },
  { name: "Kayak.tw", host: "www.tw.kayak.com" },
  { name: "Kayak.uk", host: "www.kayak.co.uk" },
  { name: "Kayak.vn", host: "www.vn.kayak.com" },
  { name: "Kayak.za", host: "www.za.kayak.com" }
];

const cabins = ["economy", "premium", "business", "first"];

function print(method) {
  //example https://www.Kayak.ru/flights/MOW-CPH...OW/2016-05-20/
  // method: 0 = based on leg; 1 = based on segment
  const segs = !method ? _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin : Object(_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* getCurrentSegs */ "b"])();
  if (method && _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length === segs.length) return;

  var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({
    maxPaxcount: 9,
    countInf: false,
    childAsAdult: 12,
    sepInfSeat: true,
    childMinAge: 2
  });
  if (!pax) {
    Object(_utils__WEBPACK_IMPORTED_MODULE_4__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printOvago");
    return;
  }

  const cabin =
    cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getCabin */ "b"])(Math.min(...Object(_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* getCurrentSegs */ "b"])().map(seg => seg.cabin)))];

  const createUrl = function(host) {
    let url =
      `https://${host}/flights/` +
      segs
        .map(
          seg =>
            `${seg.orig}-${seg.dest}/${seg.dep.year}-${Object(_utils__WEBPACK_IMPORTED_MODULE_4__[/* to2digits */ "h"])(
              seg.dep.month
            )}-${Object(_utils__WEBPACK_IMPORTED_MODULE_4__[/* to2digits */ "h"])(seg.dep.day)}`
        )
        .join("/");

    if (pax.adults > 1 || pax.children.length || pax.infSeat || pax.infLap) {
      url += `/${_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].numPax}adults`;
    }

    if (pax.children.length || pax.infSeat || pax.infLap) {
      url += "/children";
      for (let i = 0; i < pax.infSeat; i++) {
        url += "-1S";
      }
      for (let i = 0; i < pax.infLap; i++) {
        url += "-1L";
      }
      for (let i = 0; i < pax.children.length; i++) {
        url += "-11";
      }
    }

    url += "/" + cabin;

    return url;
  };

  var url = createUrl("kayak.com");
  if (!url) {
    return;
  }

  var extra =
    ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  extra += editions
    .map(function(obj, i) {
      return (
        '<a href="' +
        createUrl(obj.host) +
        '" target="_blank">' +
        obj.name +
        "</a>"
      );
    })
    .join("<br/>");
  extra += "</span></span>";

  return {
    url,
    title: "Kayak",
    desc:
      _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language == "de"
        ? `Benutze ${segs.length} Segment(e)`
        : `Based on ${segs.length} segment(s)`,
    extra
  };
}

Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("meta", () => print(0));
Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("meta", () => print(1));


/***/ }),
/* 35 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
/* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);
/* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1);






const editions = [
  { name: "Momondo.ar", host: "www.momondo.com.ar" },
  { name: "Momondo.at", host: "www.momondo.at" },
  { name: "Momondo.au", host: "www.momondo.com.au" },
  { name: "Momondo.be", host: "www.momondo.be" },
  { name: "Momondo.br", host: "www.momondo.com.br" },
  { name: "Momondo.by", host: "www.momondo.by" },
  { name: "Momondo.ca", host: "www.momondo.ca" },
  { name: "Momondo.ch", host: "www.momondo.ch" },
  { name: "Momondo.cl", host: "www.momondo.cl" },
  { name: "Momondo.cn", host: "www.cn.momondo.com" },
  { name: "Momondo.co", host: "www.momondo.com.co" },
  { name: "Momondo.cz", host: "www.momondo.cz" },
  { name: "Momondo.de", host: "www.momondo.de" },
  { name: "Momondo.dk", host: "www.momondo.dk" },
  { name: "Momondo.ee", host: "www.momondo.ee" },
  { name: "Momondo.es", host: "www.momondo.es" },
  { name: "Momondo.fi", host: "www.momondo.fi" },
  { name: "Momondo.fr", host: "www.momondo.fr" },
  { name: "Momondo.hk", host: "www.momondo.hk" },
  { name: "Momondo.ie", host: "www.momondo.ie" },
  { name: "Momondo.in", host: "www.momondo.in" },
  { name: "Momondo.it", host: "www.momondo.it" },
  { name: "Momondo.kz", host: "www.momondo.kz" },
  { name: "Momondo.mx", host: "www.momondo.mx" },
  { name: "Momondo.nl", host: "www.momondo.nl" },
  { name: "Momondo.no", host: "www.momondo.no" },
  { name: "Momondo.nz", host: "www.momondo.co.nz" },
  { name: "Momondo.om", host: "www.momondo.com" },
  { name: "Momondo.pe", host: "www.momondo.com.pe" },
  { name: "Momondo.pl", host: "www.momondo.pl" },
  { name: "Momondo.pt", host: "www.momondo.pt" },
  { name: "Momondo.ro", host: "www.momondo.ro" },
  { name: "Momondo.ru", host: "www.momondo.ru" },
  { name: "Momondo.se", host: "www.momondo.se" },
  { name: "Momondo.tr", host: "www.momondo.com.tr" },
  { name: "Momondo.tw", host: "www.momondo.tw" },
  { name: "Momondo.ua", host: "www.momondo.ua" },
  { name: "Momondo.uk", host: "www.momondo.co.uk" },
  { name: "Momondo.za", host: "www.momondo.co.za" }
];

var cabins = ["economy", "premium", "business", "first"];

function print(method) {
  //example https://www.Momondo.ru/flightsearch/?...false&NA=false
  //pax # &AD=2&CA=0,8 – not working with children (total amount of adults + kids goes to adult)
  // method: 0 = based on leg; 1 = based on segment
  const segs = !method ? _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin : Object(_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* getCurrentSegs */ "b"])();
  if (method && _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length === segs.length) return;

  var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({
    maxPaxcount: 9,
    countInf: false,
    childAsAdult: 12,
    sepInfSeat: true,
    childMinAge: 2
  });
  if (!pax) {
    Object(_utils__WEBPACK_IMPORTED_MODULE_4__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printOvago");
    return;
  }

  const cabin =
    cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getCabin */ "b"])(Math.min(...Object(_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* getCurrentSegs */ "b"])().map(seg => seg.cabin)))];

  var createUrl = function(host) {
    let url =
      `https://${host}/flight-search/` +
      segs
        .map(
          seg =>
            `${seg.orig}-${seg.dest}/${seg.dep.year}-${Object(_utils__WEBPACK_IMPORTED_MODULE_4__[/* to2digits */ "h"])(
              seg.dep.month
            )}-${Object(_utils__WEBPACK_IMPORTED_MODULE_4__[/* to2digits */ "h"])(seg.dep.day)}`
        )
        .join("/");

    if (pax.adults > 1 || pax.children.length || pax.infSeat || pax.infLap) {
      url += `/${_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].numPax}adults`;
    }

    if (pax.children.length || pax.infSeat || pax.infLap) {
      url += "/children";
      for (let i = 0; i < pax.infSeat; i++) {
        url += "-1S";
      }
      for (let i = 0; i < pax.infLap; i++) {
        url += "-1L";
      }
      for (let i = 0; i < pax.children.length; i++) {
        url += "-11";
      }
    }

    url += "/" + cabin;

    return url;
  };

  var url = createUrl("www.momondo.com");
  var extra =
    ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  extra += editions
    .map(function(obj, i) {
      return (
        '<a href="' +
        createUrl(obj.host) +
        '" target="_blank">' +
        obj.name +
        "</a>"
      );
    })
    .join("<br/>");
  extra += "</span></span>";

  return {
    url,
    title: "Momondo",
    desc:
      _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language == "de"
        ? `Benutze ${segs.length} Segment(e)`
        : `Based on ${segs.length} segment(s)`,
    extra
  };
}

Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("meta", () => print(0));
Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("meta", () => print(1));


/***/ }),
/* 36 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
/* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);
/* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1);






const editions = [
  { name: "Skyscanner.com", market: "US" },
  { name: "Skyscanner.de", market: "DE" },
  { name: "Skyscanner.it", market: "IT" },
  { name: "Skyscanner.es", market: "ES" },
  { name: "Skyscanner.co.uk", market: "UK" },
  { name: "Skyscanner.dk", market: "DK" },
  { name: "Skyscanner.mx", market: "MX" },
  { name: "Skyscanner.fi", market: "FI" },
  { name: "Skyscanner.fr", market: "FR" },
  { name: "Skyscanner.no", market: "NO" },
  { name: "Skyscanner.nl", market: "NL" },
  { name: "Skyscanner.pt", market: "PT" },
  { name: "Skyscanner.se", market: "SE" },
  { name: "Skyscanner.ru", market: "RU" }
];

var cabins = ["", "premiumeconomy", "business", "first"];

function print(method) {
  //example https://www.skyscanner.ru/transport/d/stoc/2017-09-02/akl/akl/2017-09-16/stoc/akl/2017-09-29/syd?adults=1&children=0&adultsv2=1&childrenv2=&infants=0&cabinclass=economy&ref=day-view#results
  // method: 0 = based on leg; 1 = based on segment
  const segs = !method ? _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin : Object(_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* getCurrentSegs */ "b"])();
  if (method && _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length === segs.length) return;

  var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({
    maxPaxcount: 8,
    countInf: false,
    childAsAdult: 12,
    sepInfSeat: false,
    childMinAge: 2
  });
  if (!pax) {
    Object(_utils__WEBPACK_IMPORTED_MODULE_4__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printOvago");
    return;
  }

  const cabin =
    cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getCabin */ "b"])(Math.min(...Object(_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* getCurrentSegs */ "b"])().map(seg => seg.cabin)))];

  var createUrl = function(market) {
    var url = "http://www.skyscanner.com/transport/d/";

    // Add the segments:
    url += segs
      .map(
        seg =>
          `${seg.orig}/${seg.dep.year}-${Object(_utils__WEBPACK_IMPORTED_MODULE_4__[/* to2digits */ "h"])(seg.dep.month)}-${Object(_utils__WEBPACK_IMPORTED_MODULE_4__[/* to2digits */ "h"])(
            seg.dep.day
          )}/${seg.dest}`
      )
      .join("/");

    // Add passenger info:
    url += "?adults=" + pax.adults + "adultsv2=" + pax.adults;
    if (pax.children.length || pax.infLap)
      url +=
        "&childrenv2=" +
        Array.apply(null, { length: pax.infLap })
          .map(o => 0)
          .concat(pax.children)
          .join("|");
    if (pax.infLap) url += "&infants=" + pax.infLap;
    // Add cabin / class of service:
    url += "&cabinclass=" + cabin;
    // Add locale ("market"):
    url += "&ref=day-view&market=" + market;

    return url;
  };
  var url = createUrl("US");
  var extra =
    ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  extra += editions
    .map(function(obj, i) {
      return (
        '<a href="' +
        createUrl(obj.market) +
        '" target="_blank">' +
        obj.name +
        "</a>"
      );
    })
    .join("<br/>");
  extra += "</span></span>";

  return {
    url,
    title: "Skyscanner",
    desc:
      _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language == "de"
        ? `Benutze ${segs.length} Segment(e)`
        : `Based on ${segs.length} segment(s)`,
    extra
  };
}

Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("meta", () => print(0));
Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("meta", () => print(1));


/***/ }),
/* 37 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
/* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);
/* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1);






const editions = [
  { name: "Arabic", host: "ar.tripadvisor.com" },
  { name: "Argentina", host: "www.tripadvisor.com.ar" },
  { name: "Australia", host: "www.tripadvisor.com.au" },
  { name: "Austria", host: "www.tripadvisor.at" },
  { name: "Belgium", host: "fr.tripadvisor.be" },
  { name: "Belgium", host: "www.tripadvisor.be" },
  { name: "Brazil", host: "www.tripadvisor.com.br" },
  { name: "Canada (English)", host: "www.tripadvisor.ca" },
  { name: "Canada (French)", host: "fr.tripadvisor.ca" },
  { name: "Chile", host: "www.tripadvisor.cl" },
  { name: "China", host: "www.tripadvisor.cn" },
  { name: "Chinese International", host: "cn.tripadvisor.com" },
  { name: "Colombia", host: "www.tripadvisor.co" },
  { name: "Czech Republic", host: "www.tripadvisor.cz" },
  { name: "Denmark", host: "www.tripadvisor.dk" },
  { name: "Egypt", host: "www.tripadvisor.com.eg" },
  { name: "Finland", host: "www.tripadvisor.fi" },
  { name: "France", host: "www.tripadvisor.fr" },
  { name: "Germany", host: "www.tripadvisor.de" },
  { name: "Greece", host: "www.tripadvisor.com.gr" },
  { name: "Hong Kong", host: "en.tripadvisor.com.hk" },
  { name: "Hong Kong", host: "www.tripadvisor.com.hk" },
  { name: "Hungary", host: "www.tripadvisor.co.hu" },
  { name: "India", host: "www.tripadvisor.in" },
  { name: "Indonesia", host: "www.tripadvisor.co.id" },
  { name: "Ireland", host: "www.tripadvisor.ie" },
  { name: "Israel", host: "www.tripadvisor.co.il" },
  { name: "Italy", host: "www.tripadvisor.it" },
  { name: "Japan", host: "www.tripadvisor.jp" },
  { name: "Malaysia", host: "www.tripadvisor.com.my" },
  { name: "Mexico", host: "www.tripadvisor.com.mx" },
  { name: "New Zealand", host: "www.tripadvisor.co.nz" },
  { name: "Norway", host: "no.tripadvisor.com" },
  { name: "Peru", host: "www.tripadvisor.com.pe" },
  { name: "Philippines", host: "www.tripadvisor.com.ph" },
  { name: "Poland", host: "pl.tripadvisor.com" },
  { name: "Portugal", host: "www.tripadvisor.pt" },
  { name: "Russia", host: "www.tripadvisor.ru" },
  { name: "Serbia", host: "www.tripadvisor.rs" },
  { name: "Singapore", host: "www.tripadvisor.com.sg" },
  { name: "Slovakia", host: "www.tripadvisor.sk" },
  { name: "South Africa", host: "www.tripadvisor.co.za" },
  { name: "South Korea", host: "www.tripadvisor.co.kr" },
  { name: "Spain", host: "www.tripadvisor.es" },
  { name: "Sweden", host: "www.tripadvisor.se" },
  { name: "Switzerland", host: "www.tripadvisor.ch" },
  { name: "Switzerland", host: "fr.tripadvisor.ch" },
  { name: "Switzerland", host: "it.tripadvisor.ch" },
  { name: "Taiwan", host: "www.tripadvisor.com.tw" },
  { name: "Thailand", host: "th.tripadvisor.com" },
  { name: "The Netherlands", host: "www.tripadvisor.nl" },
  { name: "Turkey", host: "www.tripadvisor.com.tr" },
  { name: "United Kingdom", host: "www.tripadvisor.co.uk" },
  { name: "United States", host: "www.tripadvisor.com" },
  { name: "Venezuela", host: "www.tripadvisor.com.ve" },
  { name: "Vietnam", host: "www.tripadvisor.com.vn" }
];

const cabins = ["0", "3", "1", "2"];

function print(method) {
  // method: 0 = based on leg; 1 = based on segment
  const segs = !method ? _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin : Object(_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* getCurrentSegs */ "b"])();
  if (method && _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length === segs.length) return;

  const pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({
    maxPaxcount: 8,
    countInf: false,
    childAsAdult: 12,
    sepInfSeat: false,
    childMinAge: 2
  });
  if (!pax) {
    Object(_utils__WEBPACK_IMPORTED_MODULE_4__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printOvago");
    return;
  }

  const cabin =
    cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getCabin */ "b"])(Math.min(...Object(_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* getCurrentSegs */ "b"])().map(seg => seg.cabin)))];

  const nonstop = method ? "yes" : "no";

  const createUrl = function(host) {
    let url = `https://${host}/CheapFlightsSearchResults?&cos=${cabin}&nonstop=${nonstop}`;

    let paxNum = 0;

    const addPax = age => (url += `&pax${paxNum++}=${age}`);

    Array.apply(null, { length: pax.adults }).forEach(o => addPax("a"));
    Array.apply(null, { length: pax.infLap }).forEach(o => addPax(0));
    pax.children.forEach(age => addPax(age));

    url +=
      "&" +
      segs
        .map(
          (seg, i) =>
            `date${i * 2}=${seg.dep.year}${Object(_utils__WEBPACK_IMPORTED_MODULE_4__[/* to2digits */ "h"])(seg.dep.month)}${Object(_utils__WEBPACK_IMPORTED_MODULE_4__[/* to2digits */ "h"])(
              seg.dep.day
            )}&airport${i * 2}=${seg.orig}&nearby${i * 2}=no&airport${i * 2 +
              1}=${seg.dest}&nearby${i * 2 + 1}=no`
        )
        .join("&");

    return url;
  };
  const url = createUrl("www.tripadvisor.com");
  let extra =
    ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  extra += editions
    .map(function(obj, i) {
      return (
        '<a href="' +
        createUrl(obj.host) +
        '" target="_blank">' +
        obj.name +
        "</a>"
      );
    })
    .join("<br/>");
  extra += "</span></span>";

  return {
    url,
    title: "Tripadvisor",
    desc:
      _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language == "de"
        ? `Benutze ${segs.length} Segment(e)`
        : `Based on ${segs.length} segment(s)`,
    extra
  };
}

Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("meta", () => print(0));
Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("meta", () => print(1));


/***/ }),
/* 38 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1);
/* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);





function printCheapOair() {
  // 0 = Economy; 1=Premium Economy; 2=Business; 3=First
  var cabins = ["Economy", "PremiumEconomy", "Business", "First"];
  var coaUrl = "http://www.cheapoair.com/default.aspx?tabid=1832&ulang=en";
  var pax = Object(___WEBPACK_IMPORTED_MODULE_1__["validatePax"])({
    maxPaxcount: 9,
    countInf: true,
    childAsAdult: 12,
    sepInfSeat: true,
    childMinAge: 2
  });
  if (!pax) {
    Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printCheapOair");
    return;
  }
  coaUrl +=
    "&ad=" +
    pax.adults +
    "&ch=" +
    pax.children.length +
    "&sr=0&is=" +
    pax.infSeat +
    "&il=" +
    pax.infLap;
  coaUrl += "&pos=US";
  coaUrl += "&dispr=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].price;
  var seg = 0;
  var slices = {};
  for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) {
    slices[i] = "";
    for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) {
      seg++;
      if (slices[i]) slices[i] += ",";
      slices[i] += seg;

      coaUrl +=
        "&cbn" +
        seg +
        "=" +
        cabins[
          _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto"
            ? _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].cabin
            : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])()
        ];
      coaUrl += "&carr" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].carrier;
      coaUrl +=
        "&dd" +
        seg +
        "=" +
        _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year +
        ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) +
        ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2);
      coaUrl += "&og" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig;
      coaUrl += "&dt" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dest;
      coaUrl += "&fbc" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].bookingclass;
      coaUrl += "&fnum" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].fnr;
    }
    coaUrl += "&Slice" + (i + 1) + "=" + slices[i];
  }

  if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 1) {
    coaUrl += "&tt=OneWay";
  } else if (
    _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 2 &&
    _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].dest &&
    _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].orig
  ) {
    coaUrl += "&tt=RoundTrip";
  } else {
    coaUrl += "&tt=MultiCity";
  }

  return {
    url: coaUrl,
    title: "CheapOair"
  };
}

Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("otas", printCheapOair);


/***/ }),
/* 39 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1);
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);
/* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);
/* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(4);






const editions = [
  { name: "Brazil", value: "www2.secure.edestinos.com.br" },
  { name: "Peru", value: "www2.secure.edestinos.com.pe" },
  { name: "Colombia", value: "www2.secure.edestinos.com.co" },
  { name: "Dominican Republic", value: "www2.secure.edestinos.com.do" },
  { name: "El Salvador", value: "www2.secure.edestinos.com.sv" },
  { name: "Panama", value: "www2.secure.edestinos.com.pa" },
  { name: "Nicaragua", value: "www2.secure.edestinos.com.ni" },
  { name: "Guatemala", value: "www2.secure.edestinos.com.gt" },
  { name: "Honduras", value: "www2.secure.edestinos.com.hn" },
  { name: "Paraguay", value: "www2.secure.edestinos.com.py" },
  { name: "Puerto Rico", value: "www2.secure.edestinos.com.pr" },
  { name: "Costa Rica", value: "www2.secure.edestinos.cr" },
  { name: "Bolivia", value: "www2.secure.edestinos.com.bo" },
  { name: "Argentina", value: "www2.secure.edestinos.com.ar" },
  { name: "Mexico", value: "www2.secure.edestinos.com.mx" },
  { name: "Chile", value: "www2.secure.edestinos.cl" },
  { name: "Poland", value: "www2.secure.esky.pl" },
  { name: "Romania", value: "www2.secure.esky.ro" },
  { name: "Bulgaria", value: "www2.secure.esky.bg" },
  { name: "Czech Republic", value: "www2.secure.esky.cz" },
  { name: "Slovakia", value: "www2.secure.esky.sk" },
  { name: "Hungary", value: "www2.secure.esky.hu" },
  { name: "Moldova", value: "www2.secure.esky.md" },
  { name: "Spain", value: "www2.secure.esky.es" },
  { name: "Serbia", value: "www2.secure.esky.rs" },
  { name: "Croatia", value: "www2.secure.esky.hr" },
  { name: "Bosnia and Herzegovina", value: "www2.secure.esky.ba" },
  { name: "Ireland", value: "www2.secure.esky.ie" },
  { name: "United Kingdom", value: "www2.secure.esky.co.uk" },
  { name: "Turkey", value: "www2.secure.esky.com.tr" },
  { name: "France", value: "www2.secure.esky.fr" },
  { name: "Portugal", value: "www2.secure.esky.pt" },
  { name: "Greece", value: "www2.secure.esky.gr" },
  { name: "Germany", value: "www2.secure.eskytravel.de" },
  { name: "Italy", value: "www2.secure.eskytravel.it" },
  { name: "Austria", value: "www2.secure.esky.at" },
  { name: "Switzerland", value: "www2.secure.eskytravel.ch" },
  { name: "Netherlands", value: "www2.secure.esky.nl" },
  { name: "Belgium", value: "www2.secure.eskytravel.be" },
  { name: "Finland", value: "www2.secure.esky.fi" },
  { name: "Denmark", value: "www2.secure.eskytravel.dk" },
  { name: "Sweden", value: "www2.secure.esky.se" },
  { name: "Norway", value: "www2.secure.eskytravel.no" },
  { name: "Belarus", value: "www2.secure.esky.by" },
  { name: "South Africa", value: "www2.secure.eskytravel.co.za" },
  { name: "Russia", value: "www2.secure.eskytravel.ru" },
  { name: "New Zealand", value: "www2.secure.eskytravel.co.nz" },
  { name: "eSky.eu", value: "www2.secure.esky.eu" },
  { name: "eSky.com", value: "www2.secure.esky.com" },
  { name: "eDestinos.com", value: "www2.secure.edestinos.com" }
];

const cabins = ["Economy", "PremiumEconomy", "Business", "First"];

function print() {
  var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({
    maxPaxcount: 9,
    countInf: true,
    childAsAdult: 12,
    sepInfSeat: false,
    childMinAge: 2
  });
  if (!pax) {
    Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error: Failed to validate Passengers in edestinos");
    return;
  }

  var createUrl = function(host) {
    const cur = _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].cur || "USD";
    let url = `https://${host}/api?PointOfSaleCountry=&UserCurrency=${cur}&DisplayedPrice=${
      _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].price
    }&DisplayedPriceCurrency=${cur}&UserLanguage=${_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language ||
      "en"}&TripType=`;
    if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 1) {
      url += "OneWay";
    } else if (
      _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 2 &&
      _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].dest &&
      _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].orig
    ) {
      url += "RoundTrip";
    } else {
      url += "MultiCity";
    }
    url += "&UserLanguage=" + _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language || false;
    url += "&Adult=" + pax.adults;
    url += "&Child=" + pax.children.length;
    url += "&InfantLap=" + pax.infLap;

    let j = 0;
    _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.forEach((itin, i) => {
      const slices = [];

      itin.seg.forEach(seg => {
        j++;
        slices.push(j);

        url += `&Cabin${j}=` + cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_4__[/* getCabin */ "b"])(seg.cabin)];
        url += `&Carrier${j}=` + seg.carrier;
        url += `&Origin${j}=` + seg.orig;
        url += `&Destination${j}=` + seg.dest;
        url += `&BookingCode${j}=` + seg.bookingclass;
        url += `&FlightNumber${j}=` + seg.fnr;
        url += `&DepartureDate${j}=${seg.dep.year}-${Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* to2digits */ "h"])(
          seg.dep.month
        )}-${Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* to2digits */ "h"])(seg.dep.day)}`;
      });

      url += `&Slice${i + 1}=` + slices.join(",");
    });

    return url;
  };

  var url = createUrl("www2.secure.edestinos.com.br");
  var extra =
    ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  extra += editions
    .map(function(obj, i) {
      return (
        '<a href="' +
        createUrl(obj.value) +
        '" target="_blank">' +
        obj.name +
        "</a>"
      );
    })
    .join("<br/>");
  extra += "</span></span>";

  return {
    url,
    title: "eDestinos",
    extra
  };
}

Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("otas", print);


/***/ }),
/* 40 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3);
/* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0);
/* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4);





const eDreams = [
  { name: "eDreams.com", domain: "www.edreams.com" },
  { name: "eDreams.au", domain: "www.edreams.com.au" },
  { name: "eDreams.br", domain: "www.edreams.com.br" },
  { name: "eDreams.ca", domain: "ca.edreams.com" },
  { name: "eDreams.ch", domain: "www.edreams.ch" },
  { name: "eDreams.cl", domain: "cl.edreams.com" },
  { name: "eDreams.cn", domain: "cn.edreams.com" },
  { name: "eDreams.co", domain: "co.edreams.com" },
  { name: "eDreams.co.uk", domain: "www.edreams.co.uk" },
  { name: "eDreams.com.ar", domain: "www.edreams.com.ar" },
  { name: "eDreams.com.mx", domain: "www.edreams.com.mx" },
  { name: "eDreams.com.ru", domain: "www.edreams.com.ru" },
  { name: "eDreams.com.tr", domain: "www.edreams.com.tr" },
  { name: "eDreams.de", domain: "www.edreams.de" },
  { name: "eDreams.es", domain: "www.edreams.es" },
  { name: "eDreams.fr", domain: "www.edreams.fr" },
  { name: "eDreams.gr", domain: "www.edreams.gr" },
  { name: "eDreams.hk", domain: "www.edreams.hk" },
  { name: "eDreams.id", domain: "id.edreams.com" },
  { name: "eDreams.in", domain: "www.edreams.in" },
  { name: "eDreams.it", domain: "www.edreams.it" },
  { name: "eDreams.jp", domain: "www.edreams.jp" },
  { name: "eDreams.ma", domain: "www.edreams.ma" },
  { name: "eDreams.net", domain: "www.edreams.net" },
  { name: "eDreams.nl", domain: "nl.edreams.com" },
  { name: "eDreams.nz", domain: "nz.edreams.com" },
  { name: "eDreams.pe", domain: "www.edreams.pe" },
  { name: "eDreams.ph", domain: "www.edreams.ph" },
  { name: "eDreams.pt", domain: "www.edreams.pt" },
  { name: "eDreams.sg", domain: "sg.edreams.com" },
  { name: "eDreams.th", domain: "th.edreams.com" },
  { name: "eDreams.za", domain: "za.edreams.com" }
];

const opodo = [
  { name: "Opodo.com", domain: "www.opodo.com" },
  { name: "Opodo.at", domain: "www.opodo.at" },
  { name: "Opodo.be", domain: "www.opodo.be" },
  { name: "Opodo.ch", domain: "www.opodo.ch" },
  { name: "Opodo.co.uk", domain: "www.opodo.co.uk" },
  { name: "Opodo.com.au", domain: "www.opodo.com.au" },
  { name: "Opodo.de", domain: "www.opodo.de" },
  { name: "Opodo.dk", domain: "www.opodo.dk" },
  { name: "Opodo.es", domain: "www.opodo.es" },
  { name: "Opodo.fi", domain: "www.opodo.fi" },
  { name: "Opodo.fr", domain: "www.opodo.fr" },
  { name: "Opodo.it", domain: "www.opodo.it" },
  { name: "Opodo.nl", domain: "www.opodo.nl" },
  { name: "Opodo.no", domain: "www.opodo.no" },
  { name: "Opodo.pl", domain: "www.opodo.pl" },
  { name: "Opodo.pt", domain: "www.opodo.pt" },
  { name: "Opodo.se", domain: "www.opodo.se" }
];

const travellink = [
  { name: "Travellink.com", domain: "www.travellink.com" },
  { name: "Travellink.de", domain: "www.travellink.de" },
  { name: "Travellink.dk", domain: "www.travellink.dk" },
  { name: "Travellink.fi", domain: "www.travellink.fi" },
  { name: "Travellink.is", domain: "www.travellink.is" },
  { name: "Travellink.no", domain: "www.travellink.no" },
  { name: "Travellink.se", domain: "www.travellink.se" }
];

const cabins = ["TOURIST", "PREMIUM_ECONOMY", "BUSINESS", "FIRST"];

function printEdreams(title, editions) {
  var pax = Object(___WEBPACK_IMPORTED_MODULE_1__["validatePax"])({
    maxPaxcount: 9,
    countInf: false,
    childAsAdult: 12,
    sepInfSeat: false,
    childMinAge: 2
  });
  if (!pax) {
    Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printEdreams");
    return;
  }

  const cabin =
    cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_3__[/* getCabin */ "b"])(Math.min(...Object(_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* getCurrentSegs */ "b"])().map(seg => seg.cabin)))];

  var createUrl = function(domain) {
    const deeplink = `/results/type=M;${_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin
      .map(
        (itin, i) =>
          `dep${i}=${itin.dep.year}-${Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to2digits */ "h"])(itin.dep.month)}-${Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to2digits */ "h"])(
            itin.dep.day
          )};from${i}=${itin.orig};to${i}=${itin.dest}`
      )
      .join(";")};class=${cabin};adults=${pax.adults};children=${
      pax.children.length
    };infants=${
      pax.infLap
    };collectionmethod=false;airlinescodes=false;internalSearch=true`;

    const segKeys = _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin
      .map(
        (itin, i) =>
          `segmentKey${i}=0,${itin.seg
            .map(seg => seg.carrier + seg.fnr)
            .join(",")}`
      )
      .join("&");

    return `https://${domain}/travel/?landingPageType=TEST_AB&searchId=${new Date().getTime()}&deeplink=${deeplink}&fareItineraryKey=0,1A&${segKeys}&searchMainProductTypeName=FLIGHT`;
  };

  var url = createUrl(editions[0].domain);
  if (!url) return;

  var extra =
    ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  extra += editions
    .map(function(obj, i) {
      return (
        '<a href="' +
        createUrl(obj.domain) +
        '" target="_blank">' +
        obj.name +
        "</a>"
      );
    })
    .join("<br/>");
  extra += "</span></span>";

  return {
    url,
    title,
    extra
  };
}

Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("otas", () => printEdreams("eDreams", eDreams));
Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("otas", () => printEdreams("Opodo", opodo));
Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("otas", () => printEdreams("Travellink", travellink));


/***/ }),
/* 41 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3);
/* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0);




const editions = [
  { name: "Seat24.se", host: "www.seat24.se" },
  { name: "Seat24.de", host: "www.seat24.de" },
  { name: "Seat24.dk", host: "www.seat24.dk" },
  { name: "Seat24.fi", host: "www.seat24.fi" },
  { name: "Seat24.no", host: "www.seat24.no" },
  { name: "Flygvaruhuset.se", host: "www.flygvaruhuset.se" },
  { name: "Travelpartner.se", host: "www.travelpartner.se" },
  { name: "Travelpartner.fi", host: "www.travelpartner.fi" },
  { name: "Travelpartner.no", host: "www.travelpartner.no" },
  { name: "Budjet.se", host: "www.budjet.se" },
  { name: "Budjet.fi", host: "www.budjet.fi" },
  { name: "Budjet.no", host: "www.budjet.no" },
  { name: "Budjet.dk", host: "www.budjet.dk" },
  { name: "Goleif.dk", host: "www.goleif.dk" },
  { name: "Travelfinder.se", host: "www.travelfinder.se" },
  { name: "Gotogate.no", host: "www.gotogate.no" },
  { name: "Gotogate.at", host: "www.gotogate.at" },
  { name: "Gotogate.be", host: "be.gotogate.com" },
  { name: "Gotogate.bg", host: "bg.gotogate.com" },
  { name: "Gotogate.ch", host: "www.gotogate.ch" },
  { name: "Gotogate.cz", host: "cz.gotogate.com" },
  { name: "Gotogate.es", host: "www.gotogate.es" },
  { name: "Gotogate.fr", host: "www.gotogate.fr" },
  { name: "Gotogate.gr", host: "www.gotogate.gr" },
  { name: "Gotogate.hu", host: "hu.gotogate.com" },
  { name: "Gotogate.ie", host: "ie.gotogate.com" },
  { name: "Gotogate.it", host: "www.gotogate.it" },
  { name: "Gotogate.pl", host: "www.gotogate.pl" },
  { name: "Gotogate.pt", host: "www.gotogate.pt" },
  { name: "Gotogate.ro", host: "ro.gotogate.com" },
  { name: "Gotogate.sk", host: "www.gotogate.sk" },
  { name: "Gotogate.tr", host: "tr.gotogate.com" },
  { name: "Gotogate.com.ua", host: "www.gotogate.com.ua" },
  { name: "Gotogate.co.uk", host: "www.gotogate.co.uk" },
  { name: "Flybillet.dk", host: "www.flybillet.dk" },
  { name: "Travelstart.se", host: "www.travelstart.se" },
  { name: "Travelstart.de", host: "www.travelstart.de" },
  { name: "Travelstart.dk", host: "www.travelstart.dk" },
  { name: "Travelstart.fi", host: "www.travelstart.fi" },
  { name: "Travelstart.no", host: "www.travelstart.no" },
  { name: "Supersaver.se", host: "www.supersavertravel.se" },
  { name: "Supersaver.dk", host: "www.supersaver.dk" },
  { name: "Supersaver.fi", host: "www.supersaver.fi" },
  { name: "Supersaver.nl", host: "www.supersaver.nl" },
  { name: "Supersaver.no", host: "www.supersaver.no" },
  { name: "Supersaver.ru", host: "www.supersaver.ru" }
];

function printEtraveli() {
  if (_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length > 2) return; // no multi segments
  if (
    _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length == 2 &&
    !(
      _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[1].dest &&
      _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[1].orig
    )
  )
    return; // no open jaws

  var convertDate = function(date, withYear) {
    return (
      ("0" + date.day).slice(-2) +
      Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* monthnumberToName */ "f"])(date.month) +
      (withYear ? date.year.toString().slice(-2) : "")
    );
  };
  var createUrl = function(host) {
    var ggUrl = "http://" + host + "/air/";
    ggUrl +=
      _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[0].orig +
      _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[0].dest +
      convertDate(_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[0].dep, false);
    if (_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length > 1)
      ggUrl += convertDate(_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[1].dep, false);
    ggUrl += "/" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].numPax;
    ggUrl +=
      "?selectionKey=" +
      _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin
        .map(function(itin) {
          return itin.seg
            .map(function(seg) {
              return (
                seg.carrier +
                seg.fnr +
                "-" +
                convertDate(seg.dep, true) +
                "-" +
                seg.bookingclass
              );
            })
            .join("_");
        })
        .join("_");

    return ggUrl;
  };
  // picked seat24 as main one, but could be any of them
  var ggUrl = createUrl("www.seat24.de");
  var extra =
    ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  extra += editions
    .map(function(obj, i) {
      return (
        '<a href="' +
        createUrl(obj.host) +
        '" target="_blank">' +
        obj.name +
        "</a>"
      );
    })
    .join("<br/>");
  extra += "</span></span>";

  return {
    url: ggUrl,
    title: "Seat24.de",
    extra
  };
}

Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("otas", printEtraveli);


/***/ }),
/* 42 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1);
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);
/* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);





const editions = [
  { name: "expedia.com", host: "expedia.com" },
  { name: "orbitz.com", host: "orbitz.com" },
  { name: "expedia.ca", host: "expedia.ca" },
  { name: "expedia.de", host: "expedia.de" },
  { name: "expedia.it", host: "expedia.it" },
  { name: "expedia.es", host: "expedia.es" },
  { name: "expedia.co.uk", host: "expedia.co.uk" },
  { name: "expedia.dk", host: "expedia.dk" },
  { name: "expedia.mx", host: "expedia.mx" },
  { name: "expedia.fi", host: "expedia.fi" },
  { name: "expedia.fr", host: "expedia.fr" },
  { name: "expedia.no", host: "expedia.no" },
  { name: "expedia.nl", host: "expedia.nl" },
  { name: "expedia.ch", host: "expedia.ch" },
  { name: "expedia.se", host: "expedia.se" },
  { name: "expedia.at", host: "expedia.at" },
  { name: "expedia.co.jp", host: "expedia.co.jp" }
];

function printExpedia() {
  var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({
    maxPaxcount: 9,
    countInf: true,
    childAsAdult: 18,
    sepInfSeat: false,
    childMinAge: 2
  });
  if (!pax) {
    Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printExpedia");
    return;
  }
  let expediaClasses = ["coach", "premium", "business", "first"];
  let minCabin = 3;
  let ExpediaCreateUrl = function(expediaBase) {
    let segUrl = "";
    for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) {
      segUrl +=
        "&legs%5B" + i + "%5D.departureAirport=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].orig;
      segUrl +=
        "&legs%5B" + i + "%5D.arrivalAirport=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dest;
      segUrl +=
        "&legs%5B" +
        i +
        "%5D.departureDate=" +
        _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].arr.year.toString() +
        "-" +
        ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dep.month).slice(-2) +
        "-" +
        ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dep.day).slice(-2);
      for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) {
        segUrl += (
          "&legs%5B" +
          i +
          "%5D.segments%5B" +
          j +
          "%5D=" +
          _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year.toString() +
          "-" +
          ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) +
          "-" +
          ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2) +
          "-" +
          expediaClasses[
            _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? minCabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])()
          ] +
          "-" +
          _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig +
          "-" +
          _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dest +
          "-" +
          _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].carrier +
          "-" +
          _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].fnr
        ).toLowerCase();

        // check the min cabin:
        if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].cabin < minCabin) {
          minCabin = _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].cabin;
        }
      }
    }
    // Build the URL:
    let baseUrl =
      "https://www." +
      expediaBase +
      "/Flight-Search-Details?action=dl&trip=MultipleDestination";
    // Add travel class to URL:
    baseUrl +=
      "&cabinClass=" +
      expediaClasses[
        _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? minCabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])()
      ];
    // Add passenger info to URL:
    baseUrl += "&adults=" + pax.adults;
    return baseUrl + segUrl;
  };
  var ExpediaUrl = ExpediaCreateUrl("expedia.com");
  var container =
    ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  container += editions
    .map(function(obj, i) {
      return (
        '<a href="' +
        ExpediaCreateUrl(obj.host) +
        '" target="_blank">' +
        obj.name +
        "</a>"
      );
    })
    .join("<br/>");
  container += "</span></span>";

  return {
    url: ExpediaUrl,
    title: "Expedia",
    extra: container
  };
}

Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("otas", printExpedia);


/***/ }),
/* 43 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3);
/* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0);




const editions = [
  { name: "English", url: "" },
  { name: "Español", url: "es" },
  { name: "Português", url: "pt" },
  { name: "Deutsch", url: "de" },
  { name: "Italiano", url: "it" },
  { name: "Dansk", url: "da" },
  { name: "Svenska", url: "sv" },
  { name: "Norsk", url: "no" },
  { name: "Nederlands", url: "nl" },
  { name: "Finnish", url: "fi" },
  { name: "Polish", url: "pl" },
  { name: "Turkish", url: "tk" }
];

function printFN() {
  var pax = Object(___WEBPACK_IMPORTED_MODULE_1__["validatePax"])({
    maxPaxcount: 9,
    countInf: false,
    childAsAdult: 12,
    sepInfSeat: false,
    childMinAge: 2
  });
  if (!pax) {
    Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printFN");
    return;
  }

  const createUrl = function(edition) {
    const tty = _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length === 2 ? 1 : 0;
    let search = `cref=fnbwmint&tty=${tty}&curr=${_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].cur ||
      "USD"}&nativecurr=${_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].cur || "USD"}&cls=0&adt=${
      pax.adults
    }&chd=${pax.children.length}&inf=${
      pax.infLap
    }&tot=0.00&tax=0.00&chdtot=0.00&chdtax=0.00&inftot=0.00&inftax=0.00&`;

    let segCount = 0;
    search += _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin
      .map((leg, i) => {
        const key = _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length === 2 && i === 1 ? "ib" : "ob";
        const legNum = _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length > 2 ? 0 : i;
        return leg.seg
          .map((seg, j) => {
            const segNum = _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length > 2 ? segCount++ : j;
            return `${key}${legNum + 1}${segNum ? segNum : ""}=${seg.carrier}${
              seg.fnr
            }${seg.bookingclass}!${formatDate(seg.dep)}!${seg.orig}${
              seg.dest
            }!${formatDate(seg.arr)}`;
          })
          .join("&");
      })
      .join("&");

    return `https://www.flightnetwork.com/${edition.url}${
      edition.url ? "/" : ""
    }flights/showflight?enc=${btoa(search)}`;
  };

  var url = createUrl(editions[0]);
  if (!url) return;

  let extra =
    ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  extra += editions
    .map(function(obj, i) {
      return (
        '<a href="' + createUrl(obj) + '" target="_blank">' + obj.name + "</a>"
      );
    })
    .join("<br/>");
  extra += "</span></span>";

  return {
    url,
    title: "FlightNetwork",
    extra
  };
}

function formatDate(date) {
  return (
    "" +
    date.year +
    Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to2digits */ "h"])(date.month) +
    Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to2digits */ "h"])(date.day) +
    date.time24.replace(":", "")
  );
}

Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("otas", printFN);


/***/ }),
/* 44 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3);
/* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0);
/* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4);





const editions = [
  { title: "Ovago", host: "ovago.com" },
  { title: "Wowfare", host: "wowfare.com" }
];

const cabins = ["Y", "S", "C", "F"];

function print() {
  var pax = Object(___WEBPACK_IMPORTED_MODULE_1__["validatePax"])({
    maxPaxcount: 9,
    countInf: false,
    childAsAdult: 12,
    sepInfSeat: false,
    childMinAge: 2
  });
  if (!pax) {
    Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printHop2");
    return;
  }

  const cabin =
    cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_3__[/* getCabin */ "b"])(Math.min(...Object(_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* getCurrentSegs */ "b"])().map(seg => seg.cabin)))];

  const segs = Object(_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* getCurrentSegs */ "b"])();
  const search = `OSKDCR*${cabin}${pax.adults}${pax.children.length}${
    pax.infSeat
  }0/${_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin
    .map(
      itin =>
        itin.orig +
        itin.dest +
        `${itin.dep.year}-${Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to2digits */ "h"])(itin.dep.month)}-${Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to2digits */ "h"])(
          itin.dep.day
        )}`
    )
    .join("/")}*${segs[segs.length - 1].carrier}~#${segs
    .map(seg => seg.carrier + seg.fnr)
    .join("#")}`;

  const createUrl = function(host) {
    return `https://${host}/ms?key=1_${btoa(search)}`;
  };

  var url = createUrl("hop2.com");
  if (!url) return;

  let extra =
    ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  extra += editions
    .map(function(obj, i) {
      return (
        '<a href="' +
        createUrl(obj.host) +
        '" target="_blank">' +
        obj.title +
        "</a>"
      );
    })
    .join("<br/>");
  extra += "</span></span>";

  return {
    url,
    title: "Hop2",
    extra
  };
}

Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("otas", print);


/***/ }),
/* 45 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1);
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);
/* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);





const editions = [
  { lang: "pl", country: "PL" },
  { lang: "bg", country: "BG" },
  { lang: "ro", country: "RO" },
  { lang: "cs", country: "CZ" },
  { lang: "hu", country: "HU" },
  { lang: "sk", country: "SK" },
  { lang: "pt", country: "PT" },
  { lang: "es", country: "ES" },
  { lang: "en", country: "GB" },
  { lang: "en", country: "IE" },
  { lang: "en", country: "US" },
  { lang: "it", country: "IT" },
  { lang: "de", country: "DE" },
  { lang: "fr", country: "FR" },
  { lang: "el", country: "GR" }
];

function printLucky2go() {
  var createUrl = function(edition) {
    // 0 = Economy; 1=Premium Economy; 2=Business; 3=First
    var cabins = ["Economy", "Economy", "Business", "First"];
    var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({
      maxPaxcount: 9,
      countInf: false,
      childAsAdult: 12,
      sepInfSeat: false,
      childMinAge: 2
    });
    if (!pax) {
      Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])(
        "Error: Failed to validate Passengers in printLucky2go"
      );
      return;
    }
    var url =
      "https://secure.lucky2go.com/flights/options/?Adult=" +
      pax.adults +
      "&Child=" +
      pax.children.length +
      "&Infant=0&InfantLap=" +
      pax.infLap +
      "&PointOfSaleCountry=" +
      edition.country +
      "&UserCurrency=" +
      (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].cur || "USD") +
      "&DisplayedPrice=" +
      _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].price +
      "&DisplayedPriceCurrency=" +
      (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].cur || "USD") +
      "&UserLanguage=" +
      edition.lang +
      "&TripType=";
    if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 1) {
      url += "OneWay";
    } else if (
      _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 2 &&
      _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].dest &&
      _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].orig
    ) {
      url += "RoundTrip";
    } else {
      url += "MultiCity";
    }

    var seg = 0;
    var slice = 1;
    var slicestr = "";
    //Build multi-city search based on legs
    for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) {
      // walks each leg
      for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) {
        seg++;
        //walks each segment of leg
        var k = 0;
        // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover
        while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length - 1) {
          if (
            _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].fnr !=
              _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr ||
            _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440
          )
            break;
          k++;
        }
        url += "&Origin" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig;
        url += "&Destination" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].dest;
        url += "&Carrier" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].carrier;
        url +=
          "&DepartureDate" +
          seg +
          "=" +
          _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year +
          "-" +
          ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) +
          "-" +
          ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2);
        url += "&FlightNumber" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].fnr;
        url +=
          "&BookingCode" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].bookingclass;
        url += "&Cabin" + seg + "=" + cabins[_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].cabin];
        slicestr += (slicestr === "" ? "" : "%2C") + seg;
        j += k;
      }
      url += "&Slice" + slice + "=" + slicestr;
      slice++;
      slicestr = "";
    }
    return url;
  };
  // get edition
  var url = createUrl({ lang: "en", country: "US" });
  if (!url) {
    return;
  }
  var extra =
    ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  extra += editions
    .map(
      edition =>
        `<a href="${createUrl(edition)}" target="_blank">${
          edition.lang
        }&#8209;${edition.country}</a>`
    )
    .join("<br/>");
  extra += "</span></span>";

  return {
    url,
    title: "lucky2go",
    extra
  };
}

Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("otas", printLucky2go);


/***/ }),
/* 46 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3);
/* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0);




function printPriceline() {
  var pricelineurl = "https://www.priceline.com/m/fly/search";
  var searchparam = "~";
  for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length; i++) {
    // walks each leg
    searchparam = searchparam.substring(0, searchparam.length - 1) + "-";
    pricelineurl += "/" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].orig;
    pricelineurl += "-" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].dest;
    pricelineurl +=
      "-" +
      _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].arr.year.toString() +
      ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].dep.month).slice(-2) +
      ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].dep.day).slice(-2);
    for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg.length; j++) {
      //walks each segment of leg
      var k = 0;
      // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover
      while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg.length - 1) {
        if (
          _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].fnr !=
            _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr ||
          _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440
        )
          break;
        k++;
      }
      searchparam += _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].orig;
      searchparam +=
        _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dep.year.toString() +
        ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) +
        ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2) +
        ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dep.time.replace(":", "")).slice(-4);
      searchparam += _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].dest;
      searchparam +=
        _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].arr.year.toString() +
        ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].arr.month).slice(-2) +
        ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].arr.day).slice(-2) +
        ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].arr.time.replace(":", "")).slice(
          -4
        );
      searchparam +=
        _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].bookingclass +
        _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].carrier +
        _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].fnr;
      searchparam += "~";
      j += k;
    }
  }
  searchparam = searchparam.substring(1, searchparam.length - 1);
  var pax = Object(___WEBPACK_IMPORTED_MODULE_1__["validatePax"])({
    maxPaxcount: 9,
    countInf: true,
    childAsAdult: 18,
    sepInfSeat: false,
    childMinAge: 2
  });
  if (!pax) {
    Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printPriceline");
    return;
  }
  pricelineurl +=
    "/desktop/details/R_" +
    searchparam +
    "_" +
    (pax.adults + pax.children.length + pax.infLap) +
    "_USD0.00_1-1-1?num-adults=" +
    pax.adults +
    "&num-children=" +
    pax.children.length +
    "&num-infants=" +
    pax.infLap +
    "&num-youths=0";

  return {
    url: pricelineurl,
    title: "Priceline"
  };
}

Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("otas", printPriceline);


/***/ }),
/* 47 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3);



function printGCM() {
  let url = "";
  // Build multi-city search based on segments
  // Keeping continous path as long as possible
  for (let i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_0__[/* currentItin */ "a"].itin.length; i++) {
    for (let j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_0__[/* currentItin */ "a"].itin[i].seg.length; j++) {
      url += _parse_itin__WEBPACK_IMPORTED_MODULE_0__[/* currentItin */ "a"].itin[i].seg[j].orig + "-";
      if (j + 1 < _parse_itin__WEBPACK_IMPORTED_MODULE_0__[/* currentItin */ "a"].itin[i].seg.length) {
        if (
          _parse_itin__WEBPACK_IMPORTED_MODULE_0__[/* currentItin */ "a"].itin[i].seg[j].dest != _parse_itin__WEBPACK_IMPORTED_MODULE_0__[/* currentItin */ "a"].itin[i].seg[j + 1].orig
        ) {
          url += _parse_itin__WEBPACK_IMPORTED_MODULE_0__[/* currentItin */ "a"].itin[i].seg[j].dest + ";";
        }
      } else {
        url += _parse_itin__WEBPACK_IMPORTED_MODULE_0__[/* currentItin */ "a"].itin[i].seg[j].dest + ";";
      }
    }
  }

  return {
    img: "http://www.gcmap.com/map?MR=900&MX=182x182&PM=*&P=" + url,
    url: "http://www.gcmap.com/mapui?P=" + url,
    title: "GCM"
  };
}

Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("other", printGCM);


/***/ }),
/* 48 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3);



function printWheretocredit() {
  return {
    url:
      "https://www.wheretocredit.com/calculator#" +
      Object(_parse_itin__WEBPACK_IMPORTED_MODULE_0__[/* getCurrentSegs */ "b"])()
        .map(seg =>
          [seg.orig, seg.dest, seg.carrier, seg.bookingclass].join("-")
        )
        .join("/"),
    title: "Where to Credit"
  };
}

Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("other", printWheretocredit);


/***/ }),
/* 49 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);

// EXTERNAL MODULE: ./src/settings/userSettings.js
var userSettings = __webpack_require__(2);

// EXTERNAL MODULE: ./src/utils.js
var utils = __webpack_require__(1);

// EXTERNAL MODULE: ./src/links/index.js
var links = __webpack_require__(3);

// EXTERNAL MODULE: ./src/parse/itin.js
var itin = __webpack_require__(0);

// CONCATENATED MODULE: ./node_modules/date-fns/esm/_lib/assign/index.js
function assign_assign(target, dirtyObject) {
  if (target == null) {
    throw new TypeError('assign requires that input parameter not be null or undefined');
  }

  dirtyObject = dirtyObject || {};

  for (var property in dirtyObject) {
    if (dirtyObject.hasOwnProperty(property)) {
      target[property] = dirtyObject[property];
    }
  }

  return target;
}
// CONCATENATED MODULE: ./node_modules/date-fns/esm/_lib/cloneObject/index.js

function cloneObject(dirtyObject) {
  return assign_assign({}, dirtyObject);
}
// CONCATENATED MODULE: ./node_modules/date-fns/esm/_lib/requiredArgs/index.js
function requiredArgs(required, args) {
  if (args.length < required) {
    throw new TypeError(required + ' argument' + required > 1 ? 's' : '' + ' required, but only ' + args.length + ' present');
  }
}
// CONCATENATED MODULE: ./node_modules/date-fns/esm/toDate/index.js

/**
 * @name toDate
 * @category Common Helpers
 * @summary Convert the given argument to an instance of Date.
 *
 * @description
 * Convert the given argument to an instance of Date.
 *
 * If the argument is an instance of Date, the function returns its clone.
 *
 * If the argument is a number, it is treated as a timestamp.
 *
 * If the argument is none of the above, the function returns Invalid Date.
 *
 * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.
 *
 * @param {Date|Number} argument - the value to convert
 * @returns {Date} the parsed date in the local time zone
 * @throws {TypeError} 1 argument required
 *
 * @example
 * // Clone the date:
 * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))
 * //=> Tue Feb 11 2014 11:30:30
 *
 * @example
 * // Convert the timestamp to date:
 * const result = toDate(1392098430000)
 * //=> Tue Feb 11 2014 11:30:30
 */

function toDate(argument) {
  requiredArgs(1, arguments);
  var argStr = Object.prototype.toString.call(argument); // Clone the date

  if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {
    // Prevent the date to lose the milliseconds when passed to new Date() in IE10
    return new Date(argument.getTime());
  } else if (typeof argument === 'number' || argStr === '[object Number]') {
    return new Date(argument);
  } else {
    if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {
      // eslint-disable-next-line no-console
      console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"); // eslint-disable-next-line no-console

      console.warn(new Error().stack);
    }

    return new Date(NaN);
  }
}
// CONCATENATED MODULE: ./node_modules/date-fns/esm/isValid/index.js


/**
 * @name isValid
 * @category Common Helpers
 * @summary Is the given date valid?
 *
 * @description
 * Returns false if argument is Invalid Date and true otherwise.
 * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}
 * Invalid Date is a Date, whose time value is NaN.
 *
 * Time value of Date: http://es5.github.io/#x15.9.1.1
 *
 * ### v2.0.0 breaking changes:
 *
 * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).
 *
 * - Now `isValid` doesn't throw an exception
 *   if the first argument is not an instance of Date.
 *   Instead, argument is converted beforehand using `toDate`.
 *
 *   Examples:
 *
 *   | `isValid` argument        | Before v2.0.0 | v2.0.0 onward |
 *   |---------------------------|---------------|---------------|
 *   | `new Date()`              | `true`        | `true`        |
 *   | `new Date('2016-01-01')`  | `true`        | `true`        |
 *   | `new Date('')`            | `false`       | `false`       |
 *   | `new Date(1488370835081)` | `true`        | `true`        |
 *   | `new Date(NaN)`           | `false`       | `false`       |
 *   | `'2016-01-01'`            | `TypeError`   | `false`       |
 *   | `''`                      | `TypeError`   | `false`       |
 *   | `1488370835081`           | `TypeError`   | `true`        |
 *   | `NaN`                     | `TypeError`   | `false`       |
 *
 *   We introduce this change to make *date-fns* consistent with ECMAScript behavior
 *   that try to coerce arguments to the expected type
 *   (which is also the case with other *date-fns* functions).
 *
 * @param {*} date - the date to check
 * @returns {Boolean} the date is valid
 * @throws {TypeError} 1 argument required
 *
 * @example
 * // For the valid date:
 * var result = isValid(new Date(2014, 1, 31))
 * //=> true
 *
 * @example
 * // For the value, convertable into a date:
 * var result = isValid(1393804800000)
 * //=> true
 *
 * @example
 * // For the invalid date:
 * var result = isValid(new Date(''))
 * //=> false
 */

function isValid(dirtyDate) {
  requiredArgs(1, arguments);
  var date = toDate(dirtyDate);
  return !isNaN(date);
}
// CONCATENATED MODULE: ./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js
var formatDistanceLocale = {
  lessThanXSeconds: {
    one: 'less than a second',
    other: 'less than {{count}} seconds'
  },
  xSeconds: {
    one: '1 second',
    other: '{{count}} seconds'
  },
  halfAMinute: 'half a minute',
  lessThanXMinutes: {
    one: 'less than a minute',
    other: 'less than {{count}} minutes'
  },
  xMinutes: {
    one: '1 minute',
    other: '{{count}} minutes'
  },
  aboutXHours: {
    one: 'about 1 hour',
    other: 'about {{count}} hours'
  },
  xHours: {
    one: '1 hour',
    other: '{{count}} hours'
  },
  xDays: {
    one: '1 day',
    other: '{{count}} days'
  },
  aboutXMonths: {
    one: 'about 1 month',
    other: 'about {{count}} months'
  },
  xMonths: {
    one: '1 month',
    other: '{{count}} months'
  },
  aboutXYears: {
    one: 'about 1 year',
    other: 'about {{count}} years'
  },
  xYears: {
    one: '1 year',
    other: '{{count}} years'
  },
  overXYears: {
    one: 'over 1 year',
    other: 'over {{count}} years'
  },
  almostXYears: {
    one: 'almost 1 year',
    other: 'almost {{count}} years'
  }
};
function formatDistance(token, count, options) {
  options = options || {};
  var result;

  if (typeof formatDistanceLocale[token] === 'string') {
    result = formatDistanceLocale[token];
  } else if (count === 1) {
    result = formatDistanceLocale[token].one;
  } else {
    result = formatDistanceLocale[token].other.replace('{{count}}', count);
  }

  if (options.addSuffix) {
    if (options.comparison > 0) {
      return 'in ' + result;
    } else {
      return result + ' ago';
    }
  }

  return result;
}
// CONCATENATED MODULE: ./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js
function buildFormatLongFn(args) {
  return function (dirtyOptions) {
    var options = dirtyOptions || {};
    var width = options.width ? String(options.width) : args.defaultWidth;
    var format = args.formats[width] || args.formats[args.defaultWidth];
    return format;
  };
}
// CONCATENATED MODULE: ./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js

var dateFormats = {
  full: 'EEEE, MMMM do, y',
  long: 'MMMM do, y',
  medium: 'MMM d, y',
  short: 'MM/dd/yyyy'
};
var timeFormats = {
  full: 'h:mm:ss a zzzz',
  long: 'h:mm:ss a z',
  medium: 'h:mm:ss a',
  short: 'h:mm a'
};
var dateTimeFormats = {
  full: "{{date}} 'at' {{time}}",
  long: "{{date}} 'at' {{time}}",
  medium: '{{date}}, {{time}}',
  short: '{{date}}, {{time}}'
};
var formatLong = {
  date: buildFormatLongFn({
    formats: dateFormats,
    defaultWidth: 'full'
  }),
  time: buildFormatLongFn({
    formats: timeFormats,
    defaultWidth: 'full'
  }),
  dateTime: buildFormatLongFn({
    formats: dateTimeFormats,
    defaultWidth: 'full'
  })
};
/* harmony default export */ var _lib_formatLong = (formatLong);
// CONCATENATED MODULE: ./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js
var formatRelativeLocale = {
  lastWeek: "'last' eeee 'at' p",
  yesterday: "'yesterday at' p",
  today: "'today at' p",
  tomorrow: "'tomorrow at' p",
  nextWeek: "eeee 'at' p",
  other: 'P'
};
function formatRelative(token, _date, _baseDate, _options) {
  return formatRelativeLocale[token];
}
// CONCATENATED MODULE: ./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js
function buildLocalizeFn(args) {
  return function (dirtyIndex, dirtyOptions) {
    var options = dirtyOptions || {};
    var context = options.context ? String(options.context) : 'standalone';
    var valuesArray;

    if (context === 'formatting' && args.formattingValues) {
      var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;
      var width = options.width ? String(options.width) : defaultWidth;
      valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];
    } else {
      var _defaultWidth = args.defaultWidth;

      var _width = options.width ? String(options.width) : args.defaultWidth;

      valuesArray = args.values[_width] || args.values[_defaultWidth];
    }

    var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;
    return valuesArray[index];
  };
}
// CONCATENATED MODULE: ./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js

var eraValues = {
  narrow: ['B', 'A'],
  abbreviated: ['BC', 'AD'],
  wide: ['Before Christ', 'Anno Domini']
};
var quarterValues = {
  narrow: ['1', '2', '3', '4'],
  abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],
  wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'] // Note: in English, the names of days of the week and months are capitalized.
  // If you are making a new locale based on this one, check if the same is true for the language you're working on.
  // Generally, formatted dates should look like they are in the middle of a sentence,
  // e.g. in Spanish language the weekdays and months should be in the lowercase.

};
var monthValues = {
  narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],
  abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
  wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
};
var dayValues = {
  narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
  short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],
  abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
  wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
};
var dayPeriodValues = {
  narrow: {
    am: 'a',
    pm: 'p',
    midnight: 'mi',
    noon: 'n',
    morning: 'morning',
    afternoon: 'afternoon',
    evening: 'evening',
    night: 'night'
  },
  abbreviated: {
    am: 'AM',
    pm: 'PM',
    midnight: 'midnight',
    noon: 'noon',
    morning: 'morning',
    afternoon: 'afternoon',
    evening: 'evening',
    night: 'night'
  },
  wide: {
    am: 'a.m.',
    pm: 'p.m.',
    midnight: 'midnight',
    noon: 'noon',
    morning: 'morning',
    afternoon: 'afternoon',
    evening: 'evening',
    night: 'night'
  }
};
var formattingDayPeriodValues = {
  narrow: {
    am: 'a',
    pm: 'p',
    midnight: 'mi',
    noon: 'n',
    morning: 'in the morning',
    afternoon: 'in the afternoon',
    evening: 'in the evening',
    night: 'at night'
  },
  abbreviated: {
    am: 'AM',
    pm: 'PM',
    midnight: 'midnight',
    noon: 'noon',
    morning: 'in the morning',
    afternoon: 'in the afternoon',
    evening: 'in the evening',
    night: 'at night'
  },
  wide: {
    am: 'a.m.',
    pm: 'p.m.',
    midnight: 'midnight',
    noon: 'noon',
    morning: 'in the morning',
    afternoon: 'in the afternoon',
    evening: 'in the evening',
    night: 'at night'
  }
};

function ordinalNumber(dirtyNumber, _dirtyOptions) {
  var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,
  // if they are different for different grammatical genders,
  // use `options.unit`:
  //
  //   var options = dirtyOptions || {}
  //   var unit = String(options.unit)
  //
  // where `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',
  // 'day', 'hour', 'minute', 'second'

  var rem100 = number % 100;

  if (rem100 > 20 || rem100 < 10) {
    switch (rem100 % 10) {
      case 1:
        return number + 'st';

      case 2:
        return number + 'nd';

      case 3:
        return number + 'rd';
    }
  }

  return number + 'th';
}

var localize_localize = {
  ordinalNumber: ordinalNumber,
  era: buildLocalizeFn({
    values: eraValues,
    defaultWidth: 'wide'
  }),
  quarter: buildLocalizeFn({
    values: quarterValues,
    defaultWidth: 'wide',
    argumentCallback: function (quarter) {
      return Number(quarter) - 1;
    }
  }),
  month: buildLocalizeFn({
    values: monthValues,
    defaultWidth: 'wide'
  }),
  day: buildLocalizeFn({
    values: dayValues,
    defaultWidth: 'wide'
  }),
  dayPeriod: buildLocalizeFn({
    values: dayPeriodValues,
    defaultWidth: 'wide',
    formattingValues: formattingDayPeriodValues,
    defaultFormattingWidth: 'wide'
  })
};
/* harmony default export */ var _lib_localize = (localize_localize);
// CONCATENATED MODULE: ./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js
function buildMatchPatternFn(args) {
  return function (dirtyString, dirtyOptions) {
    var string = String(dirtyString);
    var options = dirtyOptions || {};
    var matchResult = string.match(args.matchPattern);

    if (!matchResult) {
      return null;
    }

    var matchedString = matchResult[0];
    var parseResult = string.match(args.parsePattern);

    if (!parseResult) {
      return null;
    }

    var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];
    value = options.valueCallback ? options.valueCallback(value) : value;
    return {
      value: value,
      rest: string.slice(matchedString.length)
    };
  };
}
// CONCATENATED MODULE: ./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js
function buildMatchFn(args) {
  return function (dirtyString, dirtyOptions) {
    var string = String(dirtyString);
    var options = dirtyOptions || {};
    var width = options.width;
    var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];
    var matchResult = string.match(matchPattern);

    if (!matchResult) {
      return null;
    }

    var matchedString = matchResult[0];
    var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];
    var value;

    if (Object.prototype.toString.call(parsePatterns) === '[object Array]') {
      value = findIndex(parsePatterns, function (pattern) {
        return pattern.test(string);
      });
    } else {
      value = findKey(parsePatterns, function (pattern) {
        return pattern.test(string);
      });
    }

    value = args.valueCallback ? args.valueCallback(value) : value;
    value = options.valueCallback ? options.valueCallback(value) : value;
    return {
      value: value,
      rest: string.slice(matchedString.length)
    };
  };
}

function findKey(object, predicate) {
  for (var key in object) {
    if (object.hasOwnProperty(key) && predicate(object[key])) {
      return key;
    }
  }
}

function findIndex(array, predicate) {
  for (var key = 0; key < array.length; key++) {
    if (predicate(array[key])) {
      return key;
    }
  }
}
// CONCATENATED MODULE: ./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js


var matchOrdinalNumberPattern = /^(\d+)(th|st|nd|rd)?/i;
var parseOrdinalNumberPattern = /\d+/i;
var matchEraPatterns = {
  narrow: /^(b|a)/i,
  abbreviated: /^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,
  wide: /^(before christ|before common era|anno domini|common era)/i
};
var parseEraPatterns = {
  any: [/^b/i, /^(a|c)/i]
};
var matchQuarterPatterns = {
  narrow: /^[1234]/i,
  abbreviated: /^q[1234]/i,
  wide: /^[1234](th|st|nd|rd)? quarter/i
};
var parseQuarterPatterns = {
  any: [/1/i, /2/i, /3/i, /4/i]
};
var matchMonthPatterns = {
  narrow: /^[jfmasond]/i,
  abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,
  wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i
};
var parseMonthPatterns = {
  narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],
  any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]
};
var matchDayPatterns = {
  narrow: /^[smtwf]/i,
  short: /^(su|mo|tu|we|th|fr|sa)/i,
  abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,
  wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i
};
var parseDayPatterns = {
  narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],
  any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]
};
var matchDayPeriodPatterns = {
  narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,
  any: /^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i
};
var parseDayPeriodPatterns = {
  any: {
    am: /^a/i,
    pm: /^p/i,
    midnight: /^mi/i,
    noon: /^no/i,
    morning: /morning/i,
    afternoon: /afternoon/i,
    evening: /evening/i,
    night: /night/i
  }
};
var match = {
  ordinalNumber: buildMatchPatternFn({
    matchPattern: matchOrdinalNumberPattern,
    parsePattern: parseOrdinalNumberPattern,
    valueCallback: function (value) {
      return parseInt(value, 10);
    }
  }),
  era: buildMatchFn({
    matchPatterns: matchEraPatterns,
    defaultMatchWidth: 'wide',
    parsePatterns: parseEraPatterns,
    defaultParseWidth: 'any'
  }),
  quarter: buildMatchFn({
    matchPatterns: matchQuarterPatterns,
    defaultMatchWidth: 'wide',
    parsePatterns: parseQuarterPatterns,
    defaultParseWidth: 'any',
    valueCallback: function (index) {
      return index + 1;
    }
  }),
  month: buildMatchFn({
    matchPatterns: matchMonthPatterns,
    defaultMatchWidth: 'wide',
    parsePatterns: parseMonthPatterns,
    defaultParseWidth: 'any'
  }),
  day: buildMatchFn({
    matchPatterns: matchDayPatterns,
    defaultMatchWidth: 'wide',
    parsePatterns: parseDayPatterns,
    defaultParseWidth: 'any'
  }),
  dayPeriod: buildMatchFn({
    matchPatterns: matchDayPeriodPatterns,
    defaultMatchWidth: 'any',
    parsePatterns: parseDayPeriodPatterns,
    defaultParseWidth: 'any'
  })
};
/* harmony default export */ var _lib_match = (match);
// CONCATENATED MODULE: ./node_modules/date-fns/esm/locale/en-US/index.js





/**
 * @type {Locale}
 * @category Locales
 * @summary English locale (United States).
 * @language English
 * @iso-639-2 eng
 * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}
 * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}
 */

var en_US_locale = {
  code: 'en-US',
  formatDistance: formatDistance,
  formatLong: _lib_formatLong,
  formatRelative: formatRelative,
  localize: _lib_localize,
  match: _lib_match,
  options: {
    weekStartsOn: 0
    /* Sunday */
    ,
    firstWeekContainsDate: 1
  }
};
/* harmony default export */ var en_US = (en_US_locale);
// CONCATENATED MODULE: ./node_modules/date-fns/esm/_lib/toInteger/index.js
function toInteger(dirtyNumber) {
  if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {
    return NaN;
  }

  var number = Number(dirtyNumber);

  if (isNaN(number)) {
    return number;
  }

  return number < 0 ? Math.ceil(number) : Math.floor(number);
}
// CONCATENATED MODULE: ./node_modules/date-fns/esm/addMilliseconds/index.js



/**
 * @name addMilliseconds
 * @category Millisecond Helpers
 * @summary Add the specified number of milliseconds to the given date.
 *
 * @description
 * Add the specified number of milliseconds to the given date.
 *
 * ### v2.0.0 breaking changes:
 *
 * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).
 *
 * @param {Date|Number} date - the date to be changed
 * @param {Number} amount - the amount of milliseconds to be added
 * @returns {Date} the new date with the milliseconds added
 * @throws {TypeError} 2 arguments required
 *
 * @example
 * // Add 750 milliseconds to 10 July 2014 12:45:30.000:
 * var result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)
 * //=> Thu Jul 10 2014 12:45:30.750
 */

function addMilliseconds(dirtyDate, dirtyAmount) {
  requiredArgs(2, arguments);
  var timestamp = toDate(dirtyDate).getTime();
  var amount = toInteger(dirtyAmount);
  return new Date(timestamp + amount);
}
// CONCATENATED MODULE: ./node_modules/date-fns/esm/subMilliseconds/index.js



/**
 * @name subMilliseconds
 * @category Millisecond Helpers
 * @summary Subtract the specified number of milliseconds from the given date.
 *
 * @description
 * Subtract the specified number of milliseconds from the given date.
 *
 * ### v2.0.0 breaking changes:
 *
 * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).
 *
 * @param {Date|Number} date - the date to be changed
 * @param {Number} amount - the amount of milliseconds to be subtracted
 * @returns {Date} the new date with the milliseconds subtracted
 * @throws {TypeError} 2 arguments required
 *
 * @example
 * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:
 * var result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)
 * //=> Thu Jul 10 2014 12:45:29.250
 */

function subMilliseconds(dirtyDate, dirtyAmount) {
  requiredArgs(2, arguments);
  var amount = toInteger(dirtyAmount);
  return addMilliseconds(dirtyDate, -amount);
}
// CONCATENATED MODULE: ./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js
function addLeadingZeros(number, targetLength) {
  var sign = number < 0 ? '-' : '';
  var output = Math.abs(number).toString();

  while (output.length < targetLength) {
    output = '0' + output;
  }

  return sign + output;
}
// CONCATENATED MODULE: ./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js

/*
 * |     | Unit                           |     | Unit                           |
 * |-----|--------------------------------|-----|--------------------------------|
 * |  a  | AM, PM                         |  A* |                                |
 * |  d  | Day of month                   |  D  |                                |
 * |  h  | Hour [1-12]                    |  H  | Hour [0-23]                    |
 * |  m  | Minute                         |  M  | Month                          |
 * |  s  | Second                         |  S  | Fraction of second             |
 * |  y  | Year (abs)                     |  Y  |                                |
 *
 * Letters marked by * are not implemented but reserved by Unicode standard.
 */

var formatters = {
  // Year
  y: function (date, token) {
    // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens
    // | Year     |     y | yy |   yyy |  yyyy | yyyyy |
    // |----------|-------|----|-------|-------|-------|
    // | AD 1     |     1 | 01 |   001 |  0001 | 00001 |
    // | AD 12    |    12 | 12 |   012 |  0012 | 00012 |
    // | AD 123   |   123 | 23 |   123 |  0123 | 00123 |
    // | AD 1234  |  1234 | 34 |  1234 |  1234 | 01234 |
    // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |
    var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)

    var year = signedYear > 0 ? signedYear : 1 - signedYear;
    return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);
  },
  // Month
  M: function (date, token) {
    var month = date.getUTCMonth();
    return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);
  },
  // Day of the month
  d: function (date, token) {
    return addLeadingZeros(date.getUTCDate(), token.length);
  },
  // AM or PM
  a: function (date, token) {
    var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';

    switch (token) {
      case 'a':
      case 'aa':
      case 'aaa':
        return dayPeriodEnumValue.toUpperCase();

      case 'aaaaa':
        return dayPeriodEnumValue[0];

      case 'aaaa':
      default:
        return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';
    }
  },
  // Hour [1-12]
  h: function (date, token) {
    return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);
  },
  // Hour [0-23]
  H: function (date, token) {
    return addLeadingZeros(date.getUTCHours(), token.length);
  },
  // Minute
  m: function (date, token) {
    return addLeadingZeros(date.getUTCMinutes(), token.length);
  },
  // Second
  s: function (date, token) {
    return addLeadingZeros(date.getUTCSeconds(), token.length);
  },
  // Fraction of second
  S: function (date, token) {
    var numberOfDigits = token.length;
    var milliseconds = date.getUTCMilliseconds();
    var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));
    return addLeadingZeros(fractionalSeconds, token.length);
  }
};
/* harmony default export */ var lightFormatters = (formatters);
// CONCATENATED MODULE: ./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js


var MILLISECONDS_IN_DAY = 86400000; // This function will be a part of public API when UTC function will be implemented.
// See issue: https://github.com/date-fns/date-fns/issues/376

function getUTCDayOfYear(dirtyDate) {
  requiredArgs(1, arguments);
  var date = toDate(dirtyDate);
  var timestamp = date.getTime();
  date.setUTCMonth(0, 1);
  date.setUTCHours(0, 0, 0, 0);
  var startOfYearTimestamp = date.getTime();
  var difference = timestamp - startOfYearTimestamp;
  return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;
}
// CONCATENATED MODULE: ./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js

 // This function will be a part of public API when UTC function will be implemented.
// See issue: https://github.com/date-fns/date-fns/issues/376

function startOfUTCISOWeek(dirtyDate) {
  requiredArgs(1, arguments);
  var weekStartsOn = 1;
  var date = toDate(dirtyDate);
  var day = date.getUTCDay();
  var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;
  date.setUTCDate(date.getUTCDate() - diff);
  date.setUTCHours(0, 0, 0, 0);
  return date;
}
// CONCATENATED MODULE: ./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js


 // This function will be a part of public API when UTC function will be implemented.
// See issue: https://github.com/date-fns/date-fns/issues/376

function getUTCISOWeekYear(dirtyDate) {
  requiredArgs(1, arguments);
  var date = toDate(dirtyDate);
  var year = date.getUTCFullYear();
  var fourthOfJanuaryOfNextYear = new Date(0);
  fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);
  fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);
  var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);
  var fourthOfJanuaryOfThisYear = new Date(0);
  fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);
  fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);
  var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);

  if (date.getTime() >= startOfNextYear.getTime()) {
    return year + 1;
  } else if (date.getTime() >= startOfThisYear.getTime()) {
    return year;
  } else {
    return year - 1;
  }
}
// CONCATENATED MODULE: ./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js


 // This function will be a part of public API when UTC function will be implemented.
// See issue: https://github.com/date-fns/date-fns/issues/376

function startOfUTCISOWeekYear(dirtyDate) {
  requiredArgs(1, arguments);
  var year = getUTCISOWeekYear(dirtyDate);
  var fourthOfJanuary = new Date(0);
  fourthOfJanuary.setUTCFullYear(year, 0, 4);
  fourthOfJanuary.setUTCHours(0, 0, 0, 0);
  var date = startOfUTCISOWeek(fourthOfJanuary);
  return date;
}
// CONCATENATED MODULE: ./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js




var MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.
// See issue: https://github.com/date-fns/date-fns/issues/376

function getUTCISOWeek(dirtyDate) {
  requiredArgs(1, arguments);
  var date = toDate(dirtyDate);
  var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer
  // because the number of milliseconds in a week is not constant
  // (e.g. it's different in the week of the daylight saving time clock shift)

  return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;
}
// CONCATENATED MODULE: ./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js


 // This function will be a part of public API when UTC function will be implemented.
// See issue: https://github.com/date-fns/date-fns/issues/376

function startOfUTCWeek(dirtyDate, dirtyOptions) {
  requiredArgs(1, arguments);
  var options = dirtyOptions || {};
  var locale = options.locale;
  var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;
  var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);
  var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN

  if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {
    throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');
  }

  var date = toDate(dirtyDate);
  var day = date.getUTCDay();
  var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;
  date.setUTCDate(date.getUTCDate() - diff);
  date.setUTCHours(0, 0, 0, 0);
  return date;
}
// CONCATENATED MODULE: ./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js



 // This function will be a part of public API when UTC function will be implemented.
// See issue: https://github.com/date-fns/date-fns/issues/376

function getUTCWeekYear(dirtyDate, dirtyOptions) {
  requiredArgs(1, arguments);
  var date = toDate(dirtyDate, dirtyOptions);
  var year = date.getUTCFullYear();
  var options = dirtyOptions || {};
  var locale = options.locale;
  var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;
  var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);
  var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN

  if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {
    throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');
  }

  var firstWeekOfNextYear = new Date(0);
  firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);
  firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);
  var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, dirtyOptions);
  var firstWeekOfThisYear = new Date(0);
  firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);
  firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);
  var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, dirtyOptions);

  if (date.getTime() >= startOfNextYear.getTime()) {
    return year + 1;
  } else if (date.getTime() >= startOfThisYear.getTime()) {
    return year;
  } else {
    return year - 1;
  }
}
// CONCATENATED MODULE: ./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js



 // This function will be a part of public API when UTC function will be implemented.
// See issue: https://github.com/date-fns/date-fns/issues/376

function startOfUTCWeekYear(dirtyDate, dirtyOptions) {
  requiredArgs(1, arguments);
  var options = dirtyOptions || {};
  var locale = options.locale;
  var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;
  var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);
  var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);
  var year = getUTCWeekYear(dirtyDate, dirtyOptions);
  var firstWeek = new Date(0);
  firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);
  firstWeek.setUTCHours(0, 0, 0, 0);
  var date = startOfUTCWeek(firstWeek, dirtyOptions);
  return date;
}
// CONCATENATED MODULE: ./node_modules/date-fns/esm/_lib/getUTCWeek/index.js




var getUTCWeek_MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.
// See issue: https://github.com/date-fns/date-fns/issues/376

function getUTCWeek(dirtyDate, options) {
  requiredArgs(1, arguments);
  var date = toDate(dirtyDate);
  var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer
  // because the number of milliseconds in a week is not constant
  // (e.g. it's different in the week of the daylight saving time clock shift)

  return Math.round(diff / getUTCWeek_MILLISECONDS_IN_WEEK) + 1;
}
// CONCATENATED MODULE: ./node_modules/date-fns/esm/_lib/format/formatters/index.js







var dayPeriodEnum = {
  am: 'am',
  pm: 'pm',
  midnight: 'midnight',
  noon: 'noon',
  morning: 'morning',
  afternoon: 'afternoon',
  evening: 'evening',
  night: 'night'
  /*
   * |     | Unit                           |     | Unit                           |
   * |-----|--------------------------------|-----|--------------------------------|
   * |  a  | AM, PM                         |  A* | Milliseconds in day            |
   * |  b  | AM, PM, noon, midnight         |  B  | Flexible day period            |
   * |  c  | Stand-alone local day of week  |  C* | Localized hour w/ day period   |
   * |  d  | Day of month                   |  D  | Day of year                    |
   * |  e  | Local day of week              |  E  | Day of week                    |
   * |  f  |                                |  F* | Day of week in month           |
   * |  g* | Modified Julian day            |  G  | Era                            |
   * |  h  | Hour [1-12]                    |  H  | Hour [0-23]                    |
   * |  i! | ISO day of week                |  I! | ISO week of year               |
   * |  j* | Localized hour w/ day period   |  J* | Localized hour w/o day period  |
   * |  k  | Hour [1-24]                    |  K  | Hour [0-11]                    |
   * |  l* | (deprecated)                   |  L  | Stand-alone month              |
   * |  m  | Minute                         |  M  | Month                          |
   * |  n  |                                |  N  |                                |
   * |  o! | Ordinal number modifier        |  O  | Timezone (GMT)                 |
   * |  p! | Long localized time            |  P! | Long localized date            |
   * |  q  | Stand-alone quarter            |  Q  | Quarter                        |
   * |  r* | Related Gregorian year         |  R! | ISO week-numbering year        |
   * |  s  | Second                         |  S  | Fraction of second             |
   * |  t! | Seconds timestamp              |  T! | Milliseconds timestamp         |
   * |  u  | Extended year                  |  U* | Cyclic year                    |
   * |  v* | Timezone (generic non-locat.)  |  V* | Timezone (location)            |
   * |  w  | Local week of year             |  W* | Week of month                  |
   * |  x  | Timezone (ISO-8601 w/o Z)      |  X  | Timezone (ISO-8601)            |
   * |  y  | Year (abs)                     |  Y  | Local week-numbering year      |
   * |  z  | Timezone (specific non-locat.) |  Z* | Timezone (aliases)             |
   *
   * Letters marked by * are not implemented but reserved by Unicode standard.
   *
   * Letters marked by ! are non-standard, but implemented by date-fns:
   * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)
   * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,
   *   i.e. 7 for Sunday, 1 for Monday, etc.
   * - `I` is ISO week of year, as opposed to `w` which is local week of year.
   * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.
   *   `R` is supposed to be used in conjunction with `I` and `i`
   *   for universal ISO week-numbering date, whereas
   *   `Y` is supposed to be used in conjunction with `w` and `e`
   *   for week-numbering date specific to the locale.
   * - `P` is long localized date format
   * - `p` is long localized time format
   */

};
var formatters_formatters = {
  // Era
  G: function (date, token, localize) {
    var era = date.getUTCFullYear() > 0 ? 1 : 0;

    switch (token) {
      // AD, BC
      case 'G':
      case 'GG':
      case 'GGG':
        return localize.era(era, {
          width: 'abbreviated'
        });
      // A, B

      case 'GGGGG':
        return localize.era(era, {
          width: 'narrow'
        });
      // Anno Domini, Before Christ

      case 'GGGG':
      default:
        return localize.era(era, {
          width: 'wide'
        });
    }
  },
  // Year
  y: function (date, token, localize) {
    // Ordinal number
    if (token === 'yo') {
      var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)

      var year = signedYear > 0 ? signedYear : 1 - signedYear;
      return localize.ordinalNumber(year, {
        unit: 'year'
      });
    }

    return lightFormatters.y(date, token);
  },
  // Local week-numbering year
  Y: function (date, token, localize, options) {
    var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)

    var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year

    if (token === 'YY') {
      var twoDigitYear = weekYear % 100;
      return addLeadingZeros(twoDigitYear, 2);
    } // Ordinal number


    if (token === 'Yo') {
      return localize.ordinalNumber(weekYear, {
        unit: 'year'
      });
    } // Padding


    return addLeadingZeros(weekYear, token.length);
  },
  // ISO week-numbering year
  R: function (date, token) {
    var isoWeekYear = getUTCISOWeekYear(date); // Padding

    return addLeadingZeros(isoWeekYear, token.length);
  },
  // Extended year. This is a single number designating the year of this calendar system.
  // The main difference between `y` and `u` localizers are B.C. years:
  // | Year | `y` | `u` |
  // |------|-----|-----|
  // | AC 1 |   1 |   1 |
  // | BC 1 |   1 |   0 |
  // | BC 2 |   2 |  -1 |
  // Also `yy` always returns the last two digits of a year,
  // while `uu` pads single digit years to 2 characters and returns other years unchanged.
  u: function (date, token) {
    var year = date.getUTCFullYear();
    return addLeadingZeros(year, token.length);
  },
  // Quarter
  Q: function (date, token, localize) {
    var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);

    switch (token) {
      // 1, 2, 3, 4
      case 'Q':
        return String(quarter);
      // 01, 02, 03, 04

      case 'QQ':
        return addLeadingZeros(quarter, 2);
      // 1st, 2nd, 3rd, 4th

      case 'Qo':
        return localize.ordinalNumber(quarter, {
          unit: 'quarter'
        });
      // Q1, Q2, Q3, Q4

      case 'QQQ':
        return localize.quarter(quarter, {
          width: 'abbreviated',
          context: 'formatting'
        });
      // 1, 2, 3, 4 (narrow quarter; could be not numerical)

      case 'QQQQQ':
        return localize.quarter(quarter, {
          width: 'narrow',
          context: 'formatting'
        });
      // 1st quarter, 2nd quarter, ...

      case 'QQQQ':
      default:
        return localize.quarter(quarter, {
          width: 'wide',
          context: 'formatting'
        });
    }
  },
  // Stand-alone quarter
  q: function (date, token, localize) {
    var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);

    switch (token) {
      // 1, 2, 3, 4
      case 'q':
        return String(quarter);
      // 01, 02, 03, 04

      case 'qq':
        return addLeadingZeros(quarter, 2);
      // 1st, 2nd, 3rd, 4th

      case 'qo':
        return localize.ordinalNumber(quarter, {
          unit: 'quarter'
        });
      // Q1, Q2, Q3, Q4

      case 'qqq':
        return localize.quarter(quarter, {
          width: 'abbreviated',
          context: 'standalone'
        });
      // 1, 2, 3, 4 (narrow quarter; could be not numerical)

      case 'qqqqq':
        return localize.quarter(quarter, {
          width: 'narrow',
          context: 'standalone'
        });
      // 1st quarter, 2nd quarter, ...

      case 'qqqq':
      default:
        return localize.quarter(quarter, {
          width: 'wide',
          context: 'standalone'
        });
    }
  },
  // Month
  M: function (date, token, localize) {
    var month = date.getUTCMonth();

    switch (token) {
      case 'M':
      case 'MM':
        return lightFormatters.M(date, token);
      // 1st, 2nd, ..., 12th

      case 'Mo':
        return localize.ordinalNumber(month + 1, {
          unit: 'month'
        });
      // Jan, Feb, ..., Dec

      case 'MMM':
        return localize.month(month, {
          width: 'abbreviated',
          context: 'formatting'
        });
      // J, F, ..., D

      case 'MMMMM':
        return localize.month(month, {
          width: 'narrow',
          context: 'formatting'
        });
      // January, February, ..., December

      case 'MMMM':
      default:
        return localize.month(month, {
          width: 'wide',
          context: 'formatting'
        });
    }
  },
  // Stand-alone month
  L: function (date, token, localize) {
    var month = date.getUTCMonth();

    switch (token) {
      // 1, 2, ..., 12
      case 'L':
        return String(month + 1);
      // 01, 02, ..., 12

      case 'LL':
        return addLeadingZeros(month + 1, 2);
      // 1st, 2nd, ..., 12th

      case 'Lo':
        return localize.ordinalNumber(month + 1, {
          unit: 'month'
        });
      // Jan, Feb, ..., Dec

      case 'LLL':
        return localize.month(month, {
          width: 'abbreviated',
          context: 'standalone'
        });
      // J, F, ..., D

      case 'LLLLL':
        return localize.month(month, {
          width: 'narrow',
          context: 'standalone'
        });
      // January, February, ..., December

      case 'LLLL':
      default:
        return localize.month(month, {
          width: 'wide',
          context: 'standalone'
        });
    }
  },
  // Local week of year
  w: function (date, token, localize, options) {
    var week = getUTCWeek(date, options);

    if (token === 'wo') {
      return localize.ordinalNumber(week, {
        unit: 'week'
      });
    }

    return addLeadingZeros(week, token.length);
  },
  // ISO week of year
  I: function (date, token, localize) {
    var isoWeek = getUTCISOWeek(date);

    if (token === 'Io') {
      return localize.ordinalNumber(isoWeek, {
        unit: 'week'
      });
    }

    return addLeadingZeros(isoWeek, token.length);
  },
  // Day of the month
  d: function (date, token, localize) {
    if (token === 'do') {
      return localize.ordinalNumber(date.getUTCDate(), {
        unit: 'date'
      });
    }

    return lightFormatters.d(date, token);
  },
  // Day of year
  D: function (date, token, localize) {
    var dayOfYear = getUTCDayOfYear(date);

    if (token === 'Do') {
      return localize.ordinalNumber(dayOfYear, {
        unit: 'dayOfYear'
      });
    }

    return addLeadingZeros(dayOfYear, token.length);
  },
  // Day of week
  E: function (date, token, localize) {
    var dayOfWeek = date.getUTCDay();

    switch (token) {
      // Tue
      case 'E':
      case 'EE':
      case 'EEE':
        return localize.day(dayOfWeek, {
          width: 'abbreviated',
          context: 'formatting'
        });
      // T

      case 'EEEEE':
        return localize.day(dayOfWeek, {
          width: 'narrow',
          context: 'formatting'
        });
      // Tu

      case 'EEEEEE':
        return localize.day(dayOfWeek, {
          width: 'short',
          context: 'formatting'
        });
      // Tuesday

      case 'EEEE':
      default:
        return localize.day(dayOfWeek, {
          width: 'wide',
          context: 'formatting'
        });
    }
  },
  // Local day of week
  e: function (date, token, localize, options) {
    var dayOfWeek = date.getUTCDay();
    var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;

    switch (token) {
      // Numerical value (Nth day of week with current locale or weekStartsOn)
      case 'e':
        return String(localDayOfWeek);
      // Padded numerical value

      case 'ee':
        return addLeadingZeros(localDayOfWeek, 2);
      // 1st, 2nd, ..., 7th

      case 'eo':
        return localize.ordinalNumber(localDayOfWeek, {
          unit: 'day'
        });

      case 'eee':
        return localize.day(dayOfWeek, {
          width: 'abbreviated',
          context: 'formatting'
        });
      // T

      case 'eeeee':
        return localize.day(dayOfWeek, {
          width: 'narrow',
          context: 'formatting'
        });
      // Tu

      case 'eeeeee':
        return localize.day(dayOfWeek, {
          width: 'short',
          context: 'formatting'
        });
      // Tuesday

      case 'eeee':
      default:
        return localize.day(dayOfWeek, {
          width: 'wide',
          context: 'formatting'
        });
    }
  },
  // Stand-alone local day of week
  c: function (date, token, localize, options) {
    var dayOfWeek = date.getUTCDay();
    var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;

    switch (token) {
      // Numerical value (same as in `e`)
      case 'c':
        return String(localDayOfWeek);
      // Padded numerical value

      case 'cc':
        return addLeadingZeros(localDayOfWeek, token.length);
      // 1st, 2nd, ..., 7th

      case 'co':
        return localize.ordinalNumber(localDayOfWeek, {
          unit: 'day'
        });

      case 'ccc':
        return localize.day(dayOfWeek, {
          width: 'abbreviated',
          context: 'standalone'
        });
      // T

      case 'ccccc':
        return localize.day(dayOfWeek, {
          width: 'narrow',
          context: 'standalone'
        });
      // Tu

      case 'cccccc':
        return localize.day(dayOfWeek, {
          width: 'short',
          context: 'standalone'
        });
      // Tuesday

      case 'cccc':
      default:
        return localize.day(dayOfWeek, {
          width: 'wide',
          context: 'standalone'
        });
    }
  },
  // ISO day of week
  i: function (date, token, localize) {
    var dayOfWeek = date.getUTCDay();
    var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;

    switch (token) {
      // 2
      case 'i':
        return String(isoDayOfWeek);
      // 02

      case 'ii':
        return addLeadingZeros(isoDayOfWeek, token.length);
      // 2nd

      case 'io':
        return localize.ordinalNumber(isoDayOfWeek, {
          unit: 'day'
        });
      // Tue

      case 'iii':
        return localize.day(dayOfWeek, {
          width: 'abbreviated',
          context: 'formatting'
        });
      // T

      case 'iiiii':
        return localize.day(dayOfWeek, {
          width: 'narrow',
          context: 'formatting'
        });
      // Tu

      case 'iiiiii':
        return localize.day(dayOfWeek, {
          width: 'short',
          context: 'formatting'
        });
      // Tuesday

      case 'iiii':
      default:
        return localize.day(dayOfWeek, {
          width: 'wide',
          context: 'formatting'
        });
    }
  },
  // AM or PM
  a: function (date, token, localize) {
    var hours = date.getUTCHours();
    var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';

    switch (token) {
      case 'a':
      case 'aa':
      case 'aaa':
        return localize.dayPeriod(dayPeriodEnumValue, {
          width: 'abbreviated',
          context: 'formatting'
        });

      case 'aaaaa':
        return localize.dayPeriod(dayPeriodEnumValue, {
          width: 'narrow',
          context: 'formatting'
        });

      case 'aaaa':
      default:
        return localize.dayPeriod(dayPeriodEnumValue, {
          width: 'wide',
          context: 'formatting'
        });
    }
  },
  // AM, PM, midnight, noon
  b: function (date, token, localize) {
    var hours = date.getUTCHours();
    var dayPeriodEnumValue;

    if (hours === 12) {
      dayPeriodEnumValue = dayPeriodEnum.noon;
    } else if (hours === 0) {
      dayPeriodEnumValue = dayPeriodEnum.midnight;
    } else {
      dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';
    }

    switch (token) {
      case 'b':
      case 'bb':
      case 'bbb':
        return localize.dayPeriod(dayPeriodEnumValue, {
          width: 'abbreviated',
          context: 'formatting'
        });

      case 'bbbbb':
        return localize.dayPeriod(dayPeriodEnumValue, {
          width: 'narrow',
          context: 'formatting'
        });

      case 'bbbb':
      default:
        return localize.dayPeriod(dayPeriodEnumValue, {
          width: 'wide',
          context: 'formatting'
        });
    }
  },
  // in the morning, in the afternoon, in the evening, at night
  B: function (date, token, localize) {
    var hours = date.getUTCHours();
    var dayPeriodEnumValue;

    if (hours >= 17) {
      dayPeriodEnumValue = dayPeriodEnum.evening;
    } else if (hours >= 12) {
      dayPeriodEnumValue = dayPeriodEnum.afternoon;
    } else if (hours >= 4) {
      dayPeriodEnumValue = dayPeriodEnum.morning;
    } else {
      dayPeriodEnumValue = dayPeriodEnum.night;
    }

    switch (token) {
      case 'B':
      case 'BB':
      case 'BBB':
        return localize.dayPeriod(dayPeriodEnumValue, {
          width: 'abbreviated',
          context: 'formatting'
        });

      case 'BBBBB':
        return localize.dayPeriod(dayPeriodEnumValue, {
          width: 'narrow',
          context: 'formatting'
        });

      case 'BBBB':
      default:
        return localize.dayPeriod(dayPeriodEnumValue, {
          width: 'wide',
          context: 'formatting'
        });
    }
  },
  // Hour [1-12]
  h: function (date, token, localize) {
    if (token === 'ho') {
      var hours = date.getUTCHours() % 12;
      if (hours === 0) hours = 12;
      return localize.ordinalNumber(hours, {
        unit: 'hour'
      });
    }

    return lightFormatters.h(date, token);
  },
  // Hour [0-23]
  H: function (date, token, localize) {
    if (token === 'Ho') {
      return localize.ordinalNumber(date.getUTCHours(), {
        unit: 'hour'
      });
    }

    return lightFormatters.H(date, token);
  },
  // Hour [0-11]
  K: function (date, token, localize) {
    var hours = date.getUTCHours() % 12;

    if (token === 'Ko') {
      return localize.ordinalNumber(hours, {
        unit: 'hour'
      });
    }

    return addLeadingZeros(hours, token.length);
  },
  // Hour [1-24]
  k: function (date, token, localize) {
    var hours = date.getUTCHours();
    if (hours === 0) hours = 24;

    if (token === 'ko') {
      return localize.ordinalNumber(hours, {
        unit: 'hour'
      });
    }

    return addLeadingZeros(hours, token.length);
  },
  // Minute
  m: function (date, token, localize) {
    if (token === 'mo') {
      return localize.ordinalNumber(date.getUTCMinutes(), {
        unit: 'minute'
      });
    }

    return lightFormatters.m(date, token);
  },
  // Second
  s: function (date, token, localize) {
    if (token === 'so') {
      return localize.ordinalNumber(date.getUTCSeconds(), {
        unit: 'second'
      });
    }

    return lightFormatters.s(date, token);
  },
  // Fraction of second
  S: function (date, token) {
    return lightFormatters.S(date, token);
  },
  // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)
  X: function (date, token, _localize, options) {
    var originalDate = options._originalDate || date;
    var timezoneOffset = originalDate.getTimezoneOffset();

    if (timezoneOffset === 0) {
      return 'Z';
    }

    switch (token) {
      // Hours and optional minutes
      case 'X':
        return formatTimezoneWithOptionalMinutes(timezoneOffset);
      // Hours, minutes and optional seconds without `:` delimiter
      // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets
      // so this token always has the same output as `XX`

      case 'XXXX':
      case 'XX':
        // Hours and minutes without `:` delimiter
        return formatTimezone(timezoneOffset);
      // Hours, minutes and optional seconds with `:` delimiter
      // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets
      // so this token always has the same output as `XXX`

      case 'XXXXX':
      case 'XXX': // Hours and minutes with `:` delimiter

      default:
        return formatTimezone(timezoneOffset, ':');
    }
  },
  // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)
  x: function (date, token, _localize, options) {
    var originalDate = options._originalDate || date;
    var timezoneOffset = originalDate.getTimezoneOffset();

    switch (token) {
      // Hours and optional minutes
      case 'x':
        return formatTimezoneWithOptionalMinutes(timezoneOffset);
      // Hours, minutes and optional seconds without `:` delimiter
      // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets
      // so this token always has the same output as `xx`

      case 'xxxx':
      case 'xx':
        // Hours and minutes without `:` delimiter
        return formatTimezone(timezoneOffset);
      // Hours, minutes and optional seconds with `:` delimiter
      // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets
      // so this token always has the same output as `xxx`

      case 'xxxxx':
      case 'xxx': // Hours and minutes with `:` delimiter

      default:
        return formatTimezone(timezoneOffset, ':');
    }
  },
  // Timezone (GMT)
  O: function (date, token, _localize, options) {
    var originalDate = options._originalDate || date;
    var timezoneOffset = originalDate.getTimezoneOffset();

    switch (token) {
      // Short
      case 'O':
      case 'OO':
      case 'OOO':
        return 'GMT' + formatTimezoneShort(timezoneOffset, ':');
      // Long

      case 'OOOO':
      default:
        return 'GMT' + formatTimezone(timezoneOffset, ':');
    }
  },
  // Timezone (specific non-location)
  z: function (date, token, _localize, options) {
    var originalDate = options._originalDate || date;
    var timezoneOffset = originalDate.getTimezoneOffset();

    switch (token) {
      // Short
      case 'z':
      case 'zz':
      case 'zzz':
        return 'GMT' + formatTimezoneShort(timezoneOffset, ':');
      // Long

      case 'zzzz':
      default:
        return 'GMT' + formatTimezone(timezoneOffset, ':');
    }
  },
  // Seconds timestamp
  t: function (date, token, _localize, options) {
    var originalDate = options._originalDate || date;
    var timestamp = Math.floor(originalDate.getTime() / 1000);
    return addLeadingZeros(timestamp, token.length);
  },
  // Milliseconds timestamp
  T: function (date, token, _localize, options) {
    var originalDate = options._originalDate || date;
    var timestamp = originalDate.getTime();
    return addLeadingZeros(timestamp, token.length);
  }
};

function formatTimezoneShort(offset, dirtyDelimiter) {
  var sign = offset > 0 ? '-' : '+';
  var absOffset = Math.abs(offset);
  var hours = Math.floor(absOffset / 60);
  var minutes = absOffset % 60;

  if (minutes === 0) {
    return sign + String(hours);
  }

  var delimiter = dirtyDelimiter || '';
  return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);
}

function formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {
  if (offset % 60 === 0) {
    var sign = offset > 0 ? '-' : '+';
    return sign + addLeadingZeros(Math.abs(offset) / 60, 2);
  }

  return formatTimezone(offset, dirtyDelimiter);
}

function formatTimezone(offset, dirtyDelimiter) {
  var delimiter = dirtyDelimiter || '';
  var sign = offset > 0 ? '-' : '+';
  var absOffset = Math.abs(offset);
  var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);
  var minutes = addLeadingZeros(absOffset % 60, 2);
  return sign + hours + delimiter + minutes;
}

/* harmony default export */ var format_formatters = (formatters_formatters);
// CONCATENATED MODULE: ./node_modules/date-fns/esm/_lib/format/longFormatters/index.js
function dateLongFormatter(pattern, formatLong) {
  switch (pattern) {
    case 'P':
      return formatLong.date({
        width: 'short'
      });

    case 'PP':
      return formatLong.date({
        width: 'medium'
      });

    case 'PPP':
      return formatLong.date({
        width: 'long'
      });

    case 'PPPP':
    default:
      return formatLong.date({
        width: 'full'
      });
  }
}

function timeLongFormatter(pattern, formatLong) {
  switch (pattern) {
    case 'p':
      return formatLong.time({
        width: 'short'
      });

    case 'pp':
      return formatLong.time({
        width: 'medium'
      });

    case 'ppp':
      return formatLong.time({
        width: 'long'
      });

    case 'pppp':
    default:
      return formatLong.time({
        width: 'full'
      });
  }
}

function dateTimeLongFormatter(pattern, formatLong) {
  var matchResult = pattern.match(/(P+)(p+)?/);
  var datePattern = matchResult[1];
  var timePattern = matchResult[2];

  if (!timePattern) {
    return dateLongFormatter(pattern, formatLong);
  }

  var dateTimeFormat;

  switch (datePattern) {
    case 'P':
      dateTimeFormat = formatLong.dateTime({
        width: 'short'
      });
      break;

    case 'PP':
      dateTimeFormat = formatLong.dateTime({
        width: 'medium'
      });
      break;

    case 'PPP':
      dateTimeFormat = formatLong.dateTime({
        width: 'long'
      });
      break;

    case 'PPPP':
    default:
      dateTimeFormat = formatLong.dateTime({
        width: 'full'
      });
      break;
  }

  return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));
}

var longFormatters = {
  p: timeLongFormatter,
  P: dateTimeLongFormatter
};
/* harmony default export */ var format_longFormatters = (longFormatters);
// CONCATENATED MODULE: ./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js
var MILLISECONDS_IN_MINUTE = 60000;
/**
 * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.
 * They usually appear for dates that denote time before the timezones were introduced
 * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891
 * and GMT+01:00:00 after that date)
 *
 * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,
 * which would lead to incorrect calculations.
 *
 * This function returns the timezone offset in milliseconds that takes seconds in account.
 */

function getTimezoneOffsetInMilliseconds(dirtyDate) {
  var date = new Date(dirtyDate.getTime());
  var baseTimezoneOffset = Math.ceil(date.getTimezoneOffset());
  date.setSeconds(0, 0);
  var millisecondsPartOfTimezoneOffset = date.getTime() % MILLISECONDS_IN_MINUTE;
  return baseTimezoneOffset * MILLISECONDS_IN_MINUTE + millisecondsPartOfTimezoneOffset;
}
// CONCATENATED MODULE: ./node_modules/date-fns/esm/_lib/protectedTokens/index.js
var protectedDayOfYearTokens = ['D', 'DD'];
var protectedWeekYearTokens = ['YY', 'YYYY'];
function isProtectedDayOfYearToken(token) {
  return protectedDayOfYearTokens.indexOf(token) !== -1;
}
function isProtectedWeekYearToken(token) {
  return protectedWeekYearTokens.indexOf(token) !== -1;
}
function throwProtectedError(token) {
  if (token === 'YYYY') {
    throw new RangeError('Use `yyyy` instead of `YYYY` for formatting years; see: https://git.io/fxCyr');
  } else if (token === 'YY') {
    throw new RangeError('Use `yy` instead of `YY` for formatting years; see: https://git.io/fxCyr');
  } else if (token === 'D') {
    throw new RangeError('Use `d` instead of `D` for formatting days of the month; see: https://git.io/fxCyr');
  } else if (token === 'DD') {
    throw new RangeError('Use `dd` instead of `DD` for formatting days of the month; see: https://git.io/fxCyr');
  }
}
// CONCATENATED MODULE: ./node_modules/date-fns/esm/format/index.js









 // This RegExp consists of three parts separated by `|`:
// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token
//   (one of the certain letters followed by `o`)
// - (\w)\1* matches any sequences of the same letter
// - '' matches two quote characters in a row
// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),
//   except a single quote symbol, which ends the sequence.
//   Two quote characters do not end the sequence.
//   If there is no matching single quote
//   then the sequence will continue until the end of the string.
// - . matches any single character unmatched by previous parts of the RegExps

var formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also
// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`

var longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;
var escapedStringRegExp = /^'([^]*?)'?$/;
var doubleQuoteRegExp = /''/g;
var unescapedLatinCharacterRegExp = /[a-zA-Z]/;
/**
 * @name format
 * @category Common Helpers
 * @summary Format the date.
 *
 * @description
 * Return the formatted date string in the given format. The result may vary by locale.
 *
 * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.
 * > See: https://git.io/fxCyr
 *
 * The characters wrapped between two single quotes characters (') are escaped.
 * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.
 * (see the last example)
 *
 * Format of the string is based on Unicode Technical Standard #35:
 * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table
 * with a few additions (see note 7 below the table).
 *
 * Accepted patterns:
 * | Unit                            | Pattern | Result examples                   | Notes |
 * |---------------------------------|---------|-----------------------------------|-------|
 * | Era                             | G..GGG  | AD, BC                            |       |
 * |                                 | GGGG    | Anno Domini, Before Christ        | 2     |
 * |                                 | GGGGG   | A, B                              |       |
 * | Calendar year                   | y       | 44, 1, 1900, 2017                 | 5     |
 * |                                 | yo      | 44th, 1st, 0th, 17th              | 5,7   |
 * |                                 | yy      | 44, 01, 00, 17                    | 5     |
 * |                                 | yyy     | 044, 001, 1900, 2017              | 5     |
 * |                                 | yyyy    | 0044, 0001, 1900, 2017            | 5     |
 * |                                 | yyyyy   | ...                               | 3,5   |
 * | Local week-numbering year       | Y       | 44, 1, 1900, 2017                 | 5     |
 * |                                 | Yo      | 44th, 1st, 1900th, 2017th         | 5,7   |
 * |                                 | YY      | 44, 01, 00, 17                    | 5,8   |
 * |                                 | YYY     | 044, 001, 1900, 2017              | 5     |
 * |                                 | YYYY    | 0044, 0001, 1900, 2017            | 5,8   |
 * |                                 | YYYYY   | ...                               | 3,5   |
 * | ISO week-numbering year         | R       | -43, 0, 1, 1900, 2017             | 5,7   |
 * |                                 | RR      | -43, 00, 01, 1900, 2017           | 5,7   |
 * |                                 | RRR     | -043, 000, 001, 1900, 2017        | 5,7   |
 * |                                 | RRRR    | -0043, 0000, 0001, 1900, 2017     | 5,7   |
 * |                                 | RRRRR   | ...                               | 3,5,7 |
 * | Extended year                   | u       | -43, 0, 1, 1900, 2017             | 5     |
 * |                                 | uu      | -43, 01, 1900, 2017               | 5     |
 * |                                 | uuu     | -043, 001, 1900, 2017             | 5     |
 * |                                 | uuuu    | -0043, 0001, 1900, 2017           | 5     |
 * |                                 | uuuuu   | ...                               | 3,5   |
 * | Quarter (formatting)            | Q       | 1, 2, 3, 4                        |       |
 * |                                 | Qo      | 1st, 2nd, 3rd, 4th                | 7     |
 * |                                 | QQ      | 01, 02, 03, 04                    |       |
 * |                                 | QQQ     | Q1, Q2, Q3, Q4                    |       |
 * |                                 | QQQQ    | 1st quarter, 2nd quarter, ...     | 2     |
 * |                                 | QQQQQ   | 1, 2, 3, 4                        | 4     |
 * | Quarter (stand-alone)           | q       | 1, 2, 3, 4                        |       |
 * |                                 | qo      | 1st, 2nd, 3rd, 4th                | 7     |
 * |                                 | qq      | 01, 02, 03, 04                    |       |
 * |                                 | qqq     | Q1, Q2, Q3, Q4                    |       |
 * |                                 | qqqq    | 1st quarter, 2nd quarter, ...     | 2     |
 * |                                 | qqqqq   | 1, 2, 3, 4                        | 4     |
 * | Month (formatting)              | M       | 1, 2, ..., 12                     |       |
 * |                                 | Mo      | 1st, 2nd, ..., 12th               | 7     |
 * |                                 | MM      | 01, 02, ..., 12                   |       |
 * |                                 | MMM     | Jan, Feb, ..., Dec                |       |
 * |                                 | MMMM    | January, February, ..., December  | 2     |
 * |                                 | MMMMM   | J, F, ..., D                      |       |
 * | Month (stand-alone)             | L       | 1, 2, ..., 12                     |       |
 * |                                 | Lo      | 1st, 2nd, ..., 12th               | 7     |
 * |                                 | LL      | 01, 02, ..., 12                   |       |
 * |                                 | LLL     | Jan, Feb, ..., Dec                |       |
 * |                                 | LLLL    | January, February, ..., December  | 2     |
 * |                                 | LLLLL   | J, F, ..., D                      |       |
 * | Local week of year              | w       | 1, 2, ..., 53                     |       |
 * |                                 | wo      | 1st, 2nd, ..., 53th               | 7     |
 * |                                 | ww      | 01, 02, ..., 53                   |       |
 * | ISO week of year                | I       | 1, 2, ..., 53                     | 7     |
 * |                                 | Io      | 1st, 2nd, ..., 53th               | 7     |
 * |                                 | II      | 01, 02, ..., 53                   | 7     |
 * | Day of month                    | d       | 1, 2, ..., 31                     |       |
 * |                                 | do      | 1st, 2nd, ..., 31st               | 7     |
 * |                                 | dd      | 01, 02, ..., 31                   |       |
 * | Day of year                     | D       | 1, 2, ..., 365, 366               | 9     |
 * |                                 | Do      | 1st, 2nd, ..., 365th, 366th       | 7     |
 * |                                 | DD      | 01, 02, ..., 365, 366             | 9     |
 * |                                 | DDD     | 001, 002, ..., 365, 366           |       |
 * |                                 | DDDD    | ...                               | 3     |
 * | Day of week (formatting)        | E..EEE  | Mon, Tue, Wed, ..., Su            |       |
 * |                                 | EEEE    | Monday, Tuesday, ..., Sunday      | 2     |
 * |                                 | EEEEE   | M, T, W, T, F, S, S               |       |
 * |                                 | EEEEEE  | Mo, Tu, We, Th, Fr, Su, Sa        |       |
 * | ISO day of week (formatting)    | i       | 1, 2, 3, ..., 7                   | 7     |
 * |                                 | io      | 1st, 2nd, ..., 7th                | 7     |
 * |                                 | ii      | 01, 02, ..., 07                   | 7     |
 * |                                 | iii     | Mon, Tue, Wed, ..., Su            | 7     |
 * |                                 | iiii    | Monday, Tuesday, ..., Sunday      | 2,7   |
 * |                                 | iiiii   | M, T, W, T, F, S, S               | 7     |
 * |                                 | iiiiii  | Mo, Tu, We, Th, Fr, Su, Sa        | 7     |
 * | Local day of week (formatting)  | e       | 2, 3, 4, ..., 1                   |       |
 * |                                 | eo      | 2nd, 3rd, ..., 1st                | 7     |
 * |                                 | ee      | 02, 03, ..., 01                   |       |
 * |                                 | eee     | Mon, Tue, Wed, ..., Su            |       |
 * |                                 | eeee    | Monday, Tuesday, ..., Sunday      | 2     |
 * |                                 | eeeee   | M, T, W, T, F, S, S               |       |
 * |                                 | eeeeee  | Mo, Tu, We, Th, Fr, Su, Sa        |       |
 * | Local day of week (stand-alone) | c       | 2, 3, 4, ..., 1                   |       |
 * |                                 | co      | 2nd, 3rd, ..., 1st                | 7     |
 * |                                 | cc      | 02, 03, ..., 01                   |       |
 * |                                 | ccc     | Mon, Tue, Wed, ..., Su            |       |
 * |                                 | cccc    | Monday, Tuesday, ..., Sunday      | 2     |
 * |                                 | ccccc   | M, T, W, T, F, S, S               |       |
 * |                                 | cccccc  | Mo, Tu, We, Th, Fr, Su, Sa        |       |
 * | AM, PM                          | a..aaa  | AM, PM                            |       |
 * |                                 | aaaa    | a.m., p.m.                        | 2     |
 * |                                 | aaaaa   | a, p                              |       |
 * | AM, PM, noon, midnight          | b..bbb  | AM, PM, noon, midnight            |       |
 * |                                 | bbbb    | a.m., p.m., noon, midnight        | 2     |
 * |                                 | bbbbb   | a, p, n, mi                       |       |
 * | Flexible day period             | B..BBB  | at night, in the morning, ...     |       |
 * |                                 | BBBB    | at night, in the morning, ...     | 2     |
 * |                                 | BBBBB   | at night, in the morning, ...     |       |
 * | Hour [1-12]                     | h       | 1, 2, ..., 11, 12                 |       |
 * |                                 | ho      | 1st, 2nd, ..., 11th, 12th         | 7     |
 * |                                 | hh      | 01, 02, ..., 11, 12               |       |
 * | Hour [0-23]                     | H       | 0, 1, 2, ..., 23                  |       |
 * |                                 | Ho      | 0th, 1st, 2nd, ..., 23rd          | 7     |
 * |                                 | HH      | 00, 01, 02, ..., 23               |       |
 * | Hour [0-11]                     | K       | 1, 2, ..., 11, 0                  |       |
 * |                                 | Ko      | 1st, 2nd, ..., 11th, 0th          | 7     |
 * |                                 | KK      | 1, 2, ..., 11, 0                  |       |
 * | Hour [1-24]                     | k       | 24, 1, 2, ..., 23                 |       |
 * |                                 | ko      | 24th, 1st, 2nd, ..., 23rd         | 7     |
 * |                                 | kk      | 24, 01, 02, ..., 23               |       |
 * | Minute                          | m       | 0, 1, ..., 59                     |       |
 * |                                 | mo      | 0th, 1st, ..., 59th               | 7     |
 * |                                 | mm      | 00, 01, ..., 59                   |       |
 * | Second                          | s       | 0, 1, ..., 59                     |       |
 * |                                 | so      | 0th, 1st, ..., 59th               | 7     |
 * |                                 | ss      | 00, 01, ..., 59                   |       |
 * | Fraction of second              | S       | 0, 1, ..., 9                      |       |
 * |                                 | SS      | 00, 01, ..., 99                   |       |
 * |                                 | SSS     | 000, 0001, ..., 999               |       |
 * |                                 | SSSS    | ...                               | 3     |
 * | Timezone (ISO-8601 w/ Z)        | X       | -08, +0530, Z                     |       |
 * |                                 | XX      | -0800, +0530, Z                   |       |
 * |                                 | XXX     | -08:00, +05:30, Z                 |       |
 * |                                 | XXXX    | -0800, +0530, Z, +123456          | 2     |
 * |                                 | XXXXX   | -08:00, +05:30, Z, +12:34:56      |       |
 * | Timezone (ISO-8601 w/o Z)       | x       | -08, +0530, +00                   |       |
 * |                                 | xx      | -0800, +0530, +0000               |       |
 * |                                 | xxx     | -08:00, +05:30, +00:00            | 2     |
 * |                                 | xxxx    | -0800, +0530, +0000, +123456      |       |
 * |                                 | xxxxx   | -08:00, +05:30, +00:00, +12:34:56 |       |
 * | Timezone (GMT)                  | O...OOO | GMT-8, GMT+5:30, GMT+0            |       |
 * |                                 | OOOO    | GMT-08:00, GMT+05:30, GMT+00:00   | 2     |
 * | Timezone (specific non-locat.)  | z...zzz | GMT-8, GMT+5:30, GMT+0            | 6     |
 * |                                 | zzzz    | GMT-08:00, GMT+05:30, GMT+00:00   | 2,6   |
 * | Seconds timestamp               | t       | 512969520                         | 7     |
 * |                                 | tt      | ...                               | 3,7   |
 * | Milliseconds timestamp          | T       | 512969520900                      | 7     |
 * |                                 | TT      | ...                               | 3,7   |
 * | Long localized date             | P       | 05/29/1453                        | 7     |
 * |                                 | PP      | May 29, 1453                      | 7     |
 * |                                 | PPP     | May 29th, 1453                    | 7     |
 * |                                 | PPPP    | Sunday, May 29th, 1453            | 2,7   |
 * | Long localized time             | p       | 12:00 AM                          | 7     |
 * |                                 | pp      | 12:00:00 AM                       | 7     |
 * |                                 | ppp     | 12:00:00 AM GMT+2                 | 7     |
 * |                                 | pppp    | 12:00:00 AM GMT+02:00             | 2,7   |
 * | Combination of date and time    | Pp      | 05/29/1453, 12:00 AM              | 7     |
 * |                                 | PPpp    | May 29, 1453, 12:00:00 AM         | 7     |
 * |                                 | PPPppp  | May 29th, 1453 at ...             | 7     |
 * |                                 | PPPPpppp| Sunday, May 29th, 1453 at ...     | 2,7   |
 * Notes:
 * 1. "Formatting" units (e.g. formatting quarter) in the default en-US locale
 *    are the same as "stand-alone" units, but are different in some languages.
 *    "Formatting" units are declined according to the rules of the language
 *    in the context of a date. "Stand-alone" units are always nominative singular:
 *
 *    `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`
 *
 *    `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`
 *
 * 2. Any sequence of the identical letters is a pattern, unless it is escaped by
 *    the single quote characters (see below).
 *    If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)
 *    the output will be the same as default pattern for this unit, usually
 *    the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units
 *    are marked with "2" in the last column of the table.
 *
 *    `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`
 *
 *    `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`
 *
 *    `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`
 *
 *    `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`
 *
 *    `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`
 *
 * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).
 *    The output will be padded with zeros to match the length of the pattern.
 *
 *    `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`
 *
 * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.
 *    These tokens represent the shortest form of the quarter.
 *
 * 5. The main difference between `y` and `u` patterns are B.C. years:
 *
 *    | Year | `y` | `u` |
 *    |------|-----|-----|
 *    | AC 1 |   1 |   1 |
 *    | BC 1 |   1 |   0 |
 *    | BC 2 |   2 |  -1 |
 *
 *    Also `yy` always returns the last two digits of a year,
 *    while `uu` pads single digit years to 2 characters and returns other years unchanged:
 *
 *    | Year | `yy` | `uu` |
 *    |------|------|------|
 *    | 1    |   01 |   01 |
 *    | 14   |   14 |   14 |
 *    | 376  |   76 |  376 |
 *    | 1453 |   53 | 1453 |
 *
 *    The same difference is true for local and ISO week-numbering years (`Y` and `R`),
 *    except local week-numbering years are dependent on `options.weekStartsOn`
 *    and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}
 *    and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).
 *
 * 6. Specific non-location timezones are currently unavailable in `date-fns`,
 *    so right now these tokens fall back to GMT timezones.
 *
 * 7. These patterns are not in the Unicode Technical Standard #35:
 *    - `i`: ISO day of week
 *    - `I`: ISO week of year
 *    - `R`: ISO week-numbering year
 *    - `t`: seconds timestamp
 *    - `T`: milliseconds timestamp
 *    - `o`: ordinal number modifier
 *    - `P`: long localized date
 *    - `p`: long localized time
 *
 * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.
 *    You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr
 *
 * 9. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.
 *    You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr
 *
 * ### v2.0.0 breaking changes:
 *
 * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).
 *
 * - The second argument is now required for the sake of explicitness.
 *
 *   ```javascript
 *   // Before v2.0.0
 *   format(new Date(2016, 0, 1))
 *
 *   // v2.0.0 onward
 *   format(new Date(2016, 0, 1), "yyyy-MM-dd'T'HH:mm:ss.SSSxxx")
 *   ```
 *
 * - New format string API for `format` function
 *   which is based on [Unicode Technical Standard #35](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table).
 *   See [this post](https://blog.date-fns.org/post/unicode-tokens-in-date-fns-v2-sreatyki91jg) for more details.
 *
 * - Characters are now escaped using single quote symbols (`'`) instead of square brackets.
 *
 * @param {Date|Number} date - the original date
 * @param {String} format - the string of tokens
 * @param {Object} [options] - an object with options.
 * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}
 * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)
 * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is
 * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;
 *   see: https://git.io/fxCyr
 * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;
 *   see: https://git.io/fxCyr
 * @returns {String} the formatted date string
 * @throws {TypeError} 2 arguments required
 * @throws {RangeError} `date` must not be Invalid Date
 * @throws {RangeError} `options.locale` must contain `localize` property
 * @throws {RangeError} `options.locale` must contain `formatLong` property
 * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6
 * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7
 * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years; see: https://git.io/fxCyr
 * @throws {RangeError} use `yy` instead of `YY` for formatting years; see: https://git.io/fxCyr
 * @throws {RangeError} use `d` instead of `D` for formatting days of the month; see: https://git.io/fxCyr
 * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month; see: https://git.io/fxCyr
 * @throws {RangeError} format string contains an unescaped latin alphabet character
 *
 * @example
 * // Represent 11 February 2014 in middle-endian format:
 * var result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')
 * //=> '02/11/2014'
 *
 * @example
 * // Represent 2 July 2014 in Esperanto:
 * import { eoLocale } from 'date-fns/locale/eo'
 * var result = format(new Date(2014, 6, 2), "do 'de' MMMM yyyy", {
 *   locale: eoLocale
 * })
 * //=> '2-a de julio 2014'
 *
 * @example
 * // Escape string by single quote characters:
 * var result = format(new Date(2014, 6, 2, 15), "h 'o''clock'")
 * //=> "3 o'clock"
 */

function format(dirtyDate, dirtyFormatStr, dirtyOptions) {
  requiredArgs(2, arguments);
  var formatStr = String(dirtyFormatStr);
  var options = dirtyOptions || {};
  var locale = options.locale || en_US;
  var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;
  var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);
  var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN

  if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {
    throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');
  }

  var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;
  var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);
  var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN

  if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {
    throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');
  }

  if (!locale.localize) {
    throw new RangeError('locale must contain localize property');
  }

  if (!locale.formatLong) {
    throw new RangeError('locale must contain formatLong property');
  }

  var originalDate = toDate(dirtyDate);

  if (!isValid(originalDate)) {
    throw new RangeError('Invalid time value');
  } // Convert the date in system timezone to the same date in UTC+00:00 timezone.
  // This ensures that when UTC functions will be implemented, locales will be compatible with them.
  // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376


  var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);
  var utcDate = subMilliseconds(originalDate, timezoneOffset);
  var formatterOptions = {
    firstWeekContainsDate: firstWeekContainsDate,
    weekStartsOn: weekStartsOn,
    locale: locale,
    _originalDate: originalDate
  };
  var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {
    var firstCharacter = substring[0];

    if (firstCharacter === 'p' || firstCharacter === 'P') {
      var longFormatter = format_longFormatters[firstCharacter];
      return longFormatter(substring, locale.formatLong, formatterOptions);
    }

    return substring;
  }).join('').match(formattingTokensRegExp).map(function (substring) {
    // Replace two single quote characters with one single quote character
    if (substring === "''") {
      return "'";
    }

    var firstCharacter = substring[0];

    if (firstCharacter === "'") {
      return cleanEscapedString(substring);
    }

    var formatter = format_formatters[firstCharacter];

    if (formatter) {
      if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(substring)) {
        throwProtectedError(substring);
      }

      if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(substring)) {
        throwProtectedError(substring);
      }

      return formatter(utcDate, substring, locale.localize, formatterOptions);
    }

    if (firstCharacter.match(unescapedLatinCharacterRegExp)) {
      throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');
    }

    return substring;
  }).join('');
  return result;
}

function cleanEscapedString(input) {
  return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, "'");
}
// CONCATENATED MODULE: ./node_modules/date-fns-tz/esm/_lib/tzTokenizeDate/index.js
/**
 * Returns the [year, month, day, hour, minute, seconds] tokens of the provided
 * `date` as it will be rendered in the `timeZone`.
 */
function tzTokenizeDate(date, timeZone) {
  var dtf = getDateTimeFormat(timeZone)
  return dtf.formatToParts ? partsOffset(dtf, date) : hackyOffset(dtf, date)
}

var typeToPos = {
  year: 0,
  month: 1,
  day: 2,
  hour: 3,
  minute: 4,
  second: 5
}

function partsOffset(dtf, date) {
  var formatted = dtf.formatToParts(date)
  var filled = []
  for (var i = 0; i < formatted.length; i++) {
    var pos = typeToPos[formatted[i].type]

    if (pos >= 0) {
      filled[pos] = parseInt(formatted[i].value, 10)
    }
  }
  return filled
}

function hackyOffset(dtf, date) {
  var formatted = dtf.format(date).replace(/\u200E/g, '')
  var parsed = /(\d+)\/(\d+)\/(\d+),? (\d+):(\d+):(\d+)/.exec(formatted)
  // var [, fMonth, fDay, fYear, fHour, fMinute, fSecond] = parsed
  // return [fYear, fMonth, fDay, fHour, fMinute, fSecond]
  return [parsed[3], parsed[1], parsed[2], parsed[4], parsed[5], parsed[6]]
}

// Get a cached Intl.DateTimeFormat instance for the IANA `timeZone`. This can be used
// to get deterministic local date/time output according to the `en-US` locale which
// can be used to extract local time parts as necessary.
var dtfCache = {}
function getDateTimeFormat(timeZone) {
  if (!dtfCache[timeZone]) {
    // New browsers use `hourCycle`, IE and Chrome <73 does not support it and uses `hour12`
    var testDateFormatted = new Intl.DateTimeFormat('en-US', {
      hour12: false,
      timeZone: 'America/New_York',
      year: 'numeric',
      month: '2-digit',
      day: '2-digit',
      hour: '2-digit',
      minute: '2-digit',
      second: '2-digit'
    }).format(new Date('2014-06-25T04:00:00.123Z'))
    var hourCycleSupported =
      testDateFormatted === '06/25/2014, 00:00:00' ||
      testDateFormatted === '‎06‎/‎25‎/‎2014‎ ‎00‎:‎00‎:‎00'

    dtfCache[timeZone] = hourCycleSupported
      ? new Intl.DateTimeFormat('en-US', {
          hour12: false,
          timeZone: timeZone,
          year: 'numeric',
          month: '2-digit',
          day: '2-digit',
          hour: '2-digit',
          minute: '2-digit',
          second: '2-digit'
        })
      : new Intl.DateTimeFormat('en-US', {
          hourCycle: 'h23',
          timeZone: timeZone,
          year: 'numeric',
          month: '2-digit',
          day: '2-digit',
          hour: '2-digit',
          minute: '2-digit',
          second: '2-digit'
        })
  }
  return dtfCache[timeZone]
}

// CONCATENATED MODULE: ./node_modules/date-fns-tz/esm/_lib/tzParseTimezone/index.js


var MILLISECONDS_IN_HOUR = 3600000
var tzParseTimezone_MILLISECONDS_IN_MINUTE = 60000

var patterns = {
  timezone: /([Z+-].*)$/,
  timezoneZ: /^(Z)$/,
  timezoneHH: /^([+-])(\d{2})$/,
  timezoneHHMM: /^([+-])(\d{2}):?(\d{2})$/,
  timezoneIANA: /(UTC|(?:[a-zA-Z]+\/[a-zA-Z_]+(?:\/[a-zA-Z_]+)?))$/
}

// Parse various time zone offset formats to an offset in milliseconds
function tzParseTimezone(timezoneString, date) {
  var token
  var absoluteOffset

  // Z
  token = patterns.timezoneZ.exec(timezoneString)
  if (token) {
    return 0
  }

  var hours

  // ±hh
  token = patterns.timezoneHH.exec(timezoneString)
  if (token) {
    hours = parseInt(token[2], 10)

    if (!validateTimezone(hours)) {
      return NaN
    }

    absoluteOffset = hours * MILLISECONDS_IN_HOUR
    return token[1] === '+' ? -absoluteOffset : absoluteOffset
  }

  // ±hh:mm or ±hhmm
  token = patterns.timezoneHHMM.exec(timezoneString)
  if (token) {
    hours = parseInt(token[2], 10)
    var minutes = parseInt(token[3], 10)

    if (!validateTimezone(hours, minutes)) {
      return NaN
    }

    absoluteOffset =
      hours * MILLISECONDS_IN_HOUR + minutes * tzParseTimezone_MILLISECONDS_IN_MINUTE
    return token[1] === '+' ? -absoluteOffset : absoluteOffset
  }

  // IANA time zone
  token = patterns.timezoneIANA.exec(timezoneString)
  if (token) {
    // var [fYear, fMonth, fDay, fHour, fMinute, fSecond] = tzTokenizeDate(date, timezoneString)
    var tokens = tzTokenizeDate(date, timezoneString)
    var asUTC = Date.UTC(
      tokens[0],
      tokens[1] - 1,
      tokens[2],
      tokens[3],
      tokens[4],
      tokens[5]
    )
    var timestampWithMsZeroed = date.getTime() - (date.getTime() % 1000)
    return -(asUTC - timestampWithMsZeroed)
  }

  return 0
}

function validateTimezone(hours, minutes) {
  if (minutes != null && (minutes < 0 || minutes > 59)) {
    return false
  }

  return true
}

// CONCATENATED MODULE: ./node_modules/date-fns-tz/esm/toDate/index.js




var toDate_MILLISECONDS_IN_HOUR = 3600000
var toDate_MILLISECONDS_IN_MINUTE = 60000
var DEFAULT_ADDITIONAL_DIGITS = 2

var toDate_patterns = {
  dateTimeDelimeter: /[T ]/,
  plainTime: /:/,
  timeZoneDelimeter: /[Z ]/i,

  // year tokens
  YY: /^(\d{2})$/,
  YYY: [
    /^([+-]\d{2})$/, // 0 additional digits
    /^([+-]\d{3})$/, // 1 additional digit
    /^([+-]\d{4})$/ // 2 additional digits
  ],
  YYYY: /^(\d{4})/,
  YYYYY: [
    /^([+-]\d{4})/, // 0 additional digits
    /^([+-]\d{5})/, // 1 additional digit
    /^([+-]\d{6})/ // 2 additional digits
  ],

  // date tokens
  MM: /^-(\d{2})$/,
  DDD: /^-?(\d{3})$/,
  MMDD: /^-?(\d{2})-?(\d{2})$/,
  Www: /^-?W(\d{2})$/,
  WwwD: /^-?W(\d{2})-?(\d{1})$/,

  HH: /^(\d{2}([.,]\d*)?)$/,
  HHMM: /^(\d{2}):?(\d{2}([.,]\d*)?)$/,
  HHMMSS: /^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/,

  // timezone tokens (to identify the presence of a tz)
  timezone: /([Z+-].*| UTC|(?:[a-zA-Z]+\/[a-zA-Z_]+(?:\/[a-zA-Z_]+)?))$/
}

/**
 * @name toDate
 * @category Common Helpers
 * @summary Convert the given argument to an instance of Date.
 *
 * @description
 * Convert the given argument to an instance of Date.
 *
 * If the argument is an instance of Date, the function returns its clone.
 *
 * If the argument is a number, it is treated as a timestamp.
 *
 * If an argument is a string, the function tries to parse it.
 * Function accepts complete ISO 8601 formats as well as partial implementations.
 * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601
 * If the function cannot parse the string or the values are invalid, it returns Invalid Date.
 *
 * If the argument is none of the above, the function returns Invalid Date.
 *
 * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.
 * All *date-fns* functions will throw `RangeError` if `options.additionalDigits` is not 0, 1, 2 or undefined.
 *
 * @param {Date|String|Number} argument - the value to convert
 * @param {OptionsWithTZ} [options] - the object with options. See [Options]{@link https://date-fns.org/docs/Options}
 * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format
 * @param {String} [options.timeZone=''] - used to specify the IANA time zone offset of a date String.
 * @returns {Date} the parsed date in the local time zone
 * @throws {TypeError} 1 argument required
 * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2
 *
 * @example
 * // Convert string '2014-02-11T11:30:30' to date:
 * var result = toDate('2014-02-11T11:30:30')
 * //=> Tue Feb 11 2014 11:30:30
 *
 * @example
 * // Convert string '+02014101' to date,
 * // if the additional number of digits in the extended year format is 1:
 * var result = toDate('+02014101', {additionalDigits: 1})
 * //=> Fri Apr 11 2014 00:00:00
 */
function toDate_toDate(argument, dirtyOptions) {
  if (arguments.length < 1) {
    throw new TypeError(
      '1 argument required, but only ' + arguments.length + ' present'
    )
  }

  if (argument === null) {
    return new Date(NaN)
  }

  var options = dirtyOptions || {}

  var additionalDigits =
    options.additionalDigits == null
      ? DEFAULT_ADDITIONAL_DIGITS
      : toInteger(options.additionalDigits)
  if (
    additionalDigits !== 2 &&
    additionalDigits !== 1 &&
    additionalDigits !== 0
  ) {
    throw new RangeError('additionalDigits must be 0, 1 or 2')
  }

  // Clone the date
  if (
    argument instanceof Date ||
    (typeof argument === 'object' &&
      Object.prototype.toString.call(argument) === '[object Date]')
  ) {
    // Prevent the date to lose the milliseconds when passed to new Date() in IE10
    return new Date(argument.getTime())
  } else if (
    typeof argument === 'number' ||
    Object.prototype.toString.call(argument) === '[object Number]'
  ) {
    return new Date(argument)
  } else if (
    !(
      typeof argument === 'string' ||
      Object.prototype.toString.call(argument) === '[object String]'
    )
  ) {
    return new Date(NaN)
  }

  var dateStrings = splitDateString(argument)

  var parseYearResult = parseYear(dateStrings.date, additionalDigits)
  var year = parseYearResult.year
  var restDateString = parseYearResult.restDateString

  var date = parseDate(restDateString, year)

  if (isNaN(date)) {
    return new Date(NaN)
  }

  if (date) {
    var timestamp = date.getTime()
    var time = 0
    var offset

    if (dateStrings.time) {
      time = parseTime(dateStrings.time)

      if (isNaN(time)) {
        return new Date(NaN)
      }
    }

    if (dateStrings.timezone || options.timeZone) {
      offset = tzParseTimezone(
        dateStrings.timezone || options.timeZone,
        new Date(timestamp + time)
      )
      if (isNaN(offset)) {
        return new Date(NaN)
      }
    } else {
      // get offset accurate to hour in timezones that change offset
      offset = getTimezoneOffsetInMilliseconds(new Date(timestamp + time))
      offset = getTimezoneOffsetInMilliseconds(
        new Date(timestamp + time + offset)
      )
    }

    return new Date(timestamp + time + offset)
  } else {
    return new Date(NaN)
  }
}

function splitDateString(dateString) {
  var dateStrings = {}
  var array = dateString.split(toDate_patterns.dateTimeDelimeter)
  var timeString

  if (toDate_patterns.plainTime.test(array[0])) {
    dateStrings.date = null
    timeString = array[0]
  } else {
    dateStrings.date = array[0]
    timeString = array[1]
    dateStrings.timezone = array[2]
    if (toDate_patterns.timeZoneDelimeter.test(dateStrings.date)) {
      dateStrings.date = dateString.split(toDate_patterns.timeZoneDelimeter)[0]
      timeString = dateString.substr(dateStrings.date.length, dateString.length)
    }
  }

  if (timeString) {
    var token = toDate_patterns.timezone.exec(timeString)
    if (token) {
      dateStrings.time = timeString.replace(token[1], '')
      dateStrings.timezone = token[1]
    } else {
      dateStrings.time = timeString
    }
  }

  return dateStrings
}

function parseYear(dateString, additionalDigits) {
  var patternYYY = toDate_patterns.YYY[additionalDigits]
  var patternYYYYY = toDate_patterns.YYYYY[additionalDigits]

  var token

  // YYYY or ±YYYYY
  token = toDate_patterns.YYYY.exec(dateString) || patternYYYYY.exec(dateString)
  if (token) {
    var yearString = token[1]
    return {
      year: parseInt(yearString, 10),
      restDateString: dateString.slice(yearString.length)
    }
  }

  // YY or ±YYY
  token = toDate_patterns.YY.exec(dateString) || patternYYY.exec(dateString)
  if (token) {
    var centuryString = token[1]
    return {
      year: parseInt(centuryString, 10) * 100,
      restDateString: dateString.slice(centuryString.length)
    }
  }

  // Invalid ISO-formatted year
  return {
    year: null
  }
}

function parseDate(dateString, year) {
  // Invalid ISO-formatted year
  if (year === null) {
    return null
  }

  var token
  var date
  var month
  var week

  // YYYY
  if (dateString.length === 0) {
    date = new Date(0)
    date.setUTCFullYear(year)
    return date
  }

  // YYYY-MM
  token = toDate_patterns.MM.exec(dateString)
  if (token) {
    date = new Date(0)
    month = parseInt(token[1], 10) - 1

    if (!validateDate(year, month)) {
      return new Date(NaN)
    }

    date.setUTCFullYear(year, month)
    return date
  }

  // YYYY-DDD or YYYYDDD
  token = toDate_patterns.DDD.exec(dateString)
  if (token) {
    date = new Date(0)
    var dayOfYear = parseInt(token[1], 10)

    if (!validateDayOfYearDate(year, dayOfYear)) {
      return new Date(NaN)
    }

    date.setUTCFullYear(year, 0, dayOfYear)
    return date
  }

  // yyyy-MM-dd or YYYYMMDD
  token = toDate_patterns.MMDD.exec(dateString)
  if (token) {
    date = new Date(0)
    month = parseInt(token[1], 10) - 1
    var day = parseInt(token[2], 10)

    if (!validateDate(year, month, day)) {
      return new Date(NaN)
    }

    date.setUTCFullYear(year, month, day)
    return date
  }

  // YYYY-Www or YYYYWww
  token = toDate_patterns.Www.exec(dateString)
  if (token) {
    week = parseInt(token[1], 10) - 1

    if (!validateWeekDate(year, week)) {
      return new Date(NaN)
    }

    return dayOfISOWeekYear(year, week)
  }

  // YYYY-Www-D or YYYYWwwD
  token = toDate_patterns.WwwD.exec(dateString)
  if (token) {
    week = parseInt(token[1], 10) - 1
    var dayOfWeek = parseInt(token[2], 10) - 1

    if (!validateWeekDate(year, week, dayOfWeek)) {
      return new Date(NaN)
    }

    return dayOfISOWeekYear(year, week, dayOfWeek)
  }

  // Invalid ISO-formatted date
  return null
}

function parseTime(timeString) {
  var token
  var hours
  var minutes

  // hh
  token = toDate_patterns.HH.exec(timeString)
  if (token) {
    hours = parseFloat(token[1].replace(',', '.'))

    if (!validateTime(hours)) {
      return NaN
    }

    return (hours % 24) * toDate_MILLISECONDS_IN_HOUR
  }

  // hh:mm or hhmm
  token = toDate_patterns.HHMM.exec(timeString)
  if (token) {
    hours = parseInt(token[1], 10)
    minutes = parseFloat(token[2].replace(',', '.'))

    if (!validateTime(hours, minutes)) {
      return NaN
    }

    return (
      (hours % 24) * toDate_MILLISECONDS_IN_HOUR + minutes * toDate_MILLISECONDS_IN_MINUTE
    )
  }

  // hh:mm:ss or hhmmss
  token = toDate_patterns.HHMMSS.exec(timeString)
  if (token) {
    hours = parseInt(token[1], 10)
    minutes = parseInt(token[2], 10)
    var seconds = parseFloat(token[3].replace(',', '.'))

    if (!validateTime(hours, minutes, seconds)) {
      return NaN
    }

    return (
      (hours % 24) * toDate_MILLISECONDS_IN_HOUR +
      minutes * toDate_MILLISECONDS_IN_MINUTE +
      seconds * 1000
    )
  }

  // Invalid ISO-formatted time
  return null
}

function dayOfISOWeekYear(isoWeekYear, week, day) {
  week = week || 0
  day = day || 0
  var date = new Date(0)
  date.setUTCFullYear(isoWeekYear, 0, 4)
  var fourthOfJanuaryDay = date.getUTCDay() || 7
  var diff = week * 7 + day + 1 - fourthOfJanuaryDay
  date.setUTCDate(date.getUTCDate() + diff)
  return date
}

// Validation functions

var DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
var DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

function isLeapYearIndex(year) {
  return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0)
}

function validateDate(year, month, date) {
  if (month < 0 || month > 11) {
    return false
  }

  if (date != null) {
    if (date < 1) {
      return false
    }

    var isLeapYear = isLeapYearIndex(year)
    if (isLeapYear && date > DAYS_IN_MONTH_LEAP_YEAR[month]) {
      return false
    }
    if (!isLeapYear && date > DAYS_IN_MONTH[month]) {
      return false
    }
  }

  return true
}

function validateDayOfYearDate(year, dayOfYear) {
  if (dayOfYear < 1) {
    return false
  }

  var isLeapYear = isLeapYearIndex(year)
  if (isLeapYear && dayOfYear > 366) {
    return false
  }
  if (!isLeapYear && dayOfYear > 365) {
    return false
  }

  return true
}

function validateWeekDate(year, week, day) {
  if (week < 0 || week > 52) {
    return false
  }

  if (day != null && (day < 0 || day > 6)) {
    return false
  }

  return true
}

function validateTime(hours, minutes, seconds) {
  if (hours != null && (hours < 0 || hours >= 25)) {
    return false
  }

  if (minutes != null && (minutes < 0 || minutes >= 60)) {
    return false
  }

  if (seconds != null && (seconds < 0 || seconds >= 60)) {
    return false
  }

  return true
}

// CONCATENATED MODULE: ./node_modules/date-fns-tz/esm/zonedTimeToUtc/index.js




/**
 * @name zonedTimeToUtc
 * @category Time Zone Helpers
 * @summary Get the UTC date/time from a date representing local time in a given time zone
 *
 * @description
 * Returns a date instance with the UTC time of the provided date of which the values
 * represented the local time in the time zone specified. In other words, if the input
 * date represented local time in time time zone, the timestamp of the output date will
 * give the equivalent UTC of that local time regardless of the current system time zone.
 *
 * @param {Date|String|Number} date - the date with values representing the local time
 * @param {String} timeZone - the time zone of this local time, can be an offset or IANA time zone
 * @param {OptionsWithTZ} [options] - the object with options. See [Options]{@link https://date-fns.org/docs/Options}
 * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}
 * @returns {Date} the new date with the equivalent time in the time zone
 * @throws {TypeError} 2 arguments required
 * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2
 *
 * @example
 * // In June 10am in Los Angeles is 5pm UTC
 * const result = zonedTimeToUtc(new Date(2014, 5, 25, 10, 0, 0), 'America/Los_Angeles')
 * //=> 2014-06-25T17:00:00.000Z
 */
function zonedTimeToUtc(date, timeZone, options) {
  if (date instanceof Date) {
    date = format(date, "yyyy-MM-dd'T'HH:mm:ss.SSS")
  }
  var extendedOptions = cloneObject(options)
  extendedOptions.timeZone = timeZone
  return toDate_toDate(date, extendedOptions)
}

// EXTERNAL MODULE: ./src/json/timezones.json
var timezones = __webpack_require__(10);

// CONCATENATED MODULE: ./src/links/airlines/aaSabre.js







const aaSabreEditions = [
  { value: "BS", name: "Bahamas (USD)" },
  { value: "VG", name: "British Virgin Islands (USD)" },
  { value: "CA", name: "Canada (CAD)" },
  { value: "PR", name: "Puerto Rico (USD)" },
  { value: "GB", name: "United Kingdom (GBP)" },
  { value: "US", name: "United States (USD)" }
];

function printAaSabre() {
  if (!Object(links["anyCarriers"])("AA")) {
    return;
  }

  let datetimeToEpoch = function(y, m, d, t, ap) {
    /**
     * This function converts a datetime from the local timezone of the
     * departing airport to its epoch value, while accounting for
     * daylight savings time (DST) differences in future months.
     *
     * This function accepts the IATA code for a given airport and
     * retrieves the timezone from a static array of known airport data
     * (sourced from https://www.flightstats.com, reduced to
     * airports with IATA code, and converted to keyed json format).
     *
     * @param y 4-digit year
     * @param m 2-digit month
     * @param d 2-digit day
     * @param t 24-hour formatted time (HH:MM)
     * @param y 4-digit year
     * @param ap IATA airport code
     * @returns Adjusted datetime string with offset in format YYYY-MM-DDTHH:MM:00+XX:00
     */

    let datetimeStr =
      y +
      "-" +
      ("0" + m).slice(-2) +
      "-" +
      ("0" + d).slice(-2) +
      "T" +
      t +
      ":00";

    return zonedTimeToUtc(datetimeStr, timezones[ap]).getTime();
  };

  // validate Passengers here: Max Paxcount = 7 (Infs not included) - >11 = Adult - InfSeat = Child
  var createUrl = function(edition) {
    var pax = Object(links["validatePax"])({
      maxPaxcount: 6,
      countInf: true,
      childAsAdult: 12,
      sepInfSeat: false,
      childMinAge: 2
    });
    if (!pax) {
      Object(utils["g" /* printNotification */])("Error: Failed to validate Passengers in printAaSabre");
      return false;
    }
    var url = "https://www.aa.com/goto/metasearch?ITEN=GOOGLE,0,";
    url += (edition || "US") + ",";
    if (itin["a" /* currentItin */].itin.length === 1) {
      url += "oneWay";
    } else {
      url += "multi";
    }
    url +=
      ",4,A" +
      pax.adults +
      "S0C" +
      pax.children.length +
      "I" +
      pax.infLap +
      "Y0L0,0,";
    url += itin["a" /* currentItin */].itin[0].orig + ",0," + itin["a" /* currentItin */].itin[0].dest;
    url += ",0";

    if (itin["a" /* currentItin */].itin.length > 1) {
      for (var i = 0; i < itin["a" /* currentItin */].itin.length; i++) {
        url += ",0,0";
      }
    } else {
      url += ",0"; // for oneWay only
    }

    if (itin["a" /* currentItin */].itin.length == 2) {
      // insert additional parameter zeros for roundtrips or 2-leg multi-city:
      url += ",0,0";
    } else if (itin["a" /* currentItin */].itin.length == 1) {
      // insert the departure time before the price for oneWay only:
      url +=
        "," +
        datetimeToEpoch(
          itin["a" /* currentItin */].itin[0].seg[0].dep.year,
          itin["a" /* currentItin */].itin[0].seg[0].dep.month,
          itin["a" /* currentItin */].itin[0].seg[0].dep.day,
          itin["a" /* currentItin */].itin[0].seg[0].dep.time24,
          itin["a" /* currentItin */].itin[0].seg[0].orig
        );
    }
    url += "," + itin["a" /* currentItin */].price + ",1,";

    // this part for RT and multi-city only:
    if (itin["a" /* currentItin */].itin.length > 1) {
      var addon = "";
      for (var i = 0; i < itin["a" /* currentItin */].itin.length; i++) {
        addon +=
          "#" +
          itin["a" /* currentItin */].itin[i].orig +
          "|" +
          itin["a" /* currentItin */].itin[i].dest +
          "|0|0|";
        addon += datetimeToEpoch(
          itin["a" /* currentItin */].itin[i].seg[0].dep.year,
          itin["a" /* currentItin */].itin[i].seg[0].dep.month,
          itin["a" /* currentItin */].itin[i].seg[0].dep.day,
          itin["a" /* currentItin */].itin[i].seg[0].dep.time24,
          itin["a" /* currentItin */].itin[i].seg[0].orig
        );
      }
      url += encodeURIComponent(addon) + ",";
    }

    var itinsegs = new Array();

    // Build multi-city search based on legs:
    for (var i = 0; i < itin["a" /* currentItin */].itin.length; i++) {
      // outer loop traverses each leg
      for (var j = 0; j < itin["a" /* currentItin */].itin[i].seg.length; j++) {
        // inner loop traverses each segment of the leg
        var k = 0;
        // skip this segment ONLY IF the flight number is the
        // same as the next segment and it is only a layover
        while (j + k < itin["a" /* currentItin */].itin[i].seg.length - 1) {
          if (
            itin["a" /* currentItin */].itin[i].seg[j + k].fnr !==
              itin["a" /* currentItin */].itin[i].seg[j + k + 1].fnr ||
            itin["a" /* currentItin */].itin[i].seg[j + k].layoverduration >= 1440
          )
            break;
          k++;
        }
        let itinseg =
          "#" +
          itin["a" /* currentItin */].itin[i].seg[j].carrier +
          "|" +
          itin["a" /* currentItin */].itin[i].seg[j].fnr +
          "|" +
          itin["a" /* currentItin */].itin[i].seg[j].bookingclass +
          "|" +
          itin["a" /* currentItin */].itin[i].seg[j].orig +
          "|" +
          itin["a" /* currentItin */].itin[i].seg[j + k].dest +
          "|" +
          datetimeToEpoch(
            itin["a" /* currentItin */].itin[i].seg[j].dep.year,
            itin["a" /* currentItin */].itin[i].seg[j].dep.month,
            itin["a" /* currentItin */].itin[i].seg[j].dep.day,
            itin["a" /* currentItin */].itin[i].seg[j].dep.time24,
            itin["a" /* currentItin */].itin[i].seg[j].orig
          );
        itinseg += "|" + i;
        itinsegs.push(itinseg);
        j += k;
      }
    }
    url += encodeURIComponent(itinsegs.join(""));
    return url;
  };
  var url = createUrl(userSettings["a" /* default */].aaSabreEdition.toUpperCase());
  if (!url) {
    return;
  }
  var extra =
    ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  extra += aaSabreEditions
    .map(function(edition, i) {
      return (
        '<a href="' +
        createUrl(edition.value.toUpperCase()) +
        '" target="_blank">' +
        edition.name +
        "</a>"
      );
    })
    .join("<br/>");
  extra += "</span></span>";

  return {
    url,
    title: "American",
    desc: "America & UK",
    extra
  };
}

Object(links["register"])("airlines", printAaSabre);
Object(userSettings["c" /* registerSetting */])(
  "American (America & UK)",
  "aaSabreEdition",
  aaSabreEditions,
  "US"
);


/***/ }),
/* 50 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);

// EXTERNAL MODULE: ./src/settings/appSettings.js
var appSettings = __webpack_require__(4);

// EXTERNAL MODULE: ./src/settings/userSettings.js
var userSettings = __webpack_require__(2);

// EXTERNAL MODULE: ./src/settings/itaSettings.js
var itaSettings = __webpack_require__(5);

// EXTERNAL MODULE: ./src/utils.js
var utils = __webpack_require__(1);

// EXTERNAL MODULE: ./src/parse/itin.js
var parse_itin = __webpack_require__(0);

// EXTERNAL MODULE: ./src/settings/translations.js
var translations = __webpack_require__(8);

// EXTERNAL MODULE: ./src/print/links.js
var links = __webpack_require__(9);

// CONCATENATED MODULE: ./src/print/index.js







function render() {
  // Editor mode?
  if (
    userSettings["a" /* default */].enableEditormode == 1 &&
    Object(utils["d" /* findtargets */])("editoritem").length === 0
  ) {
    Object(utils["k" /* toggleVis */])(document.getElementById("mptStartparse"), "inline-block");
    addEditor();
    return;
  } else if (Object(utils["d" /* findtargets */])("editoritem").length > 0) {
    Object(utils["k" /* toggleVis */])(document.getElementById("mptStartparse"));
    removeEditor();
    Object(parse_itin["c" /* readItinerary */])();
  }

  bindPageLayout();

  if (userSettings["a" /* default */].enableFarerules == 1) bindRulelinks();

  if (userSettings["a" /* default */].timeformat == "24h") bind24HourTime();

  if (
    userSettings["a" /* default */].language !== "en" &&
    translations["a" /* default */][userSettings["a" /* default */].language].resultpage !== undefined
  )
    bindTranslations(
      "resultpage",
      userSettings["a" /* default */].language,
      Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.itin, 1).nextElementSibling
    );

  if (userSettings["a" /* default */].enablePricebreakdown == 1) bindPriceBreakdown();

  if (userSettings["a" /* default */].enableInlineMode == 1) printCPM();

  Object(links["a" /* printLinksContainer */])();

  if (userSettings["a" /* default */].enableSeatguru == 1) bindSeatguru();
  if (userSettings["a" /* default */].enablePlanefinder == 1) bindPlanefinder();
  if (userSettings["a" /* default */].enableWheretocredit == 1) bindWheretocredit();
}

function cleanUp() {
  // empty outputcontainer
  if (document.getElementById("powertoolslinkcontainer") != undefined) {
    var div = document.getElementById("powertoolslinkcontainer");
    div.innerHTML = "";
  }
  //  S&D powertool items
  var elems = Object(utils["d" /* findtargets */])("powertoolsitem");
  for (var i = elems.length - 1; i >= 0; i--) {
    elems[i].parentElement.removeChild(elems[i]);
  }
  // S&D price breakdown
  var pbd = Object(utils["c" /* findtarget */])("pricebreakdown", 1);
  if (pbd != undefined) pbd.parentElement.removeChild(pbd);
}

function addEditor() {
  for (var i = 0; i < parse_itin["a" /* currentItin */].itin.length; i++) {
    for (var j = 0; j < parse_itin["a" /* currentItin */].itin[i].seg.length; j++) {
      var target = findItinTarget(i + 1, j + 1, "cabin").firstElementChild;
      var tmp = target.innerHTML;
      var bc = tmp.substr(tmp.length - 2, 1);
      var cabin = tmp.substr(0, tmp.length - 4);
      var cabins = [
        ["Economy", "Y"],
        ["Premium Economy", "Y+"],
        ["Business", "C"],
        ["First", "F"]
      ];
      var str = '<select style="width:40px" class="editoritem">';
      for (var k = 0; k < cabins.length; k++) {
        str +=
          '<option value="' +
          cabins[k][0] +
          '"' +
          (cabins[k][0] === cabin ? ' selected="selected"' : "") +
          ">" +
          cabins[k][1] +
          "</option>";
      }
      str += "</select>";
      str +=
        ' (<input type="text" class="editoritem" value="' +
        bc +
        '" style="width:20px;text-align:center">)';
      target.innerHTML = str;
    }
  }
}

function removeEditor() {
  for (var i = 0; i < parse_itin["a" /* currentItin */].itin.length; i++) {
    for (var j = 0; j < parse_itin["a" /* currentItin */].itin[i].seg.length; j++) {
      var target = findItinTarget(i + 1, j + 1, "cabin").firstElementChild;
      var cabin =
        target.firstElementChild.options[target.firstElementChild.selectedIndex]
          .value;
      var bc = target.firstElementChild.nextElementSibling.value;
      var str = cabin + " (" + bc + ")";
      target.innerHTML = str;
    }
  }
}

function bindPageLayout() {
  Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.milagecontainer, 1).setAttribute(
    "rowspan",
    "10"
  );
  const target = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.htbContainer, 1)
    .parentElement.parentElement;
  target.setAttribute("valign", "top");
  target.setAttribute("height", "100%");
}

function bind24HourTime() {
  // lets do the time-replacement
  const segs = Object(parse_itin["b" /* getCurrentSegs */])();
  if (segs.length > 0) {
    const target = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.itin, 1)
      .nextElementSibling;
    for (let i = 0; i < segs.length; i++) {
      target.innerHTML = target.innerHTML.replace(
        new RegExp(segs[i].dep.timeDisplay, "g"),
        segs[i].dep.time24
      );
      target.innerHTML = target.innerHTML.replace(
        new RegExp(segs[i].arr.timeDisplay, "g"),
        segs[i].arr.time24
      );
    }
  }
}

function bindRulelinks() {
  var i = 0;
  var j = 0;
  var t = 1;
  let target = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.rulescontainer, t);
  if (target != undefined) {
    do {
      var current = Number(
        target.firstElementChild.innerHTML.replace(/[^\d]/gi, "")
      );
      if (i > current) {
        j++;
        i = 0;
      }
      target = target.nextElementSibling.nextElementSibling.nextElementSibling;
      var targeturl =
        window.location.href.replace(/view-details/, "view-rules") +
        ";fare-key=" +
        j +
        "/" +
        i;
      var newlink = document.createElement("a");
      newlink.setAttribute("class", "gwt-Anchor");
      newlink.setAttribute("href", targeturl);
      newlink.setAttribute("target", "_blank");
      var linkText = document.createTextNode("rules");
      newlink.appendChild(linkText);
      target.parentElement.replaceChild(newlink, target);
      i++;
      t++;
      target = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.rulescontainer, t);
    } while (target != undefined);
  }
}

function bindPriceBreakdown() {
  var basefares = 0;
  var taxes = 0;
  var surcharges = 0;
  var basefound = 0;
  var cur = "";
  // define searchpattern to detect carrier imposed surcharges
  var searchpatt = new RegExp("((YQ|YR))");
  var t = 1;
  var target = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.htbLeft, t);
  if (userSettings["a" /* default */].enableInlineMode == 0) {
    var output = "";
    var count = 0;
  }
  if (target != undefined) {
    do {
      var type = target.firstChild.firstChild.nodeType;
      if (type == 1) {
        basefound = 1;
        //it's a basefare
        var price = Number(
          target.nextElementSibling.firstElementChild.innerHTML.replace(
            /[^\d]/gi,
            ""
          )
        );
        if (cur == "")
          cur = target.nextElementSibling.firstElementChild.innerHTML.replace(
            /[\d,.]/g,
            ""
          );
        basefares += price;
      } else if (basefound == 1 && type == 3) {
        //its a pricenode
        var name = target.firstElementChild.innerHTML;
        var price = Number(
          target.nextElementSibling.firstElementChild.innerHTML.replace(
            /[^\d]/gi,
            ""
          )
        );
        if (
          Object(utils["e" /* hasClass */])(
            target.nextElementSibling,
            itaSettings["a" /* default */].resultpage.htbGreyBorder
          )
        ) {
          //we are done for this container
          var sum = basefares + taxes + surcharges;
          if (userSettings["a" /* default */].enableInlineMode == 1) {
            var newtr = document.createElement("tr");
            newtr.innerHTML =
              '<td class="' +
              itaSettings["a" /* default */].resultpage.htbLeft +
              '"><div class="gwt-Label">Basefare per passenger (' +
              ((basefares / sum) * 100).toFixed(2).toString() +
              '%)</div></td><td class="' +
              itaSettings["a" /* default */].resultpage.htbGreyBorder +
              '"><div class="gwt-Label">' +
              cur +
              (basefares / 100)
                .toFixed(2)
                .toString()
                .replace(/\d(?=(\d{3})+\.)/g, "$&,") +
              "</div></td>";
            target.parentElement.parentElement.insertBefore(
              newtr,
              target.parentElement
            );
            var newtr = document.createElement("tr");
            newtr.innerHTML =
              '<td class="' +
              itaSettings["a" /* default */].resultpage.htbLeft +
              '"><div class="gwt-Label">Taxes per passenger (' +
              ((taxes / sum) * 100).toFixed(2).toString() +
              '%)</div></td><td class="' +
              itaSettings["a" /* default */].resultpage.htbRight +
              '"><div class="gwt-Label">' +
              cur +
              (taxes / 100)
                .toFixed(2)
                .toString()
                .replace(/\d(?=(\d{3})+\.)/g, "$&,") +
              "</div></td>";
            target.parentElement.parentElement.insertBefore(
              newtr,
              target.parentElement
            );
            var newtr = document.createElement("tr");
            newtr.innerHTML =
              '<td class="' +
              itaSettings["a" /* default */].resultpage.htbLeft +
              '"><div class="gwt-Label">Surcharges per passenger (' +
              ((surcharges / sum) * 100).toFixed(2).toString() +
              '%)</div></td><td class="' +
              itaSettings["a" /* default */].resultpage.htbRight +
              '"><div class="gwt-Label">' +
              cur +
              (surcharges / 100)
                .toFixed(2)
                .toString()
                .replace(/\d(?=(\d{3})+\.)/g, "$&,") +
              "</div></td>";
            target.parentElement.parentElement.insertBefore(
              newtr,
              target.parentElement
            );
            var newtr = document.createElement("tr");
            newtr.innerHTML =
              '<td class="' +
              itaSettings["a" /* default */].resultpage.htbLeft +
              '"><div class="gwt-Label">Basefare + Taxes per passenger (' +
              (((basefares + taxes) / sum) * 100).toFixed(2).toString() +
              '%)</div></td><td class="' +
              itaSettings["a" /* default */].resultpage.htbGreyBorder +
              '"><div class="gwt-Label">' +
              cur +
              ((basefares + taxes) / 100)
                .toFixed(2)
                .toString()
                .replace(/\d(?=(\d{3})+\.)/g, "$&,") +
              "</div></td>";
            target.parentElement.parentElement.insertBefore(
              newtr,
              target.parentElement
            );
          } else {
            count++;
            output += '<table style="float:left; margin-right:15px;"><tbody>';
            output +=
              '<tr><td colspan=3 style="text-align:center;">Price breakdown ' +
              count +
              ": </td></tr>";
            output +=
              "<tr><td>" +
              cur +
              ' per mile</td><td colspan=2 style="text-align:center;">' +
              (sum / parse_itin["a" /* currentItin */].dist / 100).toFixed(4).toString() +
              "</td></tr>";
            output +=
              '<tr><td>Basefare</td><td style="padding:0px 3px;text-align:right;">' +
              ((basefares / sum) * 100).toFixed(1).toString() +
              '%</td><td style="text-align:right;">' +
              cur +
              (basefares / 100)
                .toFixed(2)
                .toString()
                .replace(/\d(?=(\d{3})+\.)/g, "$&,") +
              "</td></tr>";
            output +=
              '<tr><td>Tax</td><td style="padding:0px 3px;text-align:right;">' +
              ((taxes / sum) * 100).toFixed(1).toString() +
              '%</td><td style="text-align:right;">' +
              cur +
              (taxes / 100)
                .toFixed(2)
                .toString()
                .replace(/\d(?=(\d{3})+\.)/g, "$&,") +
              "</td></tr>";
            output +=
              '<tr><td>Surcharges</td><td style="padding:0px 3px;text-align:right;">' +
              ((surcharges / sum) * 100).toFixed(1).toString() +
              '%</td><td style="text-align:right;">' +
              cur +
              (surcharges / 100)
                .toFixed(2)
                .toString()
                .replace(/\d(?=(\d{3})+\.)/g, "$&,") +
              "</td></tr>";
            output +=
              '<tr><td style="border-top: 1px solid #878787;padding:2px 0">Bf+Tax</td><td style="border-top: 1px solid #878787;padding:2px 3px;text-align:right;">' +
              (((basefares + taxes) / sum) * 100).toFixed(1).toString() +
              '%</td><td style="border-top: 1px solid #878787;padding:2px 0; text-align:right;">' +
              cur +
              ((basefares + taxes) / 100)
                .toFixed(2)
                .toString()
                .replace(/\d(?=(\d{3})+\.)/g, "$&,") +
              "</td></tr>";
            output += "</tbody></table>";
          }
          parse_itin["a" /* currentItin */].basefares = +(basefares / 100).toFixed(2);
          parse_itin["a" /* currentItin */].taxes = +(taxes / 100).toFixed(2);
          parse_itin["a" /* currentItin */].surcharges = +(surcharges / 100).toFixed(2);

          // reset var
          basefound = 0;
          basefares = 0;
          taxes = 0;
          surcharges = 0;
        } else {
          //Carrier surcharge?
          if (searchpatt.test(name) === true) {
            surcharges += price;
          } else {
            taxes += price;
          }
        }
      }
      t++;
      target = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.htbLeft, t);
    } while (target != undefined);
  }
  if (userSettings["a" /* default */].enableInlineMode == 0) {
    var printtarget = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.htbContainer, 1)
      .parentElement.parentElement.parentElement;
    var newtr = document.createElement("tr");
    newtr.setAttribute("class", "pricebreakdown");
    newtr.innerHTML = "<td><div>" + output + "</div></td>";
    printtarget.parentElement.insertBefore(newtr, printtarget);
  }
}

function bindTranslations(page, lang, target) {
  if (translations["a" /* default */][lang] === undefined) {
    Object(utils["g" /* printNotification */])("Error: Translation " + lang + " not found");
    return false;
  }
  if (translations["a" /* default */][lang][page] === undefined) {
    Object(utils["g" /* printNotification */])(
      "Error: Translation " + lang + " not found for page " + page
    );
    return false;
  }
  for (let i in translations["a" /* default */][lang][page]) {
    const re = new RegExp(i, "g");
    target.innerHTML = target.innerHTML.replace(
      re,
      translations["a" /* default */][lang][page][i]
    );
  }
}

function printCPM() {
  document
    .querySelector(".KIR33AB-y-c:nth-of-type(1)")
    .insertAdjacentHTML(
      "beforeend",
      `<li class="powertoolsitem">${(
        Number(parse_itin["a" /* currentItin */].price) / Number(parse_itin["a" /* currentItin */].dist)
      ).toFixed(4)} cpm</li>`
    );
}

function bindSeatguru() {
  for (var i = 0; i < parse_itin["a" /* currentItin */].itin.length; i++) {
    // walks each leg
    for (var j = 0; j < parse_itin["a" /* currentItin */].itin[i].seg.length; j++) {
      //walks each segment of leg
      var k = 0;
      // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover
      while (j + k < parse_itin["a" /* currentItin */].itin[i].seg.length - 1) {
        if (
          parse_itin["a" /* currentItin */].itin[i].seg[j + k].fnr !=
            parse_itin["a" /* currentItin */].itin[i].seg[j + k + 1].fnr ||
          parse_itin["a" /* currentItin */].itin[i].seg[j + k].layoverduration >= 1440
        )
          break;
        k++;
      }
      // build the search to identify flight:
      var target = findItinTarget(i + 1, j + 1, "plane");
      if (!target) {
        Object(utils["g" /* printNotification */])("Error: Could not find target in bindSeatguru");
        return false;
      } else {
        var url =
          "http://www.seatguru.com/findseatmap/findseatmap.php?carrier=" +
          parse_itin["a" /* currentItin */].itin[i].seg[j].carrier +
          "&flightno=" +
          parse_itin["a" /* currentItin */].itin[i].seg[j].fnr +
          "&date=" +
          ("0" + parse_itin["a" /* currentItin */].itin[i].seg[j].dep.month).slice(-2) +
          "%2F" +
          ("0" + parse_itin["a" /* currentItin */].itin[i].seg[j].dep.day).slice(-2) +
          "%2F" +
          parse_itin["a" /* currentItin */].itin[i].seg[j].dep.year +
          "&to=&from=" +
          parse_itin["a" /* currentItin */].itin[i].seg[j].orig;
        target.children[0].classList.add("pt-textlink");
        target.children[0].innerHTML =
          '<a href="' +
          url +
          '" target="_blank">' +
          target.children[0].innerHTML +
          "</a>";
      }
      j += k;
    }
  }
}

function bindPlanefinder() {
  for (var i = 0; i < parse_itin["a" /* currentItin */].itin.length; i++) {
    // walks each leg
    for (var j = 0; j < parse_itin["a" /* currentItin */].itin[i].seg.length; j++) {
      //walks each segment of leg
      var k = 0;
      // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover
      while (j + k < parse_itin["a" /* currentItin */].itin[i].seg.length - 1) {
        if (
          parse_itin["a" /* currentItin */].itin[i].seg[j + k].fnr !=
            parse_itin["a" /* currentItin */].itin[i].seg[j + k + 1].fnr ||
          parse_itin["a" /* currentItin */].itin[i].seg[j + k].layoverduration >= 1440
        )
          break;
        k++;
      }
      // build the search to identify flight:
      var target = findItinTarget(i + 1, j + 1, "flight");
      if (!target) {
        Object(utils["g" /* printNotification */])("Error: Could not find target in bindPlanefinder");
        return false;
      } else {
        var url =
          "http://www.planefinder.net/data/flight/" +
          parse_itin["a" /* currentItin */].itin[i].seg[j].carrier +
          parse_itin["a" /* currentItin */].itin[i].seg[j].fnr;
        target.children[0].classList.add("pt-textlink");
        target.children[0].innerHTML =
          '<a href="' +
          url +
          '" target="_blank">' +
          target.children[0].innerHTML +
          "</a>";
      }
      j += k;
    }
  }
}

function bindWheretocredit() {
  for (var i = 0; i < parse_itin["a" /* currentItin */].itin.length; i++) {
    // walks each leg
    for (var j = 0; j < parse_itin["a" /* currentItin */].itin[i].seg.length; j++) {
      //walks each segment of leg
      var target = findItinTarget(i + 1, j + 1, "cabin");
      if (!target) {
        Object(utils["g" /* printNotification */])("Error: Could not find target in bindWheretocredit");
        return false;
      } else {
        var url =
          "http://www.wheretocredit.com/" +
          parse_itin["a" /* currentItin */].itin[i].seg[j].carrier.toLowerCase() +
          "/" +
          parse_itin["a" /* currentItin */].itin[i].seg[j].bookingclass.toLowerCase();
        target.children[0].classList.add("pt-textlink");
        target.children[0].innerHTML = target.children[0].innerHTML
          .replace(
            /<a.*?\/a>/,
            "(" + parse_itin["a" /* currentItin */].itin[i].seg[j].bookingclass + ")"
          )
          .replace(
            "(" + parse_itin["a" /* currentItin */].itin[i].seg[j].bookingclass + ")",
            '<a href="' +
              url +
              '" target="_blank">(' +
              parse_itin["a" /* currentItin */].itin[i].seg[j].bookingclass +
              ")</a>"
          );
      }
    }
  }
}

function findItinTarget(leg, seg, tcell) {
  var target = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.itin, 1);
  if (!target) {
    Object(utils["g" /* printNotification */])("Error: Itin not found in findItinTarget-function");
    return;
  }

  // go to leg
  var targetLeg = target.nextElementSibling.children[leg - 1];
  if (targetLeg === undefined) {
    Object(utils["g" /* printNotification */])("Error: Leg not found in findItinTarget-function");
    return;
  }
  // go to segments of leg
  var targetSeg = targetLeg.children[1].children;
  if (targetSeg.length >= 2) {
    // go to desired segment
    var index = 0;
    var j = 0;
    let i = 0;
    for (i = 0; i < targetSeg.length; i++) {
      if (Object(utils["e" /* hasClass */])(targetSeg[i], itaSettings["a" /* default */].resultpage.itinRow)) {
        j++;
        if (j >= seg) {
          index = i;
          //special handling for one-seg-legs here
          if (targetSeg.length === 2 || targetSeg.length === 3) {
            // 1. Headline 2. Flight-details 3. arrival next day..
            index--;
          }
          break;
        }
      }
    } // end-for
    if (i == targetSeg.length) {
      //target not found
      Object(utils["g" /* printNotification */])(
        "Error: Call to unreachable Segment in Leg " +
          leg +
          " in findItinTarget-function"
      );
      return;
    }
    var rowoffset = 0;
    var columnoffset = 0;

    switch (tcell) {
      case "headline":
        // special case here allways first row... even in one-seg-legs
        rowoffset = index * -1;
        columnoffset = 1;
        break;
      case "logo":
        rowoffset = 0;
        columnoffset = 0;
        break;
      case "airportsdate":
        rowoffset = 0;
        columnoffset = 1;
        break;
      case "flight":
        rowoffset = 1;
        columnoffset = 0;
        break;
      case "deptime":
        rowoffset = 1;
        columnoffset = 1;
        break;
      case "arrtime":
        rowoffset = 1;
        columnoffset = 2;
        break;
      case "duration":
        rowoffset = 1;
        columnoffset = 2;
        break;
      case "plane":
        rowoffset = 1;
        columnoffset = 4;
        break;
      case "cabin":
        rowoffset = 1;
        columnoffset = 5;
        break;
      default:
        Object(utils["g" /* printNotification */])("Error: Unknown Target in findItinTarget-function");
        return;
    }
    return targetSeg[index + rowoffset].children[columnoffset];
  } else {
    Object(utils["g" /* printNotification */])("Error: Unknown error in findItinTarget-function");
    return;
  }
}

// EXTERNAL MODULE: ./src/settings/paxSettings.js
var paxSettings = __webpack_require__(6);

// CONCATENATED MODULE: ./src/print/settings.js








/**************************************** Settings Stuff *****************************************/
function createUsersettings() {
  var str = "";
  var settingscontainer = document.createElement("div");
  settingscontainer.setAttribute("id", "mptSettingsContainer");
  settingscontainer.setAttribute("style", "border-bottom: 1px dashed grey;");
  settingscontainer.innerHTML =
    '<div style="display:inline-block;float:left;cursor:pointer;" id="passengerVisToggler">Passengers (<label id="mtpPaxCount">1a</label>)</div><div id="mptStartparse" class="invis" style="margin-left:20px;display:none;cursor:pointer">Editor-Mode:Parse!</div><div id="mtpNotification" style="margin-left:50px;display:inline-block;"></div><div style="display:inline-block;float:right;"><div id="settingsVisToggler" style="display:inline-block;cursor:pointer;">Settings</div> (v' +
    appSettings["a" /* default */].version +
    ') <div id="mptCabintoggler" style="display:inline-block;">(Cabin: <label id="mptCabinMode" style="width:30px;text-align:center;cursor:pointer;display:inline-block">Auto</label>)</div></div><div id="mptSettings" class="invis" style="display:none;border-top: 1px dotted grey;"></div><div id="mptPassengers" class="invis" style="display:none;border-top: 1px dotted grey;"></div>';
  var target = document.getElementById("contentwrapper");
  target.parentElement.insertBefore(settingscontainer, target);
  document.getElementById("settingsVisToggler").onclick = function() {
    Object(utils["k" /* toggleVis */])(document.getElementById("mptSettings"));
  };
  document.getElementById("passengerVisToggler").onclick = function() {
    Object(utils["k" /* toggleVis */])(document.getElementById("mptPassengers"));
  };

  // Build settings
  target = document.getElementById("mptSettings");
  str =
    '<div id="mptrestoredefault" style="text-align:right;font-weight:bold;text-decoration:underline;">Restore Defaults</div>';
  str +=
    '<div style="text-align:center;font-weight:bold">**** Display Settings: ****</div>';
  str += '<div style="margin:5px 0;"><div style="float:left;width:33%">';
  str +=
    '<div id="mptenableDarkmode">Dark mode: <label style="cursor:pointer;">' +
    printSettingsvalue("enableDarkmode") +
    "</label></div>";
  str +=
    '<div id="mpttimeformat">Time Format: <label style="cursor:pointer;">' +
    printSettingsvalue("timeformat") +
    "</label></div>";
  str +=
    '<div id="mptlanguage">Language: <label style="cursor:pointer;">' +
    printSettingsvalue("language") +
    "</label></div>";
  str +=
    '<div id="mptenableFarerules">Open rules in new window: <label style="cursor:pointer;">' +
    printSettingsvalue("enableFarerules") +
    "</label></div>";
  str += '</div><div style="float:left;width:33%">';
  str +=
    '<div id="mptenableInlineMode">Inline Mode: <label style="cursor:pointer;">' +
    printSettingsvalue("enableInlineMode") +
    "</label></div>";
  str +=
    '<div id="mptenableIMGautoload">Images autoload: <label style="cursor:pointer;">' +
    printSettingsvalue("enableIMGautoload") +
    "</label></div>";
  str +=
    '<div id="mptenablePricebreakdown">Price breakdown: <label style="cursor:pointer;">' +
    printSettingsvalue("enablePricebreakdown") +
    "</label></div>";
  str += '</div><div style="float:left;width:33%">';
  str +=
    '<div id="mptenableDeviders">Enable link dividers: <label style="cursor:pointer;">' +
    printSettingsvalue("enableDeviders") +
    "</label></div>";
  str +=
    '<div id="mptlinkFontsize">Link font size: <label style="cursor:pointer;">' +
    printSettingsvalue("linkFontsize") +
    "</label>%</div>";
  str +=
    '<div id="mptshowAllAirlines">Show all airline links: <label style="cursor:pointer;">' +
    printSettingsvalue("showAllAirlines") +
    "</label></div>";
  str += '</div><div style="clear:both"></div></div>';
  str +=
    '<div style="text-align:center;font-weight:bold">**** Feature Settings: ****</div>';
  str += '<div style="margin:5px 0"><div style="float:left;width:33%">';
  str +=
    '<div id="mptenableEditormode">Editor mode: <label style="cursor:pointer;">' +
    printSettingsvalue("enableEditormode") +
    "</label></div>";
  str += '</div><div style="float:left;width:33%">';
  str +=
    '<div id="mptenableAffiliates" title="Enables affiliate links to support the development of ITA Matrix Powertools">Support this tool: <label style="cursor:pointer;">' +
    printSettingsvalue("enableAffiliates") +
    "</label></div>";
  str += '</div><div style="float:left;width:33%">';
  str +=
    '<div id="mptenableWheretocredit">Enable WhereToCredit: <label style="cursor:pointer;">' +
    printSettingsvalue("enableWheretocredit") +
    "</label></div>";
  str +=
    '<div id="mptenablePlanefinder">Enable Planefinder: <label style="cursor:pointer;">' +
    printSettingsvalue("enablePlanefinder") +
    "</label></div>";
  str +=
    '<div id="mptenableSeatguru">Enable Seatguru: <label style="cursor:pointer;">' +
    printSettingsvalue("enableSeatguru") +
    "</label></div>";
  str += '</div><div style="clear:both"></div></div>';
  str +=
    '<div style="text-align:center;font-weight:bold">**** Link Settings: ****</div>';
  str += '<div style="margin:5px 0">';

  Object.keys(userSettings["d" /* registeredSettings */]).forEach(setting => {
    str += `<div id="mpt${setting}" style="width:33%;float:left;">${
      userSettings["d" /* registeredSettings */][setting].name
    }: <label style="cursor:pointer;">${printSettingsvalue(
      setting
    )}</label></div>`;
  });
  str += '<div style="clear:both"></div></div>';
  str +=
    '<div style="text-align:center;font-weight:bold"><label id="configcloser" style="cursor:pointer;text-decoration:underline;">Close</label><div>';
  target.innerHTML = str;

  // these onClick event handlers need only be added once:
  document.getElementById("mptrestoredefault").onclick = function() {
    restoreDefaultSettings();
  };
  document.getElementById("mptenableDarkmode").onclick = function() {
    toggleSettings("enableDarkmode");
  };
  document.getElementById("mpttimeformat").onclick = function() {
    toggleSettings("timeformat");
  };
  document.getElementById("mptlanguage").onclick = function() {
    toggleSettings("language");
  };
  document.getElementById("mptenableDeviders").onclick = function() {
    toggleSettings("enableDeviders");
  };
  document.getElementById("mptenableInlineMode").onclick = function() {
    toggleSettings("enableInlineMode");
  };
  document.getElementById("mptenableEditormode").onclick = function() {
    toggleSettings("enableEditormode");
  };
  document.getElementById("mptenableIMGautoload").onclick = function() {
    toggleSettings("enableIMGautoload");
  };
  document.getElementById("mptenableFarerules").onclick = function() {
    toggleSettings("enableFarerules");
  };
  document.getElementById("mptenablePricebreakdown").onclick = function() {
    toggleSettings("enablePricebreakdown");
  };
  document.getElementById("mptlinkFontsize").onclick = function() {
    toggleSettings("linkFontsize");
  };
  document.getElementById("mptshowAllAirlines").onclick = function() {
    toggleSettings("showAllAirlines");
  };
  document.getElementById("mptenablePlanefinder").onclick = function() {
    toggleSettings("enablePlanefinder");
  };
  document.getElementById("mptenableSeatguru").onclick = function() {
    toggleSettings("enableSeatguru");
  };
  document.getElementById("mptenableWheretocredit").onclick = function() {
    toggleSettings("enableWheretocredit");
  };
  document.getElementById("mptenableAffiliates").onclick = function() {
    toggleSettings("enableAffiliates");
  };
  document.getElementById("mptCabintoggler").onclick = function() {
    toggleSettings("cabin");
  };
  document.getElementById("configcloser").onclick = function() {
    Object(utils["k" /* toggleVis */])(document.getElementById("mptSettings"));
  };
  document.getElementById("mptStartparse").onclick = function() {
    setTimeout(function() {
      render();
    }, 50);
  };

  Object.keys(userSettings["d" /* registeredSettings */]).forEach(setting => {
    document.getElementById("mpt" + setting).onclick = function() {
      toggleSettings(setting);
    };
  });

  // Build passengers
  target = document.getElementById("mptPassengers");
  str = '<div style="float:left;width:25%">';
  str +=
    '<div style="margin:2px 0"><label style="width:100px;display:inline-block">Adults: </label> <select name="numAdults" id="numAdults" style="width:50px">';
  for (var i = 1; i <= 9; i++) {
    str += "<option>" + i + "</option>";
  }
  str += "</select></div>";
  str +=
    '<div style="margin:2px 0"><label style="width:100px;display:inline-block">Infants (Lap): </label> <select name="numInfantsLap" id="numInfantsLap" style="width:50px">';
  for (var i = 0; i <= 9; i++) {
    str += "<option>" + i + "</option>";
  }
  str += "</select></div>";
  str +=
    '<div style="margin:2px 0"><label style="width:100px;display:inline-block">Infants (Seat): </label> <select name="numInfantsSeat" id="numInfantsSeat" style="width:50px">';
  for (var i = 0; i <= 9; i++) {
    str += "<option>" + i + "</option>";
  }
  str += "</select></div>";
  str += '</div><div style="float:left;width:25%">';
  for (var k = 1; k <= 3; k++) {
    str +=
      '<div style="margin:2px 0"><label style="width:100px;display:inline-block">Child ' +
      k +
      ' - Age: </label> <select name="child' +
      k +
      'age" id="child' +
      k +
      'age" style="width:50px">';
    str += '<option value="-1">-</option>';
    for (var i = 2; i <= 17; i++) {
      str += '<option value="' + i + '">' + i + "</option>";
    }
    str += "</select></div>";
  }
  str += '</div><div style="float:left;width:25%">';
  for (var k = 4; k <= 6; k++) {
    str +=
      '<div style="margin:2px 0"><label style="width:100px;display:inline-block">Child ' +
      k +
      ' - Age: </label> <select name="child' +
      k +
      'age" id="child' +
      k +
      'age" style="width:50px">';
    str += '<option value="-1">-</option>';
    for (var i = 2; i <= 17; i++) {
      str += '<option value="' + i + '">' + i + "</option>";
    }
    str += "</select></div>";
  }
  str += '</div><div style="float:left;width:25%">';
  for (var k = 7; k <= 8; k++) {
    str +=
      '<div style="margin:2px 0"><label style="width:100px;display:inline-block">Child ' +
      k +
      ' - Age: </label> <select name="child' +
      k +
      'age" id="child' +
      k +
      'age" style="width:50px">';
    str += '<option value="-1">-</option>';
    for (var i = 2; i <= 17; i++) {
      str += '<option value="' + i + '">' + i + "</option>";
    }
    str += "</select></div>";
  }
  str +=
    '<div style="width:150px;margin:2px 0"><div id="mtpConfirmPax" style="float:left;width:50%;text-align:center;cursor:pointer;font-weight:bold">Confirm</div><div id="mtpCancelPax" style="float:left;width:50%;text-align:center;cursor:pointer;font-weight:bold">Cancel</div></div>';
  str += '</div><div style="clear:both;"></div>';
  target.innerHTML = str;
  document.getElementById("mtpCancelPax").onclick = function() {
    Object(utils["k" /* toggleVis */])(document.getElementById("mptPassengers"));
  };
  document.getElementById("mtpConfirmPax").onclick = function() {
    processPassengers();
  };
}

function restoreDefaultSettings() {
  // this function will remove any saved settings and restore default values
  if (
    window.confirm(
      "Are you sure you want to reset any saved settings to the default values? The page will automatically reload to complete the reset."
    )
  ) {
    (async () => {
      if (typeof GM === "undefined" || typeof GM.info != "undefined") {
        await Object(userSettings["e" /* saveUserSettings */])(null);
      }
      // Reload the current page:
      window.location.reload();
    })(); // end async for GM4
  }
}

function toggleSettings(target) {
  console.log("toggleSettings called. target=" + target);

  if (userSettings["d" /* registeredSettings */][target] && userSettings["d" /* registeredSettings */][target].values) {
    const pos = findPositionForValue(
      userSettings["a" /* default */][target],
      userSettings["d" /* registeredSettings */][target].values
    );
    if (pos >= userSettings["d" /* registeredSettings */][target].values.length - 1 || pos === -1) {
      userSettings["a" /* default */][target] = userSettings["d" /* registeredSettings */][target].values[0].value;
    } else {
      userSettings["a" /* default */][target] =
        userSettings["d" /* registeredSettings */][target].values[pos + 1].value;
    }
  } else {
    switch (target) {
      case "timeformat":
        if (userSettings["a" /* default */].timeformat == "12h") {
          userSettings["a" /* default */].timeformat = "24h";
        } else {
          userSettings["a" /* default */].timeformat = "12h";
        }
        break;
      case "language":
        if (userSettings["a" /* default */].language == "de") {
          userSettings["a" /* default */].language = "en";
        } else {
          userSettings["a" /* default */].language = "de";
        }
        break;
      case "linkFontsize":
        if (
          userSettings["a" /* default */].linkFontsize <= 190 &&
          userSettings["a" /* default */].linkFontsize >= 50
        ) {
          userSettings["a" /* default */].linkFontsize += 10;
        } else {
          userSettings["a" /* default */].linkFontsize = 50;
        }
        break;
      case "cabin":
        if (appSettings["a" /* default */].cabin === "Auto") {
          appSettings["a" /* default */].cabin = "Y";
        } else if (appSettings["a" /* default */].cabin === "Y") {
          appSettings["a" /* default */].cabin = "Y+";
        } else if (appSettings["a" /* default */].cabin === "Y+") {
          appSettings["a" /* default */].cabin = "C";
        } else if (appSettings["a" /* default */].cabin === "C") {
          appSettings["a" /* default */].cabin = "F";
        } else if (appSettings["a" /* default */].cabin === "F") {
          appSettings["a" /* default */].cabin = "Auto";
        }
        document.getElementById("mptCabinMode").innerHTML = appSettings["a" /* default */].cabin;

        // refresh links
        Object(links["a" /* printLinksContainer */])();
        break;
      default:
        if (userSettings["a" /* default */][target] == 1) {
          userSettings["a" /* default */][target] = 0;
        } else {
          userSettings["a" /* default */][target] = 1;
        }
    }
  }
  document.getElementById(
    "mpt" + target
  ).firstElementChild.innerHTML = printSettingsvalue(target);
  Object(userSettings["e" /* saveUserSettings */])();
}

function processPassengers() {
  var paxText = "";
  var e = document.getElementById("numAdults");
  paxSettings["a" /* default */].adults = Number(e.options[e.selectedIndex].value);
  e = document.getElementById("numInfantsLap");
  paxSettings["a" /* default */].infantsLap = Number(e.options[e.selectedIndex].value);
  e = document.getElementById("numInfantsSeat");
  paxSettings["a" /* default */].infantsSeat = Number(e.options[e.selectedIndex].value);
  paxSettings["a" /* default */].cAges = new Array();
  for (var i = 1; i <= 8; i++) {
    processChild("child" + i + "age");
  }
  paxText =
    paxSettings["a" /* default */].adults +
    "a" +
    (paxSettings["a" /* default */].cAges.length > 0
      ? " " + paxSettings["a" /* default */].cAges.length + "c"
      : "") +
    (paxSettings["a" /* default */].infantsLap + paxSettings["a" /* default */].infantsSeat > 0
      ? " " +
        (paxSettings["a" /* default */].infantsLap + paxSettings["a" /* default */].infantsSeat) +
        "i"
      : "");
  document.getElementById("mtpPaxCount").innerHTML = paxText;
  Object(utils["k" /* toggleVis */])(document.getElementById("mptPassengers"));
  // reload links
  Object(links["a" /* printLinksContainer */])();
}

function processChild(target) {
  var e = document.getElementById(target);
  var tmp = 0;
  tmp = Number(e.options[e.selectedIndex].value);
  if (tmp >= 2) {
    paxSettings["a" /* default */].cAges.push(tmp);
  }
}

function printSettingsvalue(target) {
  if (userSettings["d" /* registeredSettings */][target]) {
    return findNameForValue(
      userSettings["a" /* default */][target],
      userSettings["d" /* registeredSettings */][target].values
    );
  }

  switch (target) {
    case "timeformat":
      return userSettings["a" /* default */].timeformat;
    case "language":
      return userSettings["a" /* default */].language;
    case "linkFontsize":
      return userSettings["a" /* default */].linkFontsize.toString();
    default:
      return boolToEnabled(userSettings["a" /* default */][target]);
  }
}

function findNameForValue(needle, haystack) {
  var ret = "Unknown";
  for (var i in haystack) {
    if (haystack[i].value == needle) {
      return haystack[i].name;
    }
  }
  return ret;
}

function findPositionForValue(needle, haystack) {
  return haystack.findIndex(o => o.value == needle);
}

function boolToEnabled(value) {
  if (value == 1) {
    return "enabled";
  } else {
    return "disabled";
  }
}

// CONCATENATED MODULE: ./src/print/darkmode.js


const tokens = {
  "#1e1e1e": "#e1e1e1", // dark gray text
  "#e2f2f9": "rgba(227,241,249,0.1)", // light blue box background
  "#155fa9": "#85daff", // blue
  "#145EA9": "#85daff", // blue (tab text)
  "#0062AB": "#8ec6ec", // blue (visited link)
  "#4e8bc1": "#9ecbe6", // blue (box border)
  "#185ea8": "#f8b85b", // blue (calendar) -> orange
  "#fff8bd": "rgb(0,0,0)", // light yellow
  "#f0f0dc": "rgb(0,0,0)", // light yellow
  "#ba0000": "#f39691", // red
  white: "rgb(0,0,0)", // white
  "#ffffff": "rgb(0,0,0)", // white
  "#fff": "rgb(0,0,0)", // white
  "rgb\\(0,0,0\\)-": "white-", // fix for "white-space", etc
  black: "#E1E1E1", // black
  "#000000": "#E1E1E1", // black
  "#000": "#E1E1E1", // black
  "#f7f7f7": "#232323", // light gray
  "#f0f0f0": "#232323", // light gray
  "rgba\\(255,255,255,0.6\\)": "#232323", // light gray
  "#c2e0ff": "rgba(194,224,255,.1)" // light blue
};

let headObserver;

function bindDarkmode() {
  if (userSettings["a" /* default */].enableDarkmode) {
    document.body.classList.add("dark-mode");
    if (!headObserver) {
      headObserver = new window.MutationObserver((mutations, observer) => {
        mutations.forEach(m => {
          m.addedNodes.forEach(node => {
            if (
              node.nodeName.toUpperCase() === "STYLE" &&
              node.textContent.indexOf("dark-mode") === -1
            ) {
              const old = node.textContent;
              node.textContent = Object.keys(tokens).reduce(
                (css, token) =>
                  css.replace(new RegExp(token, "gi"), tokens[token]),
                node.textContent
              );
              if (old == node.textContent) alert("no changes");
            }
          });
        });
      });
      headObserver.observe(document.head, { childList: true });
    }
  }
}

function transformItaCss() {}

// CONCATENATED MODULE: ./src/index.js











/**************************************** Start Script *****************************************/

// *** DO NOT CHANGE BELOW THIS LINE***/
(async () => {
  await Object(userSettings["b" /* loadUserSettings */])();
  createUsersettings();
  injectCss();
  bindDarkmode();

  if (window.top === window.self) {
    if (appSettings["a" /* default */].scriptEngine === 0) {
      startScript();
    } else {
      // execute language detection and afterwards functions for current page
      if (typeof window.addEventListener !== "undefined") {
        window.addEventListener("load", () => startScript(), false);
      } else {
        window.onload = () => startScript();
      }
    }
  }
})(); // end async for GM4

function startScript() {
  if (window.location.href !== appSettings["a" /* default */].laststatus) {
    setTimeout(function() {
      transformItaCss();
      Object(appSettings["d" /* reset */])();
      cleanUp();
      getPageLang();
    }, 0);
    appSettings["a" /* default */].laststatus = window.location.href;
  }
  if (appSettings["a" /* default */].scriptrunning === 1) {
    setTimeout(function() {
      startScript();
    }, 500);
  }
}

/**************************************** Get Language *****************************************/
function getPageLang() {
  if (window.location.href.indexOf("view-details") != -1) {
    setTimeout(function() {
      fePS();
    }, 200);
  } else if (
    window.location.href.indexOf("#search:") != -1 ||
    window.location.href == "https://matrix.itasoftware.com/" ||
    window.location.href == "https://matrix.itasoftware.com/"
  ) {
    setTimeout(function() {
      startPage();
    }, 200);
  }
}
/********************************************* Start page *********************************************/
function startPage() {
  // try to get content
  if (!Object(itaSettings["b" /* findTargetSetVersion */])(settings => settings.startpage.maindiv, 1)) {
    Object(utils["g" /* printNotification */])("Error: Unable to find content on start page.");
    return false;
  } else {
    // apply style-fix
    const target = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].startpage.maindiv, 1);
    target.children[0].children[0].children[0].children[0].setAttribute(
      "valign",
      "top"
    );
  }
}
/********************************************* Result page *********************************************/

//Primary function for extracting flight data from ITA/Matrix
function fePS() {
  // try to get content
  const itin = Object(itaSettings["b" /* findTargetSetVersion */])(settings => settings.resultpage.itin, 1);
  if (!itin) {
    Object(utils["g" /* printNotification */])("Error: Unable to find Content on result page.");
    return false;
  }
  // retry if itin not loaded
  if (itin.parentElement.previousElementSibling.style.display != "none") {
    appSettings["a" /* default */].retrycount++;
    if (appSettings["a" /* default */].retrycount > 50) {
      Object(utils["g" /* printNotification */])(
        "Error: Timeout on result page. Content not found after 10s."
      );
      return false;
    }
    setTimeout(function() {
      fePS();
    }, 200);
    return false;
  }
  // do some self-testing to prevent crashing on class-changes
  for (let i in itaSettings["a" /* default */].resultpage) {
    if (Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage[i], 1) === undefined) {
      Object(utils["g" /* printNotification */])(
        "Error: Unable to find class " +
          itaSettings["a" /* default */].resultpage[i] +
          " for " +
          i +
          "."
      );
      return false;
    }
  }

  Object(parse_itin["c" /* readItinerary */])();
  render();
}

function injectCss() {
  let css = "",
    head = document.head || document.getElementsByTagName("head")[0],
    style = document.createElement("style");
  style.type = "text/css";

  css += `body.dark-mode, body.dark-mode input[type='text'], body.dark-mode input[type='radio'], body.dark-mode textarea, body.dark-mode select, body.dark-mode button, body.dark-mode .powertoolsimage, body.dark-mode .pt-hover-menu, body.dark-mode .${itaSettings["a" /* default */].resultpage.mcDiv}.powertoolslinkinlinecontainer { background-color: black; color: #E1E1E1; }`;
  css +=
    "body.dark-mode img.logo, body.dark-mode img[src^='data'] { filter: hue-rotate(180deg) invert(1); }";
  css +=
    "body.dark-mode a, body.dark-mode a:link, body.dark-mode a:hover, body.dark-mode a:active, body.dark-mode .linked { color: #85daff; }";
  css += "body.dark-mode a:visited { color: #8ec6ec; }";
  css +=
    "body.dark-mode .pt-textlink a { text-decoration: none; color: #E1E1E1; }";
  css +=
    ".pt-hover-menu { position:absolute; padding: 8px; background-color: #FFF; border: 1px solid #808080; display:none; }";
  css += ".pt-hover-container:hover .pt-hover-menu { display:inline; }";
  css += ".pt-textlink a { text-decoration: none; color: black; }";
  css += `.${itaSettings["a" /* default */].resultpage.mcDiv}.powertoolslinkinlinecontainer { background-color: #f2f2f2; }`;
  css +=
    ".powertoolsimage { width: 184px; height: 100px; background-color: white; border: 1px solid #808080; cursor: pointer; text-align: center; margin-top: 10px; padding-top: 84px; }";

  style.appendChild(document.createTextNode(css));

  head.appendChild(style);
}


/***/ })
/******/ ]);