Changeset - b56ca32259c8
pinaxcon/settings.py
Show inline comments
...
 
@@ -453,6 +453,8 @@ GAPC_STORAGE = {
 
SETTINGS_EXPORT = [
 
    'DEBUG',
 
    'ANALYTICS_KEY',
 
    'TIME_ZONE',
 
    'LCA_START',
 
]
 

	
 
if DEV_MODE and DEV_MODE == "LAPTOP":
...
 
@@ -514,11 +516,11 @@ class PenguinDinnerCat(Category):
 
        return t
 

	
 

	
 
_TZINFO = pytz.timezone(TIME_ZONE)
 
LCA_START = datetime(2021, 1, 23, tzinfo=_TZINFO)
 
LCA_END = datetime(2021, 1, 25, tzinfo=_TZINFO)
 
LCA_MINICONF_END = datetime(2021, 1, 23, 23, 59, tzinfo=_TZINFO)
 
EARLY_BIRD_DEADLINE = datetime(2020, 12, 1, tzinfo=_TZINFO)
 
LCA_TZINFO = pytz.timezone(TIME_ZONE)
 
LCA_START = LCA_TZINFO.localize(datetime(2021, 1, 23))
 
LCA_END = LCA_TZINFO.localize(datetime(2021, 1, 25))
 
LCA_MINICONF_END = LCA_TZINFO.localize(datetime(2021, 1, 23, 23, 59))
 
EARLY_BIRD_DEADLINE = LCA_TZINFO.localize(datetime(2020, 12, 1))
 
PENGUIN_DINNER_TICKET_DATE = date(2021, 1, 23)
 
SPEAKER_DINNER_TICKET_DATE = date(2021, 1, 25)
 
PDNS_TICKET_DATE = date(2021, 1, 24)
pinaxcon/templates/site_base.html
Show inline comments
...
 
@@ -40,6 +40,10 @@
 
  {% block extra_head_base %}
 
  {% block extra_head %}{% endblock %}
 
  {% endblock %}
 

	
 
  <script type="text/javascript">
 
    var CONF_TZ = "{{ settings.TIME_ZONE }}";
 
  </script>
 
</head>
 
<body class="{% block body_class %}{% endblock %}">
 
  {% block template_overrides %}{% endblock %}
...
 
@@ -85,7 +89,7 @@
 
    {% endblock %}
 

	
 
    {% block scripts %}
 
    <script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
 
    <script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
 
    <script src="{% static 'js/app.js' %}" type="text/javascript"></script>
 
    <script src="{% static 'js/jquery.formset.js' %}"></script>
 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
pinaxcon/templates/symposion/schedule/_grid.html
Show inline comments
 
{% load lca2018_tags %}
 
{% load waffle_tags %}
 

	
 
<table class="calendar table table-bordered">
 
<table class="calendar table table-bordered" data-date="{{ timetable.day.date|date:'c' }}">
 
  <thead>
 
    <tr>
 
      <th scope="row" class="time"><em>Room</em></th>
...
 
@@ -26,9 +26,9 @@
 
  <tbody>
 
    {% for row in timetable %}
 
    <tr class="calendar-row">
 
      <th scope="row" class="time"><p>{{ row.time|date:"h:iA" }}</p></th>
 
      <th scope="row" class="time" data-time="{{ timetable.day.date|date:'c' }}T{{ row.time|date:'c' }}"><p>{{ row.time|date:"h:iA" }}</p></th>
 
      {% for slot in row.slots %}
 
      <td class="slot slot-{{ slot.kind.label }}" colspan="{{ slot.colspan }}" rowspan="{{ slot.rowspan }}">
 
      <td class="slot slot-{{ slot.kind.label }}" colspan="{{ slot.colspan }}" rowspan="{{ slot.rowspan }}" data-startdatetime="{{ slot.start_datetime }}" data-enddatetime="{{ slot.end_datetime }}">
 
        {% with slot.kind.label.lower as label %}
 
        {% if label == "talk" or label == "tutorial" %}
 
          {% if slot.content.unpublish and not request.user.is_staff %}
pinaxcon/templates/symposion/schedule/_schedule_nav_link.html
Show inline comments
 
<a
 
  class="nav-link {% if active %}active{% endif %}"
 
  class="nav-link {% if active %}active{% endif %} schedule-day"
 
  id="schedule_day_{{ label|lower }}-tab"
 
  href="#{{ label|lower }}"
 
  data-toggle="pill"
 
  role="tab"
 
  aria-controls="schedule_day_{{ label|lower }}"
 
  aria-selected="{% if active %}true{% else %}false{% endif %}">
 
  aria-selected="{% if active %}true{% else %}false{% endif %}"
 
  data-date="{{ date }}">
 
  {{ label }}
 
</a>
pinaxcon/templates/symposion/schedule/base.html
Show inline comments
 
new file 100644
 
{% extends "site_base.html" %}
 

	
 
{% load static %}
 

	
 
{% block extra_script %}
 
<script src="{% static 'js/luxon.min.js' %}"></script>
 
<script src="{% static 'js/schedule.js' %}" type="text/javascript"></script>
 
{% endblock %}
pinaxcon/templates/symposion/schedule/presentation_detail.html
Show inline comments
 
{% extends "site_base.html" %}
 
{% extends "symposion/schedule/base.html" %}
 

	
 
{% load lca2018_tags %}
 
{% load lca2019_tags %}
...
 
@@ -10,7 +10,7 @@
 
{% block page_title %}{{ presentation.title }}{% endblock %}
 
{% block page_lead %}
 
{% if presentation.slot %}
 
{{ presentation.slot.rooms.0 }} | {{ presentation.slot.day.date|date:"D d M" }} | {{ presentation.slot.start }}&ndash;{{ presentation.slot.end }}
 
{{ presentation.slot.rooms.0 }} | <span class="presentation-time" data-starttime="{{ presentation.slot.day.date|date:'c' }}T{{ presentation.slot.start|date:'c' }}" data-endtime="{{ presentation.slot.day.date|date:'c' }}T{{ presentation.slot.end|date:'c' }}">{{ presentation.slot.day.date|date:"D d M" }} {{ presentation.slot.start }}&ndash;{{ presentation.slot.end }}</span>
 
{% else %}
 
<em>Not currently scheduled.</em>
 
{% endif %}
pinaxcon/templates/symposion/schedule/schedule_conference.html
Show inline comments
 
{% extends "site_base.html" %}
 
{% extends "symposion/schedule/base.html" %}
 

	
 
{% load i18n %}
 
{% load cache %}
...
 
@@ -27,7 +27,7 @@
 
        {% for section in sections %}
 
        {% for timetable in section.days %}
 
          <li class="nav-item flex-md-fill text-md-center">
 
            {% include "symposion/schedule/_schedule_nav_link.html" with active=forloop.first label=timetable.day.date|date:"l" %}
 
            {% include "symposion/schedule/_schedule_nav_link.html" with active=forloop.first label=timetable.day.date|date:"l" date=timetable.day.date|date:"Y-m-d" %}
 
          </li>
 
        {% endfor %}
 
      {% endfor %}
...
 
@@ -46,6 +46,7 @@
 
            <span class="clearfix d-sm-block d-md-none"></span>
 
            <small class="text-muted">{{ timetable.day.date|date:"l" }}, {{ timetable.day.date }}</small>
 
          </h2>
 
          <p class="timezone-info small">Conference times are in {{ settings.LCA_START|date:'T' }} (UTC{{ settings.LCA_START|date:'O' }}).</p>
 
          <div class="table-responsive d-none d-md-block">
 
            {% include "symposion/schedule/_grid.html" %}
 
          </div>
...
 
@@ -62,34 +63,6 @@
 

	
 
{% block scripts_extra %}
 
  <script type="text/javascript">
 

	
 
    var fragment = window.location.hash.toLowerCase().substring(1);
 

	
 
    if (fragment) {
 
      var fragmentid = "#schedule_day_" + fragment + "-tab";
 
      $(fragmentid).tab('show');
 
    } else {
 
      var OFFSET = -10 * (60 * 60 * 1000); // Gold Coast is 10 hours ahead of UTC in Jan.
 
      var JAN = 0; // because January is 0, not 1
 

	
 
      var fragments = [
 
        {"day": "saturday", "time": Date.UTC(2021, JAN, 23)},
 
        {"day": "sunday", "time": Date.UTC(2021, JAN, 24)},
 
        {"day": "monday", "time": Date.UTC(2021, JAN, 25)},
 
        {"day": "tuesday", "time": Date.UTC(2021, JAN, 26)},
 
      ];
 

	
 
      var now = new Date().getTime();
 

	
 
      for (var i = 0; i < 5; i++) {
 
        var f = fragments[i];
 
        var g = fragments[i+1];
 
        if ((f.time + OFFSET) <= now && now < (g.time + OFFSET)) {
 
          fragment = f.day;
 
        }
 
      }
 
    }
 

	
 
    window.addEventListener("hashchange", function(event) {
 
      var fragment = window.location.hash.toLowerCase().substring(1);
 

	
pinaxcon/templates/symposion/schedule/schedule_detail.html
Show inline comments
 
{% extends "site_base.html" %}
 
{% extends "symposion/schedule/base.html" %}
 

	
 
{% load i18n %}
 
{% load cache %}
...
 
@@ -16,6 +16,7 @@
 
        <h2 class="my-4">
 
          {{ timetable.day.date|date:"l" }}, {{ timetable.day.date }}
 
        </h2>
 
        <p class="timezone-info small">Conference times are in {{ settings.LCA_START|date:'T' }} (UTC{{ settings.LCA_START|date:'O' }}).</p>
 
        <div class="table-responsive d-none d-md-block">
 
          {% include "symposion/schedule/_grid.html" %}
 
        </div>
pinaxcon/templates/symposion/schedule/schedule_edit.html
Show inline comments
 
{% extends "site_base.html" %}
 
{% extends "symposion/schedule/base.html" %}
 

	
 
{% load i18n %}
 

	
...
 
@@ -24,6 +24,7 @@
 
      <h2 class="my-4">
 
        {{ timetable.day.date|date:"l" }}, {{ timetable.day.date }}
 
      </h2>
 
      <p class="timezone-info small">Conference times are in {{ settings.LCA_START|date:'T' }} (UTC{{ settings.LCA_START|date:'O' }}).</p>
 
      <div class="table-responsive d-none d-md-block">
 
        {% include "symposion/schedule/_grid.html" with edit_schedule=True %}
 
      </div>
...
 
@@ -37,28 +38,3 @@
 
  <div class="modal fade" id="slotEditModal"></div>
 
{% endblock %}
 

	
 
{% block extra_script %}
 
    <script type="text/javascript">
 
        $(function() {
 
            $("a.edit-slot").click(function(e) {
 
                $("#slotEditModal").load($(this).data("action"), function() {
 
                    $("#slotEditModal").modal("show");
 
                });
 
                e.preventDefault();
 
            });
 
        });
 
        $(function() {
 
           //submit event handler
 
            $("form#schedule-builder :submit").click(function(e) {
 
                var name = this.name;
 
                if(name == 'delete') {
 
                    if (!confirm("Are you sure you want to delete the schedule?"))
 
                        {
 
                            e.preventDefault();
 
                            return;
 
                        }
 
                }
 
            });
 
        });
 
    </script>
 
{% endblock %}
pinaxcon/templates/symposion/schedule/schedule_list.html
Show inline comments
 
{% extends "site_base.html" %}
 
{% extends "symposion/schedule/base.html" %}
 

	
 
{% load i18n %}
 
{% load cache %}
pinaxcon/templates/symposion/schedule/session_detail.html
Show inline comments
 
{% extends "site_base.html" %}
 
{% extends "symposion/schedule/base.html" %}
 

	
 
{% load lca2018_tags %}
 
{% load sitetree %}
pinaxcon/templates/symposion/schedule/session_list.html
Show inline comments
 
{% extends "site_base.html" %}
 
{% extends "symposion/schedule/base.html" %}
 

	
 
{% load lca2018_tags %}
 
{% load sitetree %}
static/src/js/luxon.min.js
Show inline comments
 
new file 100644
 
var luxon=function(e){"use strict";function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}function a(e,t){e.prototype=Object.create(t.prototype),(e.prototype.constructor=e).__proto__=t}function o(e){return(o=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function u(e,t){return(u=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function s(e,t,n){return(s=function(){if("undefined"!=typeof Reflect&&Reflect.construct&&!Reflect.construct.sham){if("function"==typeof Proxy)return 1;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),1}catch(e){return}}}()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&u(i,n.prototype),i}).apply(null,arguments)}function t(e){var r="function"==typeof Map?new Map:void 0;return(t=function(e){if(null===e||(t=e,-1===Function.toString.call(t).indexOf("[native code]")))return e;var t;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==r){if(r.has(e))return r.get(e);r.set(e,n)}function n(){return s(e,arguments,o(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),u(n,e)})(e)}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function V(e){var t=0;if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator])return(t=e[Symbol.iterator]()).next.bind(t);if(Array.isArray(e)||(e=function(e,t){if(e){if("string"==typeof e)return c(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(n):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(e,t):void 0}}(e)))return function(){return t>=e.length?{done:!0}:{done:!1,value:e[t++]}};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var n=function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(t(Error)),l=function(t){function e(e){return t.call(this,"Invalid DateTime: "+e.toMessage())||this}return a(e,t),e}(n),d=function(t){function e(e){return t.call(this,"Invalid Interval: "+e.toMessage())||this}return a(e,t),e}(n),f=function(t){function e(e){return t.call(this,"Invalid Duration: "+e.toMessage())||this}return a(e,t),e}(n),L=function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(n),h=function(t){function e(e){return t.call(this,"Invalid unit "+e)||this}return a(e,t),e}(n),m=function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(n),y=function(e){function t(){return e.call(this,"Zone is an abstract class")||this}return a(t,e),t}(n),v="numeric",g="short",p="long",w={year:v,month:v,day:v},k={year:v,month:g,day:v},b={year:v,month:g,day:v,weekday:g},O={year:v,month:p,day:v},S={year:v,month:p,day:v,weekday:p},T={hour:v,minute:v},M={hour:v,minute:v,second:v},N={hour:v,minute:v,second:v,timeZoneName:g},D={hour:v,minute:v,second:v,timeZoneName:p},E={hour:v,minute:v,hour12:!1},x={hour:v,minute:v,second:v,hour12:!1},C={hour:v,minute:v,second:v,hour12:!1,timeZoneName:g},F={hour:v,minute:v,second:v,hour12:!1,timeZoneName:p},Z={year:v,month:v,day:v,hour:v,minute:v},j={year:v,month:v,day:v,hour:v,minute:v,second:v},A={year:v,month:g,day:v,hour:v,minute:v},z={year:v,month:g,day:v,hour:v,minute:v,second:v},_={year:v,month:g,day:v,weekday:g,hour:v,minute:v},q={year:v,month:p,day:v,hour:v,minute:v,timeZoneName:g},H={year:v,month:p,day:v,hour:v,minute:v,second:v,timeZoneName:g},U={year:v,month:p,day:v,weekday:p,hour:v,minute:v,timeZoneName:p},R={year:v,month:p,day:v,weekday:p,hour:v,minute:v,second:v,timeZoneName:p};function W(e){return void 0===e}function P(e){return"number"==typeof e}function J(e){return"number"==typeof e&&e%1==0}function I(){try{return"undefined"!=typeof Intl&&Intl.DateTimeFormat}catch(e){return!1}}function Y(){return!W(Intl.DateTimeFormat.prototype.formatToParts)}function G(){try{return"undefined"!=typeof Intl&&!!Intl.RelativeTimeFormat}catch(e){return!1}}function $(e,r,i){if(0!==e.length)return e.reduce(function(e,t){var n=[r(t),t];return e&&i(e[0],n[0])===e[0]?e:n},null)[1]}function B(n,e){return e.reduce(function(e,t){return e[t]=n[t],e},{})}function Q(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function K(e,t,n){return J(e)&&t<=e&&e<=n}function X(e,t){return void 0===t&&(t=2),e.toString().length<t?("0".repeat(t)+e).slice(-t):e.toString()}function ee(e){return W(e)||null===e||""===e?void 0:parseInt(e,10)}function te(e){if(!W(e)&&null!==e&&""!==e){var t=1e3*parseFloat("0."+e);return Math.floor(t)}}function ne(e,t,n){void 0===n&&(n=!1);var r=Math.pow(10,t);return(n?Math.trunc:Math.round)(e*r)/r}function re(e){return e%4==0&&(e%100!=0||e%400==0)}function ie(e){return re(e)?366:365}function ae(e,t){var n,r,i=(n=t-1)-(r=12)*Math.floor(n/r)+1;return 2==i?re(e+(t-i)/12)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][i-1]}function oe(e){var t=Date.UTC(e.year,e.month-1,e.day,e.hour,e.minute,e.second,e.millisecond);return e.year<100&&0<=e.year&&(t=new Date(t)).setUTCFullYear(t.getUTCFullYear()-1900),+t}function ue(e){var t=(e+Math.floor(e/4)-Math.floor(e/100)+Math.floor(e/400))%7,n=e-1,r=(n+Math.floor(n/4)-Math.floor(n/100)+Math.floor(n/400))%7;return 4==t||3==r?53:52}function se(e){return 99<e?e:60<e?1900+e:2e3+e}function ce(e,t,n,r){void 0===r&&(r=null);var i=new Date(e),a={hour12:!1,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};r&&(a.timeZone=r);var o=Object.assign({timeZoneName:t},a),u=I();if(u&&Y()){var s=new Intl.DateTimeFormat(n,o).formatToParts(i).find(function(e){return"timezonename"===e.type.toLowerCase()});return s?s.value:null}if(u){var c=new Intl.DateTimeFormat(n,a).format(i);return new Intl.DateTimeFormat(n,o).format(i).substring(c.length).replace(/^[, \u200e]+/,"")}return null}function le(e,t){var n=parseInt(e,10);Number.isNaN(n)&&(n=0);var r=parseInt(t,10)||0;return 60*n+(n<0||Object.is(n,-0)?-r:r)}function fe(e){var t=Number(e);if("boolean"==typeof e||""===e||Number.isNaN(t))throw new m("Invalid unit value "+e);return t}function de(e,t,n){var r={};for(var i in e)if(Q(e,i)){if(0<=n.indexOf(i))continue;var a=e[i];if(null==a)continue;r[t(i)]=fe(a)}return r}function he(e,t){var n=Math.trunc(Math.abs(e/60)),r=Math.trunc(Math.abs(e%60)),i=0<=e?"+":"-";switch(t){case"short":return i+X(n,2)+":"+X(r,2);case"narrow":return i+n+(0<r?":"+r:"");case"techie":return i+X(n,2)+X(r,2);default:throw new RangeError("Value format "+t+" is out of range for property format")}}function me(e){return B(e,["hour","minute","second","millisecond"])}var ye=/[A-Za-z_+-]{1,256}(:?\/[A-Za-z_+-]{1,256}(\/[A-Za-z_+-]{1,256})?)?/;function ve(e){return JSON.stringify(e,Object.keys(e).sort())}var ge=["January","February","March","April","May","June","July","August","September","October","November","December"],pe=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],we=["J","F","M","A","M","J","J","A","S","O","N","D"];function ke(e){switch(e){case"narrow":return we;case"short":return pe;case"long":return ge;case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}var be=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],Oe=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],Se=["M","T","W","T","F","S","S"];function Te(e){switch(e){case"narrow":return Se;case"short":return Oe;case"long":return be;case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var Me=["AM","PM"],Ne=["Before Christ","Anno Domini"],De=["BC","AD"],Ee=["B","A"];function Ie(e){switch(e){case"narrow":return Ee;case"short":return De;case"long":return Ne;default:return null}}function Ve(e,t){for(var n,r="",i=V(e);!(n=i()).done;){var a=n.value;a.literal?r+=a.val:r+=t(a.val)}return r}var Le={D:w,DD:k,DDD:O,DDDD:S,t:T,tt:M,ttt:N,tttt:D,T:E,TT:x,TTT:C,TTTT:F,f:Z,ff:A,fff:q,ffff:U,F:j,FF:z,FFF:H,FFFF:R},xe=function(){function h(e,t){this.opts=t,this.loc=e,this.systemLoc=null}h.create=function(e,t){return void 0===t&&(t={}),new h(e,t)},h.parseFormat=function(e){for(var t=null,n="",r=!1,i=[],a=0;a<e.length;a++){var o=e.charAt(a);"'"===o?(0<n.length&&i.push({literal:r,val:n}),t=null,n="",r=!r):r||o===t?n+=o:(0<n.length&&i.push({literal:!1,val:n}),t=n=o)}return 0<n.length&&i.push({literal:r,val:n}),i},h.macroTokenToFormatOpts=function(e){return Le[e]};var e=h.prototype;return e.formatWithSystemDefault=function(e,t){return null===this.systemLoc&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,Object.assign({},this.opts,t)).format()},e.formatDateTime=function(e,t){return void 0===t&&(t={}),this.loc.dtFormatter(e,Object.assign({},this.opts,t)).format()},e.formatDateTimeParts=function(e,t){return void 0===t&&(t={}),this.loc.dtFormatter(e,Object.assign({},this.opts,t)).formatToParts()},e.resolvedOptions=function(e,t){return void 0===t&&(t={}),this.loc.dtFormatter(e,Object.assign({},this.opts,t)).resolvedOptions()},e.num=function(e,t){if(void 0===t&&(t=0),this.opts.forceSimple)return X(e,t);var n=Object.assign({},this.opts);return 0<t&&(n.padTo=t),this.loc.numberFormatter(n).format(e)},e.formatDateTimeFromString=function(r,e){function i(e,t){return l.loc.extract(r,e,t)}function a(e){return r.isOffsetFixed&&0===r.offset&&e.allowZ?"Z":r.isValid?r.zone.formatOffset(r.ts,e.format):""}function o(){return f?Me[r.hour<12?0:1]:i({hour:"numeric",hour12:!0},"dayperiod")}function u(e,t){return f?(n=r,ke(e)[n.month-1]):i(t?{month:e}:{month:e,day:"numeric"},"month");var n}function s(e,t){return f?(n=r,Te(e)[n.weekday-1]):i(t?{weekday:e}:{weekday:e,month:"long",day:"numeric"},"weekday");var n}function c(e){return f?(t=r,Ie(e)[t.year<0?0:1]):i({era:e},"era");var t}var l=this,f="en"===this.loc.listingMode(),d=this.loc.outputCalendar&&"gregory"!==this.loc.outputCalendar&&Y();return Ve(h.parseFormat(e),function(e){switch(e){case"S":return l.num(r.millisecond);case"u":case"SSS":return l.num(r.millisecond,3);case"s":return l.num(r.second);case"ss":return l.num(r.second,2);case"m":return l.num(r.minute);case"mm":return l.num(r.minute,2);case"h":return l.num(r.hour%12==0?12:r.hour%12);case"hh":return l.num(r.hour%12==0?12:r.hour%12,2);case"H":return l.num(r.hour);case"HH":return l.num(r.hour,2);case"Z":return a({format:"narrow",allowZ:l.opts.allowZ});case"ZZ":return a({format:"short",allowZ:l.opts.allowZ});case"ZZZ":return a({format:"techie",allowZ:l.opts.allowZ});case"ZZZZ":return r.zone.offsetName(r.ts,{format:"short",locale:l.loc.locale});case"ZZZZZ":return r.zone.offsetName(r.ts,{format:"long",locale:l.loc.locale});case"z":return r.zoneName;case"a":return o();case"d":return d?i({day:"numeric"},"day"):l.num(r.day);case"dd":return d?i({day:"2-digit"},"day"):l.num(r.day,2);case"c":return l.num(r.weekday);case"ccc":return s("short",!0);case"cccc":return s("long",!0);case"ccccc":return s("narrow",!0);case"E":return l.num(r.weekday);case"EEE":return s("short",!1);case"EEEE":return s("long",!1);case"EEEEE":return s("narrow",!1);case"L":return d?i({month:"numeric",day:"numeric"},"month"):l.num(r.month);case"LL":return d?i({month:"2-digit",day:"numeric"},"month"):l.num(r.month,2);case"LLL":return u("short",!0);case"LLLL":return u("long",!0);case"LLLLL":return u("narrow",!0);case"M":return d?i({month:"numeric"},"month"):l.num(r.month);case"MM":return d?i({month:"2-digit"},"month"):l.num(r.month,2);case"MMM":return u("short",!1);case"MMMM":return u("long",!1);case"MMMMM":return u("narrow",!1);case"y":return d?i({year:"numeric"},"year"):l.num(r.year);case"yy":return d?i({year:"2-digit"},"year"):l.num(r.year.toString().slice(-2),2);case"yyyy":return d?i({year:"numeric"},"year"):l.num(r.year,4);case"yyyyyy":return d?i({year:"numeric"},"year"):l.num(r.year,6);case"G":return c("short");case"GG":return c("long");case"GGGGG":return c("narrow");case"kk":return l.num(r.weekYear.toString().slice(-2),2);case"kkkk":return l.num(r.weekYear,4);case"W":return l.num(r.weekNumber);case"WW":return l.num(r.weekNumber,2);case"o":return l.num(r.ordinal);case"ooo":return l.num(r.ordinal,3);case"q":return l.num(r.quarter);case"qq":return l.num(r.quarter,2);case"X":return l.num(Math.floor(r.ts/1e3));case"x":return l.num(r.ts);default:return(n=h.macroTokenToFormatOpts(t=e))?l.formatWithSystemDefault(r,n):t}var t,n})},e.formatDurationFromString=function(e,t){function n(e){switch(e[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"M":return"month";case"y":return"year";default:return null}}var r,i=this,a=h.parseFormat(t),o=a.reduce(function(e,t){var n=t.literal,r=t.val;return n?e:e.concat(r)},[]),u=e.shiftTo.apply(e,o.map(n).filter(function(e){return e}));return Ve(a,(r=u,function(e){var t=n(e);return t?i.num(r.get(t),e.length):e}))},h}(),Ce=function(){function e(e,t){this.reason=e,this.explanation=t}return e.prototype.toMessage=function(){return this.explanation?this.reason+": "+this.explanation:this.reason},e}(),Fe=function(){function e(){}var t=e.prototype;return t.offsetName=function(){throw new y},t.formatOffset=function(){throw new y},t.offset=function(){throw new y},t.equals=function(){throw new y},i(e,[{key:"type",get:function(){throw new y}},{key:"name",get:function(){throw new y}},{key:"universal",get:function(){throw new y}},{key:"isValid",get:function(){throw new y}}]),e}(),Ze=null,je=function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var n=t.prototype;return n.offsetName=function(e,t){return ce(e,t.format,t.locale)},n.formatOffset=function(e,t){return he(this.offset(e),t)},n.offset=function(e){return-new Date(e).getTimezoneOffset()},n.equals=function(e){return"local"===e.type},i(t,[{key:"type",get:function(){return"local"}},{key:"name",get:function(){return I()?(new Intl.DateTimeFormat).resolvedOptions().timeZone:"local"}},{key:"universal",get:function(){return!1}},{key:"isValid",get:function(){return!0}}],[{key:"instance",get:function(){return null===Ze&&(Ze=new t),Ze}}]),t}(Fe),Ae=RegExp("^"+ye.source+"$"),ze={};var _e={year:0,month:1,day:2,hour:3,minute:4,second:5};var qe={},He=function(n){function r(e){var t;return(t=n.call(this)||this).zoneName=e,t.valid=r.isValidZone(e),t}a(r,n),r.create=function(e){return qe[e]||(qe[e]=new r(e)),qe[e]},r.resetCache=function(){qe={},ze={}},r.isValidSpecifier=function(e){return!(!e||!e.match(Ae))},r.isValidZone=function(e){try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch(e){return!1}},r.parseGMTOffset=function(e){if(e){var t=e.match(/^Etc\/GMT([+-]\d{1,2})$/i);if(t)return-60*parseInt(t[1])}return null};var e=r.prototype;return e.offsetName=function(e,t){return ce(e,t.format,t.locale,this.name)},e.formatOffset=function(e,t){return he(this.offset(e),t)},e.offset=function(e){var t,n,r,i,a,o,u=new Date(e),s=(o=this.name,ze[o]||(ze[o]=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:o,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})),ze[o]),c=s.formatToParts?function(e,t){for(var n=e.formatToParts(t),r=[],i=0;i<n.length;i++){var a=n[i],o=a.type,u=a.value,s=_e[o];W(s)||(r[s]=parseInt(u,10))}return r}(s,u):(t=u,n=s.format(t).replace(/\u200E/g,""),r=/(\d+)\/(\d+)\/(\d+),? (\d+):(\d+):(\d+)/.exec(n),i=r[1],a=r[2],[r[3],i,a,r[4],r[5],r[6]]),l=c[0],f=c[1],d=c[2],h=c[3],m=+u,y=m%1e3;return(oe({year:l,month:f,day:d,hour:24===h?0:h,minute:c[4],second:c[5],millisecond:0})-(m-=0<=y?y:1e3+y))/6e4},e.equals=function(e){return"iana"===e.type&&e.name===this.name},i(r,[{key:"type",get:function(){return"iana"}},{key:"name",get:function(){return this.zoneName}},{key:"universal",get:function(){return!1}},{key:"isValid",get:function(){return this.valid}}]),r}(Fe),Ue=null,Re=function(n){function r(e){var t;return(t=n.call(this)||this).fixed=e,t}a(r,n),r.instance=function(e){return 0===e?r.utcInstance:new r(e)},r.parseSpecifier=function(e){if(e){var t=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(t)return new r(le(t[1],t[2]))}return null},i(r,null,[{key:"utcInstance",get:function(){return null===Ue&&(Ue=new r(0)),Ue}}]);var e=r.prototype;return e.offsetName=function(){return this.name},e.formatOffset=function(e,t){return he(this.fixed,t)},e.offset=function(){return this.fixed},e.equals=function(e){return"fixed"===e.type&&e.fixed===this.fixed},i(r,[{key:"type",get:function(){return"fixed"}},{key:"name",get:function(){return 0===this.fixed?"UTC":"UTC"+he(this.fixed,"narrow")}},{key:"universal",get:function(){return!0}},{key:"isValid",get:function(){return!0}}]),r}(Fe),We=function(n){function e(e){var t;return(t=n.call(this)||this).zoneName=e,t}a(e,n);var t=e.prototype;return t.offsetName=function(){return null},t.formatOffset=function(){return""},t.offset=function(){return NaN},t.equals=function(){return!1},i(e,[{key:"type",get:function(){return"invalid"}},{key:"name",get:function(){return this.zoneName}},{key:"universal",get:function(){return!1}},{key:"isValid",get:function(){return!1}}]),e}(Fe);function Pe(e,t){var n;if(W(e)||null===e)return t;if(e instanceof Fe)return e;if("string"!=typeof e)return P(e)?Re.instance(e):"object"==typeof e&&e.offset&&"number"==typeof e.offset?e:new We(e);var r=e.toLowerCase();return"local"===r?t:"utc"===r||"gmt"===r?Re.utcInstance:null!=(n=He.parseGMTOffset(e))?Re.instance(n):He.isValidSpecifier(r)?He.create(e):Re.parseSpecifier(r)||new We(e)}var Je=function(){return Date.now()},Ye=null,Ge=null,$e=null,Be=null,Qe=!1,Ke=function(){function e(){}return e.resetCaches=function(){ct.resetCache(),He.resetCache()},i(e,null,[{key:"now",get:function(){return Je},set:function(e){Je=e}},{key:"defaultZoneName",get:function(){return e.defaultZone.name},set:function(e){Ye=e?Pe(e):null}},{key:"defaultZone",get:function(){return Ye||je.instance}},{key:"defaultLocale",get:function(){return Ge},set:function(e){Ge=e}},{key:"defaultNumberingSystem",get:function(){return $e},set:function(e){$e=e}},{key:"defaultOutputCalendar",get:function(){return Be},set:function(e){Be=e}},{key:"throwOnInvalid",get:function(){return Qe},set:function(e){Qe=e}}]),e}(),Xe={};function et(e,t){void 0===t&&(t={});var n=JSON.stringify([e,t]),r=Xe[n];return r||(r=new Intl.DateTimeFormat(e,t),Xe[n]=r),r}var tt={};var nt={};function rt(e,t){void 0===t&&(t={});t.base;var n=function(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],0<=t.indexOf(n)||(i[n]=e[n]);return i}(t,["base"]),r=JSON.stringify([e,n]),i=nt[r];return i||(i=new Intl.RelativeTimeFormat(e,t),nt[r]=i),i}var it=null;function at(e,t,n,r,i){var a=e.listingMode(n);return"error"===a?null:("en"===a?r:i)(t)}var ot=function(){function e(e,t,n){if(this.padTo=n.padTo||0,this.floor=n.floor||!1,!t&&I()){var r={useGrouping:!1};0<n.padTo&&(r.minimumIntegerDigits=n.padTo),this.inf=function(e,t){void 0===t&&(t={});var n=JSON.stringify([e,t]),r=tt[n];return r||(r=new Intl.NumberFormat(e,t),tt[n]=r),r}(e,r)}}return e.prototype.format=function(e){if(this.inf){var t=this.floor?Math.floor(e):e;return this.inf.format(t)}return X(this.floor?Math.floor(e):ne(e,3),this.padTo)},e}(),ut=function(){function e(e,t,n){var r;if(this.opts=n,this.hasIntl=I(),e.zone.universal&&this.hasIntl?(r="UTC",n.timeZoneName?this.dt=e:this.dt=0===e.offset?e:cr.fromMillis(e.ts+60*e.offset*1e3)):"local"===e.zone.type?this.dt=e:r=(this.dt=e).zone.name,this.hasIntl){var i=Object.assign({},this.opts);r&&(i.timeZone=r),this.dtf=et(t,i)}}var t=e.prototype;return t.format=function(){if(this.hasIntl)return this.dtf.format(this.dt.toJSDate());var e=function(e){var t="EEEE, LLLL d, yyyy, h:mm a";switch(ve(B(e,["weekday","era","year","month","day","hour","minute","second","timeZoneName","hour12"]))){case ve(w):return"M/d/yyyy";case ve(k):return"LLL d, yyyy";case ve(b):return"EEE, LLL d, yyyy";case ve(O):return"LLLL d, yyyy";case ve(S):return"EEEE, LLLL d, yyyy";case ve(T):return"h:mm a";case ve(M):return"h:mm:ss a";case ve(N):case ve(D):return"h:mm a";case ve(E):return"HH:mm";case ve(x):return"HH:mm:ss";case ve(C):case ve(F):return"HH:mm";case ve(Z):return"M/d/yyyy, h:mm a";case ve(A):return"LLL d, yyyy, h:mm a";case ve(q):return"LLLL d, yyyy, h:mm a";case ve(U):return t;case ve(j):return"M/d/yyyy, h:mm:ss a";case ve(z):return"LLL d, yyyy, h:mm:ss a";case ve(_):return"EEE, d LLL yyyy, h:mm a";case ve(H):return"LLLL d, yyyy, h:mm:ss a";case ve(R):return"EEEE, LLLL d, yyyy, h:mm:ss a";default:return t}}(this.opts),t=ct.create("en-US");return xe.create(t).formatDateTimeFromString(this.dt,e)},t.formatToParts=function(){return this.hasIntl&&Y()?this.dtf.formatToParts(this.dt.toJSDate()):[]},t.resolvedOptions=function(){return this.hasIntl?this.dtf.resolvedOptions():{locale:"en-US",numberingSystem:"latn",outputCalendar:"gregory"}},e}(),st=function(){function e(e,t,n){this.opts=Object.assign({style:"long"},n),!t&&G()&&(this.rtf=rt(e,n))}var t=e.prototype;return t.format=function(e,t){return this.rtf?this.rtf.format(e,t):function(e,t,n,r){void 0===n&&(n="always"),void 0===r&&(r=!1);var i={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},a=-1===["hours","minutes","seconds"].indexOf(e);if("auto"===n&&a){var o="days"===e;switch(t){case 1:return o?"tomorrow":"next "+i[e][0];case-1:return o?"yesterday":"last "+i[e][0];case 0:return o?"today":"this "+i[e][0]}}var u=Object.is(t,-0)||t<0,s=Math.abs(t),c=1===s,l=i[e],f=r?!c&&l[2]||l[1]:c?i[e][0]:e;return u?s+" "+f+" ago":"in "+s+" "+f}(t,e,this.opts.numeric,"long"!==this.opts.style)},t.formatToParts=function(e,t){return this.rtf?this.rtf.formatToParts(e,t):[]},e}(),ct=function(){function a(e,t,n,r){var i,a,o,u=function(e){var t=e.indexOf("-u-");if(-1===t)return[e];var n,r=e.substring(0,t);try{n=et(e).resolvedOptions()}catch(e){n=et(r).resolvedOptions()}return[r,n.numberingSystem,n.calendar]}(e),s=u[0],c=u[1],l=u[2];this.locale=s,this.numberingSystem=t||c||null,this.outputCalendar=n||l||null,this.intl=(i=this.locale,a=this.numberingSystem,o=this.outputCalendar,I()?((o||a)&&(i+="-u",o&&(i+="-ca-"+o),a&&(i+="-nu-"+a)),i):[]),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=r,this.fastNumbersCached=null}a.fromOpts=function(e){return a.create(e.locale,e.numberingSystem,e.outputCalendar,e.defaultToEN)},a.create=function(e,t,n,r){void 0===r&&(r=!1);var i=e||Ke.defaultLocale;return new a(i||(r?"en-US":function(){if(it)return it;if(I()){var e=(new Intl.DateTimeFormat).resolvedOptions().locale;return it=e&&"und"!==e?e:"en-US"}return it="en-US"}()),t||Ke.defaultNumberingSystem,n||Ke.defaultOutputCalendar,i)},a.resetCache=function(){it=null,Xe={},tt={},nt={}},a.fromObject=function(e){var t=void 0===e?{}:e,n=t.locale,r=t.numberingSystem,i=t.outputCalendar;return a.create(n,r,i)};var e=a.prototype;return e.listingMode=function(e){void 0===e&&(e=!0);var t=I()&&Y(),n=this.isEnglish(),r=!(null!==this.numberingSystem&&"latn"!==this.numberingSystem||null!==this.outputCalendar&&"gregory"!==this.outputCalendar);return t||n&&r||e?!t||n&&r?"en":"intl":"error"},e.clone=function(e){return e&&0!==Object.getOwnPropertyNames(e).length?a.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,e.defaultToEN||!1):this},e.redefaultToEN=function(e){return void 0===e&&(e={}),this.clone(Object.assign({},e,{defaultToEN:!0}))},e.redefaultToSystem=function(e){return void 0===e&&(e={}),this.clone(Object.assign({},e,{defaultToEN:!1}))},e.months=function(n,r,e){var i=this;return void 0===r&&(r=!1),void 0===e&&(e=!0),at(this,n,e,ke,function(){var t=r?{month:n,day:"numeric"}:{month:n},e=r?"format":"standalone";return i.monthsCache[e][n]||(i.monthsCache[e][n]=function(e){for(var t=[],n=1;n<=12;n++){var r=cr.utc(2016,n,1);t.push(e(r))}return t}(function(e){return i.extract(e,t,"month")})),i.monthsCache[e][n]})},e.weekdays=function(n,r,e){var i=this;return void 0===r&&(r=!1),void 0===e&&(e=!0),at(this,n,e,Te,function(){var t=r?{weekday:n,year:"numeric",month:"long",day:"numeric"}:{weekday:n},e=r?"format":"standalone";return i.weekdaysCache[e][n]||(i.weekdaysCache[e][n]=function(e){for(var t=[],n=1;n<=7;n++){var r=cr.utc(2016,11,13+n);t.push(e(r))}return t}(function(e){return i.extract(e,t,"weekday")})),i.weekdaysCache[e][n]})},e.meridiems=function(e){var n=this;return void 0===e&&(e=!0),at(this,void 0,e,function(){return Me},function(){if(!n.meridiemCache){var t={hour:"numeric",hour12:!0};n.meridiemCache=[cr.utc(2016,11,13,9),cr.utc(2016,11,13,19)].map(function(e){return n.extract(e,t,"dayperiod")})}return n.meridiemCache})},e.eras=function(e,t){var n=this;return void 0===t&&(t=!0),at(this,e,t,Ie,function(){var t={era:e};return n.eraCache[e]||(n.eraCache[e]=[cr.utc(-40,1,1),cr.utc(2017,1,1)].map(function(e){return n.extract(e,t,"era")})),n.eraCache[e]})},e.extract=function(e,t,n){var r=this.dtFormatter(e,t).formatToParts().find(function(e){return e.type.toLowerCase()===n});return r?r.value:null},e.numberFormatter=function(e){return void 0===e&&(e={}),new ot(this.intl,e.forceSimple||this.fastNumbers,e)},e.dtFormatter=function(e,t){return void 0===t&&(t={}),new ut(e,this.intl,t)},e.relFormatter=function(e){return void 0===e&&(e={}),new st(this.intl,this.isEnglish(),e)},e.isEnglish=function(){return"en"===this.locale||"en-us"===this.locale.toLowerCase()||I()&&new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us")},e.equals=function(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar},i(a,[{key:"fastNumbers",get:function(){var e;return null==this.fastNumbersCached&&(this.fastNumbersCached=(!(e=this).numberingSystem||"latn"===e.numberingSystem)&&("latn"===e.numberingSystem||!e.locale||e.locale.startsWith("en")||I()&&"latn"===new Intl.DateTimeFormat(e.intl).resolvedOptions().numberingSystem)),this.fastNumbersCached}}]),a}();function lt(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=t.reduce(function(e,t){return e+t.source},"");return RegExp("^"+r+"$")}function ft(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(c){return t.reduce(function(e,t){var n=e[0],r=e[1],i=e[2],a=t(c,i),o=a[0],u=a[1],s=a[2];return[Object.assign(n,o),r||u,s]},[{},null,1]).slice(0,2)}}function dt(e){if(null==e)return[null,null];for(var t=arguments.length,n=new Array(1<t?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];for(var i=0,a=n;i<a.length;i++){var o=a[i],u=o[0],s=o[1],c=u.exec(e);if(c)return s(c)}return[null,null]}function ht(){for(var e=arguments.length,i=new Array(e),t=0;t<e;t++)i[t]=arguments[t];return function(e,t){var n,r={};for(n=0;n<i.length;n++)r[i[n]]=ee(e[t+n]);return[r,null,t+n]}}var mt=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,yt=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,vt=RegExp(""+yt.source+mt.source+"?"),gt=RegExp("(?:T"+vt.source+")?"),pt=ht("weekYear","weekNumber","weekDay"),wt=ht("year","ordinal"),kt=RegExp(yt.source+" ?(?:"+mt.source+"|("+ye.source+"))?"),bt=RegExp("(?: "+kt.source+")?");function Ot(e,t,n){var r=e[t];return W(r)?n:ee(r)}function St(e,t){return[{year:Ot(e,t),month:Ot(e,t+1,1),day:Ot(e,t+2,1)},null,t+3]}function Tt(e,t){return[{hour:Ot(e,t,0),minute:Ot(e,t+1,0),second:Ot(e,t+2,0),millisecond:te(e[t+3])},null,t+4]}function Mt(e,t){var n=!e[t]&&!e[t+1],r=le(e[t+1],e[t+2]);return[{},n?null:Re.instance(r),t+3]}function Nt(e,t){return[{},e[t]?He.create(e[t]):null,t+1]}var Dt=/^-?P(?:(?:(-?\d{1,9})Y)?(?:(-?\d{1,9})M)?(?:(-?\d{1,9})W)?(?:(-?\d{1,9})D)?(?:T(?:(-?\d{1,9})H)?(?:(-?\d{1,9})M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,9}))?S)?)?)$/;function Et(e){function t(e){return e&&f?-e:e}var n=e[0],r=e[1],i=e[2],a=e[3],o=e[4],u=e[5],s=e[6],c=e[7],l=e[8],f="-"===n[0];return[{years:t(ee(r)),months:t(ee(i)),weeks:t(ee(a)),days:t(ee(o)),hours:t(ee(u)),minutes:t(ee(s)),seconds:t(ee(c)),milliseconds:t(te(l))}]}var It={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Vt(e,t,n,r,i,a,o){var u={year:2===t.length?se(ee(t)):ee(t),month:pe.indexOf(n)+1,day:ee(r),hour:ee(i),minute:ee(a)};return o&&(u.second=ee(o)),e&&(u.weekday=3<e.length?be.indexOf(e)+1:Oe.indexOf(e)+1),u}var Lt=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function xt(e){var t,n=e[1],r=e[2],i=e[3],a=e[4],o=e[5],u=e[6],s=e[7],c=e[8],l=e[9],f=e[10],d=e[11],h=Vt(n,a,i,r,o,u,s);return t=c?It[c]:l?0:le(f,d),[h,new Re(t)]}var Ct=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,Ft=/^(Monday|Tuesday|Wedsday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,Zt=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function jt(e){var t=e[1],n=e[2],r=e[3];return[Vt(t,e[4],r,n,e[5],e[6],e[7]),Re.utcInstance]}function At(e){var t=e[1],n=e[2],r=e[3],i=e[4],a=e[5],o=e[6];return[Vt(t,e[7],n,r,i,a,o),Re.utcInstance]}var zt=lt(/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,gt),_t=lt(/(\d{4})-?W(\d\d)(?:-?(\d))?/,gt),qt=lt(/(\d{4})-?(\d{3})/,gt),Ht=lt(vt),Ut=ft(St,Tt,Mt),Rt=ft(pt,Tt,Mt),Wt=ft(wt,Tt),Pt=ft(Tt,Mt);var Jt=lt(/(\d{4})-(\d\d)-(\d\d)/,bt),Yt=lt(kt),Gt=ft(St,Tt,Mt,Nt),$t=ft(Tt,Mt,Nt);var Bt={weeks:{days:7,hours:168,minutes:10080,seconds:604800,milliseconds:6048e5},days:{hours:24,minutes:1440,seconds:86400,milliseconds:864e5},hours:{minutes:60,seconds:3600,milliseconds:36e5},minutes:{seconds:60,milliseconds:6e4},seconds:{milliseconds:1e3}},Qt=Object.assign({years:{quarters:4,months:12,weeks:52,days:365,hours:8760,minutes:525600,seconds:31536e3,milliseconds:31536e6},quarters:{months:3,weeks:13,days:91,hours:2184,minutes:131040,seconds:7862400,milliseconds:78624e5},months:{weeks:4,days:30,hours:720,minutes:43200,seconds:2592e3,milliseconds:2592e6}},Bt),Kt=365.2425,Xt=30.436875,en=Object.assign({years:{quarters:4,months:12,weeks:Kt/7,days:Kt,hours:24*Kt,minutes:525949.2,seconds:525949.2*60,milliseconds:525949.2*60*1e3},quarters:{months:3,weeks:Kt/28,days:Kt/4,hours:24*Kt/4,minutes:131487.3,seconds:525949.2*60/4,milliseconds:7889237999.999999},months:{weeks:Xt/7,days:Xt,hours:24*Xt,minutes:43829.1,seconds:2629746,milliseconds:2629746e3}},Bt),tn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],nn=tn.slice(0).reverse();function rn(e,t,n){void 0===n&&(n=!1);var r={values:n?t.values:Object.assign({},e.values,t.values||{}),loc:e.loc.clone(t.loc),conversionAccuracy:t.conversionAccuracy||e.conversionAccuracy};return new on(r)}function an(e,t,n,r,i){var a,o=e[i][n],u=t[n]/o,s=!(Math.sign(u)===Math.sign(r[i]))&&0!==r[i]&&Math.abs(u)<=1?(a=u)<0?Math.floor(a):Math.ceil(a):Math.trunc(u);r[i]+=s,t[n]-=s*o}var on=function(){function y(e){var t="longterm"===e.conversionAccuracy||!1;this.values=e.values,this.loc=e.loc||ct.create(),this.conversionAccuracy=t?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=t?en:Qt,this.isLuxonDuration=!0}y.fromMillis=function(e,t){return y.fromObject(Object.assign({milliseconds:e},t))},y.fromObject=function(e){if(null==e||"object"!=typeof e)throw new m("Duration.fromObject: argument expected to be an object, got "+(null===e?"null":typeof e));return new y({values:de(e,y.normalizeUnit,["locale","numberingSystem","conversionAccuracy","zone"]),loc:ct.fromObject(e),conversionAccuracy:e.conversionAccuracy})},y.fromISO=function(e,t){var n=dt(e,[Dt,Et])[0];if(n){var r=Object.assign(n,t);return y.fromObject(r)}return y.invalid("unparsable",'the input "'+e+"\" can't be parsed as ISO 8601")},y.invalid=function(e,t){if(void 0===t&&(t=null),!e)throw new m("need to specify a reason the Duration is invalid");var n=e instanceof Ce?e:new Ce(e,t);if(Ke.throwOnInvalid)throw new f(n);return new y({invalid:n})},y.normalizeUnit=function(e){var t={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e?e.toLowerCase():e];if(!t)throw new h(e);return t},y.isDuration=function(e){return e&&e.isLuxonDuration||!1};var e=y.prototype;return e.toFormat=function(e,t){void 0===t&&(t={});var n=Object.assign({},t,{floor:!1!==t.round&&!1!==t.floor});return this.isValid?xe.create(this.loc,n).formatDurationFromString(this,e):"Invalid Duration"},e.toObject=function(e){if(void 0===e&&(e={}),!this.isValid)return{};var t=Object.assign({},this.values);return e.includeConfig&&(t.conversionAccuracy=this.conversionAccuracy,t.numberingSystem=this.loc.numberingSystem,t.locale=this.loc.locale),t},e.toISO=function(){if(!this.isValid)return null;var e="P";return 0!==this.years&&(e+=this.years+"Y"),0===this.months&&0===this.quarters||(e+=this.months+3*this.quarters+"M"),0!==this.weeks&&(e+=this.weeks+"W"),0!==this.days&&(e+=this.days+"D"),0===this.hours&&0===this.minutes&&0===this.seconds&&0===this.milliseconds||(e+="T"),0!==this.hours&&(e+=this.hours+"H"),0!==this.minutes&&(e+=this.minutes+"M"),0===this.seconds&&0===this.milliseconds||(e+=ne(this.seconds+this.milliseconds/1e3,3)+"S"),"P"===e&&(e+="T0S"),e},e.toJSON=function(){return this.toISO()},e.toString=function(){return this.toISO()},e.valueOf=function(){return this.as("milliseconds")},e.plus=function(e){if(!this.isValid)return this;for(var t,n=un(e),r={},i=V(tn);!(t=i()).done;){var a=t.value;(Q(n.values,a)||Q(this.values,a))&&(r[a]=n.get(a)+this.get(a))}return rn(this,{values:r},!0)},e.minus=function(e){if(!this.isValid)return this;var t=un(e);return this.plus(t.negate())},e.mapUnits=function(e){if(!this.isValid)return this;for(var t={},n=0,r=Object.keys(this.values);n<r.length;n++){var i=r[n];t[i]=fe(e(this.values[i],i))}return rn(this,{values:t},!0)},e.get=function(e){return this[y.normalizeUnit(e)]},e.set=function(e){return this.isValid?rn(this,{values:Object.assign(this.values,de(e,y.normalizeUnit,[]))}):this},e.reconfigure=function(e){var t=void 0===e?{}:e,n=t.locale,r=t.numberingSystem,i=t.conversionAccuracy,a={loc:this.loc.clone({locale:n,numberingSystem:r})};return i&&(a.conversionAccuracy=i),rn(this,a)},e.as=function(e){return this.isValid?this.shiftTo(e).get(e):NaN},e.normalize=function(){if(!this.isValid)return this;var n,r,e=this.toObject();return n=this.matrix,r=e,nn.reduce(function(e,t){return W(r[t])?e:(e&&an(n,r,e,r,t),t)},null),rn(this,{values:e},!0)},e.shiftTo=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if(!this.isValid)return this;if(0===t.length)return this;t=t.map(function(e){return y.normalizeUnit(e)});for(var r,i,a={},o={},u=this.toObject(),s=V(tn);!(i=s()).done;){var c=i.value;if(0<=t.indexOf(c)){r=c;var l=0;for(var f in o)l+=this.matrix[f][c]*o[f],o[f]=0;P(u[c])&&(l+=u[c]);var d=Math.trunc(l);for(var h in a[c]=d,o[c]=l-d,u)tn.indexOf(h)>tn.indexOf(c)&&an(this.matrix,u,h,a,c)}else P(u[c])&&(o[c]=u[c])}for(var m in o)0!==o[m]&&(a[r]+=m===r?o[m]:o[m]/this.matrix[r][m]);return rn(this,{values:a},!0).normalize()},e.negate=function(){if(!this.isValid)return this;for(var e={},t=0,n=Object.keys(this.values);t<n.length;t++){var r=n[t];e[r]=-this.values[r]}return rn(this,{values:e},!0)},e.equals=function(e){if(!this.isValid||!e.isValid)return!1;if(!this.loc.equals(e.loc))return!1;for(var t,n=V(tn);!(t=n()).done;){var r=t.value;if(this.values[r]!==e.values[r])return!1}return!0},i(y,[{key:"locale",get:function(){return this.isValid?this.loc.locale:null}},{key:"numberingSystem",get:function(){return this.isValid?this.loc.numberingSystem:null}},{key:"years",get:function(){return this.isValid?this.values.years||0:NaN}},{key:"quarters",get:function(){return this.isValid?this.values.quarters||0:NaN}},{key:"months",get:function(){return this.isValid?this.values.months||0:NaN}},{key:"weeks",get:function(){return this.isValid?this.values.weeks||0:NaN}},{key:"days",get:function(){return this.isValid?this.values.days||0:NaN}},{key:"hours",get:function(){return this.isValid?this.values.hours||0:NaN}},{key:"minutes",get:function(){return this.isValid?this.values.minutes||0:NaN}},{key:"seconds",get:function(){return this.isValid?this.values.seconds||0:NaN}},{key:"milliseconds",get:function(){return this.isValid?this.values.milliseconds||0:NaN}},{key:"isValid",get:function(){return null===this.invalid}},{key:"invalidReason",get:function(){return this.invalid?this.invalid.reason:null}},{key:"invalidExplanation",get:function(){return this.invalid?this.invalid.explanation:null}}]),y}();function un(e){if(P(e))return on.fromMillis(e);if(on.isDuration(e))return e;if("object"==typeof e)return on.fromObject(e);throw new m("Unknown duration argument "+e+" of type "+typeof e)}var sn="Invalid Interval";var cn=function(){function f(e){this.s=e.start,this.e=e.end,this.invalid=e.invalid||null,this.isLuxonInterval=!0}f.invalid=function(e,t){if(void 0===t&&(t=null),!e)throw new m("need to specify a reason the Interval is invalid");var n=e instanceof Ce?e:new Ce(e,t);if(Ke.throwOnInvalid)throw new d(n);return new f({invalid:n})},f.fromDateTimes=function(e,t){var n,r,i=lr(e),a=lr(t),o=(r=a,(n=i)&&n.isValid?r&&r.isValid?r<n?cn.invalid("end before start","The end of an interval must be after its start, but you had start="+n.toISO()+" and end="+r.toISO()):null:cn.invalid("missing or invalid end"):cn.invalid("missing or invalid start"));return null==o?new f({start:i,end:a}):o},f.after=function(e,t){var n=un(t),r=lr(e);return f.fromDateTimes(r,r.plus(n))},f.before=function(e,t){var n=un(t),r=lr(e);return f.fromDateTimes(r.minus(n),r)},f.fromISO=function(e,t){var n=(e||"").split("/",2),r=n[0],i=n[1];if(r&&i){var a,o,u,s;try{o=(a=cr.fromISO(r,t)).isValid}catch(i){o=!1}try{s=(u=cr.fromISO(i,t)).isValid}catch(i){s=!1}if(o&&s)return f.fromDateTimes(a,u);if(o){var c=on.fromISO(i,t);if(c.isValid)return f.after(a,c)}else if(s){var l=on.fromISO(r,t);if(l.isValid)return f.before(u,l)}}return f.invalid("unparsable",'the input "'+e+"\" can't be parsed as ISO 8601")},f.isInterval=function(e){return e&&e.isLuxonInterval||!1};var e=f.prototype;return e.length=function(e){return void 0===e&&(e="milliseconds"),this.isValid?this.toDuration.apply(this,[e]).get(e):NaN},e.count=function(e){if(void 0===e&&(e="milliseconds"),!this.isValid)return NaN;var t=this.start.startOf(e),n=this.end.startOf(e);return Math.floor(n.diff(t,e).get(e))+1},e.hasSame=function(e){return!!this.isValid&&(this.isEmpty()||this.e.minus(1).hasSame(this.s,e))},e.isEmpty=function(){return this.s.valueOf()===this.e.valueOf()},e.isAfter=function(e){return!!this.isValid&&this.s>e},e.isBefore=function(e){return!!this.isValid&&this.e<=e},e.contains=function(e){return!!this.isValid&&(this.s<=e&&this.e>e)},e.set=function(e){var t=void 0===e?{}:e,n=t.start,r=t.end;return this.isValid?f.fromDateTimes(n||this.s,r||this.e):this},e.splitAt=function(){var t=this;if(!this.isValid)return[];for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];for(var i=n.map(lr).filter(function(e){return t.contains(e)}).sort(),a=[],o=this.s,u=0;o<this.e;){var s=i[u]||this.e,c=+s>+this.e?this.e:s;a.push(f.fromDateTimes(o,c)),o=c,u+=1}return a},e.splitBy=function(e){var t=un(e);if(!this.isValid||!t.isValid||0===t.as("milliseconds"))return[];for(var n,r,i=this.s,a=[];i<this.e;)r=+(n=i.plus(t))>+this.e?this.e:n,a.push(f.fromDateTimes(i,r)),i=r;return a},e.divideEqually=function(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]},e.overlaps=function(e){return this.e>e.s&&this.s<e.e},e.abutsStart=function(e){return!!this.isValid&&+this.e==+e.s},e.abutsEnd=function(e){return!!this.isValid&&+e.e==+this.s},e.engulfs=function(e){return!!this.isValid&&(this.s<=e.s&&this.e>=e.e)},e.equals=function(e){return!(!this.isValid||!e.isValid)&&(this.s.equals(e.s)&&this.e.equals(e.e))},e.intersection=function(e){if(!this.isValid)return this;var t=this.s>e.s?this.s:e.s,n=this.e<e.e?this.e:e.e;return n<t?null:f.fromDateTimes(t,n)},e.union=function(e){if(!this.isValid)return this;var t=this.s<e.s?this.s:e.s,n=this.e>e.e?this.e:e.e;return f.fromDateTimes(t,n)},f.merge=function(e){var t=e.sort(function(e,t){return e.s-t.s}).reduce(function(e,t){var n=e[0],r=e[1];return r?r.overlaps(t)||r.abutsStart(t)?[n,r.union(t)]:[n.concat([r]),t]:[n,t]},[[],null]),n=t[0],r=t[1];return r&&n.push(r),n},f.xor=function(e){for(var t,n,r=null,i=0,a=[],o=e.map(function(e){return[{time:e.s,type:"s"},{time:e.e,type:"e"}]}),u=V((t=Array.prototype).concat.apply(t,o).sort(function(e,t){return e.time-t.time}));!(n=u()).done;){var s=n.value;r=1===(i+="s"===s.type?1:-1)?s.time:(r&&+r!=+s.time&&a.push(f.fromDateTimes(r,s.time)),null)}return f.merge(a)},e.difference=function(){for(var t=this,e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return f.xor([this].concat(n)).map(function(e){return t.intersection(e)}).filter(function(e){return e&&!e.isEmpty()})},e.toString=function(){return this.isValid?"["+this.s.toISO()+" – "+this.e.toISO()+")":sn},e.toISO=function(e){return this.isValid?this.s.toISO(e)+"/"+this.e.toISO(e):sn},e.toISODate=function(){return this.isValid?this.s.toISODate()+"/"+this.e.toISODate():sn},e.toISOTime=function(e){return this.isValid?this.s.toISOTime(e)+"/"+this.e.toISOTime(e):sn},e.toFormat=function(e,t){var n=(void 0===t?{}:t).separator,r=void 0===n?" – ":n;return this.isValid?""+this.s.toFormat(e)+r+this.e.toFormat(e):sn},e.toDuration=function(e,t){return this.isValid?this.e.diff(this.s,e,t):on.invalid(this.invalidReason)},e.mapEndpoints=function(e){return f.fromDateTimes(e(this.s),e(this.e))},i(f,[{key:"start",get:function(){return this.isValid?this.s:null}},{key:"end",get:function(){return this.isValid?this.e:null}},{key:"isValid",get:function(){return null===this.invalidReason}},{key:"invalidReason",get:function(){return this.invalid?this.invalid.reason:null}},{key:"invalidExplanation",get:function(){return this.invalid?this.invalid.explanation:null}}]),f}(),ln=function(){function e(){}return e.hasDST=function(e){void 0===e&&(e=Ke.defaultZone);var t=cr.local().setZone(e).set({month:12});return!e.universal&&t.offset!==t.set({month:6}).offset},e.isValidIANAZone=function(e){return He.isValidSpecifier(e)&&He.isValidZone(e)},e.normalizeZone=function(e){return Pe(e,Ke.defaultZone)},e.months=function(e,t){void 0===e&&(e="long");var n=void 0===t?{}:t,r=n.locale,i=void 0===r?null:r,a=n.numberingSystem,o=void 0===a?null:a,u=n.outputCalendar,s=void 0===u?"gregory":u;return ct.create(i,o,s).months(e)},e.monthsFormat=function(e,t){void 0===e&&(e="long");var n=void 0===t?{}:t,r=n.locale,i=void 0===r?null:r,a=n.numberingSystem,o=void 0===a?null:a,u=n.outputCalendar,s=void 0===u?"gregory":u;return ct.create(i,o,s).months(e,!0)},e.weekdays=function(e,t){void 0===e&&(e="long");var n=void 0===t?{}:t,r=n.locale,i=void 0===r?null:r,a=n.numberingSystem,o=void 0===a?null:a;return ct.create(i,o,null).weekdays(e)},e.weekdaysFormat=function(e,t){void 0===e&&(e="long");var n=void 0===t?{}:t,r=n.locale,i=void 0===r?null:r,a=n.numberingSystem,o=void 0===a?null:a;return ct.create(i,o,null).weekdays(e,!0)},e.meridiems=function(e){var t=(void 0===e?{}:e).locale,n=void 0===t?null:t;return ct.create(n).meridiems()},e.eras=function(e,t){void 0===e&&(e="short");var n=(void 0===t?{}:t).locale,r=void 0===n?null:n;return ct.create(r,null,"gregory").eras(e)},e.features=function(){var e=!1,t=!1,n=!1,r=!1;if(I()){e=!0,t=Y(),r=G();try{n="America/New_York"===new Intl.DateTimeFormat("en",{timeZone:"America/New_York"}).resolvedOptions().timeZone}catch(e){n=!1}}return{intl:e,intlTokens:t,zones:n,relative:r}},e}();function fn(e,t){function n(e){return e.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf()}var r=n(t)-n(e);return Math.floor(on.fromMillis(r).as("days"))}function dn(e,t,n,r){var i=function(e,t,n){for(var r,i,a={},o=0,u=[["years",function(e,t){return t.year-e.year}],["months",function(e,t){return t.month-e.month+12*(t.year-e.year)}],["weeks",function(e,t){var n=fn(e,t);return(n-n%7)/7}],["days",fn]];o<u.length;o++){var s=u[o],c=s[0],l=s[1];if(0<=n.indexOf(c)){var f;r=c;var d,h=l(e,t);if(t<(i=e.plus(((f={})[c]=h,f))))e=e.plus(((d={})[c]=h-1,d)),--h;else e=i;a[c]=h}}return[e,a,i,r]}(e,t,n),a=i[0],o=i[1],u=i[2],s=i[3],c=t-a,l=n.filter(function(e){return 0<=["hours","minutes","seconds","milliseconds"].indexOf(e)});if(0===l.length){var f;if(u<t)u=a.plus(((f={})[s]=1,f));u!==a&&(o[s]=(o[s]||0)+c/(u-a))}var d,h=on.fromObject(Object.assign(o,r));return 0<l.length?(d=on.fromMillis(c,r)).shiftTo.apply(d,l).plus(h):h}var hn={arab:"[٠-٩]",arabext:"[۰-۹]",bali:"[᭐-᭙]",beng:"[০-৯]",deva:"[०-९]",fullwide:"[0-9]",gujr:"[૦-૯]",hanidec:"[〇|一|二|三|四|五|六|七|八|九]",khmr:"[០-៩]",knda:"[೦-೯]",laoo:"[໐-໙]",limb:"[᥆-᥏]",mlym:"[൦-൯]",mong:"[᠐-᠙]",mymr:"[၀-၉]",orya:"[୦-୯]",tamldec:"[௦-௯]",telu:"[౦-౯]",thai:"[๐-๙]",tibt:"[༠-༩]",latn:"\\d"},mn={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},yn=hn.hanidec.replace(/[\[|\]]/g,"").split("");function vn(e,t){var n=e.numberingSystem;return void 0===t&&(t=""),new RegExp(""+hn[n||"latn"]+t)}var gn="missing Intl.DateTimeFormat.formatToParts support";function pn(e,n){return void 0===n&&(n=function(e){return e}),{regex:e,deser:function(e){var t=e[0];return n(function(e){var t=parseInt(e,10);if(isNaN(t)){t="";for(var n=0;n<e.length;n++){var r=e.charCodeAt(n);if(-1!==e[n].search(hn.hanidec))t+=yn.indexOf(e[n]);else for(var i in mn){var a=mn[i],o=a[0],u=a[1];o<=r&&r<=u&&(t+=r-o)}}return parseInt(t,10)}return t}(t))}}}var wn="( |"+String.fromCharCode(160)+")",kn=new RegExp(wn,"g");function bn(e){return e.replace(/\./g,"\\.?").replace(kn,wn)}function On(e){return e.replace(/\./g,"").replace(kn," ").toLowerCase()}function Sn(n,r){return null===n?null:{regex:RegExp(n.map(bn).join("|")),deser:function(e){var t=e[0];return n.findIndex(function(e){return On(t)===On(e)})+r}}}function Tn(e,t){return{regex:e,deser:function(e){return le(e[1],e[2])},groups:t}}function Mn(e){return{regex:e,deser:function(e){return e[0]}}}function Nn(t,n){function r(e){return{regex:RegExp(e.val.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")),deser:function(e){return e[0]},literal:!0}}var i=vn(n),a=vn(n,"{2}"),o=vn(n,"{3}"),u=vn(n,"{4}"),s=vn(n,"{6}"),c=vn(n,"{1,2}"),l=vn(n,"{1,3}"),f=vn(n,"{1,6}"),d=vn(n,"{1,9}"),h=vn(n,"{2,4}"),m=vn(n,"{4,6}"),e=function(e){if(t.literal)return r(e);switch(e.val){case"G":return Sn(n.eras("short",!1),0);case"GG":return Sn(n.eras("long",!1),0);case"y":return pn(f);case"yy":return pn(h,se);case"yyyy":return pn(u);case"yyyyy":return pn(m);case"yyyyyy":return pn(s);case"M":return pn(c);case"MM":return pn(a);case"MMM":return Sn(n.months("short",!0,!1),1);case"MMMM":return Sn(n.months("long",!0,!1),1);case"L":return pn(c);case"LL":return pn(a);case"LLL":return Sn(n.months("short",!1,!1),1);case"LLLL":return Sn(n.months("long",!1,!1),1);case"d":return pn(c);case"dd":return pn(a);case"o":return pn(l);case"ooo":return pn(o);case"HH":return pn(a);case"H":return pn(c);case"hh":return pn(a);case"h":return pn(c);case"mm":return pn(a);case"m":case"q":return pn(c);case"qq":return pn(a);case"s":return pn(c);case"ss":return pn(a);case"S":return pn(l);case"SSS":return pn(o);case"u":return Mn(d);case"a":return Sn(n.meridiems(),0);case"kkkk":return pn(u);case"kk":return pn(h,se);case"W":return pn(c);case"WW":return pn(a);case"E":case"c":return pn(i);case"EEE":return Sn(n.weekdays("short",!1,!1),1);case"EEEE":return Sn(n.weekdays("long",!1,!1),1);case"ccc":return Sn(n.weekdays("short",!0,!1),1);case"cccc":return Sn(n.weekdays("long",!0,!1),1);case"Z":case"ZZ":return Tn(new RegExp("([+-]"+c.source+")(?::("+a.source+"))?"),2);case"ZZZ":return Tn(new RegExp("([+-]"+c.source+")("+a.source+")?"),2);case"z":return Mn(/[a-z_+-/]{1,256}?/i);default:return r(e)}}(t)||{invalidReason:gn};return e.token=t,e}var Dn={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour:{numeric:"h","2-digit":"hh"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"}};var En=null;function In(e,t){if(e.literal)return e;var n=xe.macroTokenToFormatOpts(e.val);if(!n)return e;var r=xe.create(t,n).formatDateTimeParts(En=En||cr.fromMillis(1555555555555)).map(function(e){return function(e,t){var n=e.type,r=e.value;if("literal"===n)return{literal:!0,val:r};var i=t[n],a=Dn[n];return"object"==typeof a&&(a=a[i]),a?{literal:!1,val:a}:void 0}(e,n)});return r.includes(void 0)?e:r}function Vn(t,e,n){var r,i,a,o=(r=xe.parseFormat(n),i=t,(a=Array.prototype).concat.apply(a,r.map(function(e){return In(e,i)}))),u=o.map(function(e){return Nn(e,t)}),s=u.find(function(e){return e.invalidReason});if(s)return{input:e,tokens:o,invalidReason:s.invalidReason};var c,l,f,d=["^"+(f=u).map(function(e){return e.regex}).reduce(function(e,t){return e+"("+t.source+")"},"")+"$",f],h=d[1],m=RegExp(d[0],"i"),y=function(e,t,n){var r=e.match(t);if(r){var i={},a=1;for(var o in n)if(Q(n,o)){var u=n[o],s=u.groups?u.groups+1:1;!u.literal&&u.token&&(i[u.token.val[0]]=u.deser(r.slice(a,a+s))),a+=s}return[r,i]}return[r,{}]}(e,m,h),v=y[0],g=y[1],p=g?(l=W((c=g).Z)?W(c.z)?null:He.create(c.z):new Re(c.Z),W(c.q)||(c.M=3*(c.q-1)+1),W(c.h)||(c.h<12&&1===c.a?c.h+=12:12===c.h&&0===c.a&&(c.h=0)),0===c.G&&c.y&&(c.y=-c.y),W(c.u)||(c.S=te(c.u)),[Object.keys(c).reduce(function(e,t){var n=function(e){switch(e){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}}(t);return n&&(e[n]=c[t]),e},{}),l]):[null,null],w=p[0],k=p[1];if(Q(g,"a")&&Q(g,"H"))throw new L("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:o,regex:m,rawMatches:v,matches:g,result:w,zone:k}}var Ln=[0,31,59,90,120,151,181,212,243,273,304,334],xn=[0,31,60,91,121,152,182,213,244,274,305,335];function Cn(e,t){return new Ce("unit out of range","you specified "+t+" (of type "+typeof t+") as a "+e+", which is invalid")}function Fn(e,t,n){var r=new Date(Date.UTC(e,t-1,n)).getUTCDay();return 0===r?7:r}function Zn(e,t,n){return n+(re(e)?xn:Ln)[t-1]}function jn(e,t){var n=re(e)?xn:Ln,r=n.findIndex(function(e){return e<t});return{month:r+1,day:t-n[r]}}function An(e){var t,n=e.year,r=e.month,i=e.day,a=Zn(n,r,i),o=Fn(n,r,i),u=Math.floor((a-o+10)/7);return u<1?u=ue(t=n-1):u>ue(n)?(t=n+1,u=1):t=n,Object.assign({weekYear:t,weekNumber:u,weekday:o},me(e))}function zn(e){var t,n=e.weekYear,r=e.weekNumber,i=e.weekday,a=Fn(n,1,4),o=ie(n),u=7*r+i-a-3;u<1?u+=ie(t=n-1):o<u?(t=n+1,u-=ie(n)):t=n;var s=jn(t,u),c=s.month,l=s.day;return Object.assign({year:t,month:c,day:l},me(e))}function _n(e){var t=e.year,n=Zn(t,e.month,e.day);return Object.assign({year:t,ordinal:n},me(e))}function qn(e){var t=e.year,n=jn(t,e.ordinal),r=n.month,i=n.day;return Object.assign({year:t,month:r,day:i},me(e))}function Hn(e){var t=J(e.year),n=K(e.month,1,12),r=K(e.day,1,ae(e.year,e.month));return t?n?!r&&Cn("day",e.day):Cn("month",e.month):Cn("year",e.year)}function Un(e){var t=e.hour,n=e.minute,r=e.second,i=e.millisecond,a=K(t,0,23)||24===t&&0===n&&0===r&&0===i,o=K(n,0,59),u=K(r,0,59),s=K(i,0,999);return a?o?u?!s&&Cn("millisecond",i):Cn("second",r):Cn("minute",n):Cn("hour",t)}var Rn="Invalid DateTime";function Wn(e){return new Ce("unsupported zone",'the zone "'+e.name+'" is not supported')}function Pn(e){return null===e.weekData&&(e.weekData=An(e.c)),e.weekData}function Jn(e,t){var n={ts:e.ts,zone:e.zone,c:e.c,o:e.o,loc:e.loc,invalid:e.invalid};return new cr(Object.assign({},n,t,{old:n}))}function Yn(e,t,n){var r=e-60*t*1e3,i=n.offset(r);if(t===i)return[r,t];r-=60*(i-t)*1e3;var a=n.offset(r);return i===a?[r,i]:[e-60*Math.min(i,a)*1e3,Math.max(i,a)]}function Gn(e,t){e+=60*t*1e3;var n=new Date(e);return{year:n.getUTCFullYear(),month:n.getUTCMonth()+1,day:n.getUTCDate(),hour:n.getUTCHours(),minute:n.getUTCMinutes(),second:n.getUTCSeconds(),millisecond:n.getUTCMilliseconds()}}function $n(e,t,n){return Yn(oe(e),t,n)}function Bn(e,t){var n=e.o,r=e.c.year+Math.trunc(t.years),i=e.c.month+Math.trunc(t.months)+3*Math.trunc(t.quarters),a=Object.assign({},e.c,{year:r,month:i,day:Math.min(e.c.day,ae(r,i))+Math.trunc(t.days)+7*Math.trunc(t.weeks)}),o=on.fromObject({years:t.years-Math.trunc(t.years),quarters:t.quarters-Math.trunc(t.quarters),months:t.months-Math.trunc(t.months),weeks:t.weeks-Math.trunc(t.weeks),days:t.days-Math.trunc(t.days),hours:t.hours,minutes:t.minutes,seconds:t.seconds,milliseconds:t.milliseconds}).as("milliseconds"),u=Yn(oe(a),n,e.zone),s=u[0],c=u[1];return 0!==o&&(s+=o,c=e.zone.offset(s)),{ts:s,o:c}}function Qn(e,t,n,r,i){var a=n.setZone,o=n.zone;if(e&&0!==Object.keys(e).length){var u=t||o,s=cr.fromObject(Object.assign(e,n,{zone:u,setZone:void 0}));return a?s:s.setZone(o)}return cr.invalid(new Ce("unparsable",'the input "'+i+"\" can't be parsed as "+r))}function Kn(e,t,n){return void 0===n&&(n=!0),e.isValid?xe.create(ct.create("en-US"),{allowZ:n,forceSimple:!0}).formatDateTimeFromString(e,t):null}function Xn(e,t){var n=t.suppressSeconds,r=void 0!==n&&n,i=t.suppressMilliseconds,a=void 0!==i&&i,o=t.includeOffset,u=t.includeZone,s=void 0!==u&&u,c=t.spaceZone,l=void 0!==c&&c,f=t.format,d=void 0===f?"extended":f,h="basic"===d?"HHmm":"HH:mm";return r&&0===e.second&&0===e.millisecond||(h+="basic"===d?"ss":":ss",a&&0===e.millisecond||(h+=".SSS")),(s||o)&&l&&(h+=" "),s?h+="z":o&&(h+="basic"===d?"ZZZ":"ZZ"),Kn(e,h)}var er={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},tr={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},nr={ordinal:1,hour:0,minute:0,second:0,millisecond:0},rr=["year","month","day","hour","minute","second","millisecond"],ir=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],ar=["year","ordinal","hour","minute","second","millisecond"];function or(e){var t={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[e.toLowerCase()];if(!t)throw new h(e);return t}function ur(e,t){for(var n,r=V(rr);!(n=r()).done;){var i=n.value;W(e[i])&&(e[i]=er[i])}var a=Hn(e)||Un(e);if(a)return cr.invalid(a);var o=Ke.now(),u=$n(e,t.offset(o),t),s=u[0],c=u[1];return new cr({ts:s,zone:t,o:c})}function sr(t,n,r){function e(e,t){return e=ne(e,a||r.calendary?0:2,!0),n.loc.clone(r).relFormatter(r).format(e,t)}function i(e){return r.calendary?n.hasSame(t,e)?0:n.startOf(e).diff(t.startOf(e),e).get(e):n.diff(t,e).get(e)}var a=!!W(r.round)||r.round;if(r.unit)return e(i(r.unit),r.unit);for(var o,u=V(r.units);!(o=u()).done;){var s=o.value,c=i(s);if(1<=Math.abs(c))return e(c,s)}return e(0,r.units[r.units.length-1])}var cr=function(){function I(e){var t=e.zone||Ke.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new Ce("invalid input"):null)||(t.isValid?null:Wn(t));this.ts=W(e.ts)?Ke.now():e.ts;var r=null,i=null;if(!n)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(t)){var a=[e.old.c,e.old.o];r=a[0],i=a[1]}else{var o=t.offset(this.ts);r=Gn(this.ts,o),r=(n=Number.isNaN(r.year)?new Ce("invalid input"):null)?null:r,i=n?null:o}this._zone=t,this.loc=e.loc||ct.create(),this.invalid=n,this.weekData=null,this.c=r,this.o=i,this.isLuxonDateTime=!0}I.local=function(e,t,n,r,i,a,o){return W(e)?new I({ts:Ke.now()}):ur({year:e,month:t,day:n,hour:r,minute:i,second:a,millisecond:o},Ke.defaultZone)},I.utc=function(e,t,n,r,i,a,o){return W(e)?new I({ts:Ke.now(),zone:Re.utcInstance}):ur({year:e,month:t,day:n,hour:r,minute:i,second:a,millisecond:o},Re.utcInstance)},I.fromJSDate=function(e,t){void 0===t&&(t={});var n,r=(n=e,"[object Date]"===Object.prototype.toString.call(n)?e.valueOf():NaN);if(Number.isNaN(r))return I.invalid("invalid input");var i=Pe(t.zone,Ke.defaultZone);return i.isValid?new I({ts:r,zone:i,loc:ct.fromObject(t)}):I.invalid(Wn(i))},I.fromMillis=function(e,t){if(void 0===t&&(t={}),P(e))return e<-864e13||864e13<e?I.invalid("Timestamp out of range"):new I({ts:e,zone:Pe(t.zone,Ke.defaultZone),loc:ct.fromObject(t)});throw new m("fromMillis requires a numerical input, but received a "+typeof e+" with value "+e)},I.fromSeconds=function(e,t){if(void 0===t&&(t={}),P(e))return new I({ts:1e3*e,zone:Pe(t.zone,Ke.defaultZone),loc:ct.fromObject(t)});throw new m("fromSeconds requires a numerical input")},I.fromObject=function(e){var t=Pe(e.zone,Ke.defaultZone);if(!t.isValid)return I.invalid(Wn(t));var n=Ke.now(),r=t.offset(n),i=de(e,or,["zone","locale","outputCalendar","numberingSystem"]),a=!W(i.ordinal),o=!W(i.year),u=!W(i.month)||!W(i.day),s=o||u,c=i.weekYear||i.weekNumber,l=ct.fromObject(e);if((s||a)&&c)throw new L("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(u&&a)throw new L("Can't mix ordinal dates with month/day");var f,d,h=c||i.weekday&&!s,m=Gn(n,r);h?(f=ir,d=tr,m=An(m)):a?(f=ar,d=nr,m=_n(m)):(f=rr,d=er);for(var y,v=!1,g=V(f);!(y=g()).done;){var p=y.value;W(i[p])?i[p]=v?d[p]:m[p]:v=!0}var w,k,b,O,S,T,M,N=(h?(S=J((O=i).weekYear),T=K(O.weekNumber,1,ue(O.weekYear)),M=K(O.weekday,1,7),S?T?!M&&Cn("weekday",O.weekday):Cn("week",O.week):Cn("weekYear",O.weekYear)):a?(k=J((w=i).year),b=K(w.ordinal,1,ie(w.year)),k?!b&&Cn("ordinal",w.ordinal):Cn("year",w.year)):Hn(i))||Un(i);if(N)return I.invalid(N);var D=$n(h?zn(i):a?qn(i):i,r,t),E=new I({ts:D[0],zone:t,o:D[1],loc:l});return i.weekday&&s&&e.weekday!==E.weekday?I.invalid("mismatched weekday","you can't specify both a weekday of "+i.weekday+" and a date of "+E.toISO()):E},I.fromISO=function(e,t){void 0===t&&(t={});var n=dt(e,[zt,Ut],[_t,Rt],[qt,Wt],[Ht,Pt]);return Qn(n[0],n[1],t,"ISO 8601",e)},I.fromRFC2822=function(e,t){void 0===t&&(t={});var n=dt(e.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim(),[Lt,xt]);return Qn(n[0],n[1],t,"RFC 2822",e)},I.fromHTTP=function(e,t){void 0===t&&(t={});var n=dt(e,[Ct,jt],[Ft,jt],[Zt,At]);return Qn(n[0],n[1],t,"HTTP",t)},I.fromFormat=function(e,t,n){if(void 0===n&&(n={}),W(e)||W(t))throw new m("fromFormat requires an input string and a format");var r,i=n.locale,a=void 0===i?null:i,o=n.numberingSystem,u=void 0===o?null:o,s=ct.fromOpts({locale:a,numberingSystem:u,defaultToEN:!0}),c=[(r=Vn(s,e,t)).result,r.zone,r.invalidReason],l=c[0],f=c[1],d=c[2];return d?I.invalid(d):Qn(l,f,n,"format "+t,e)},I.fromString=function(e,t,n){return void 0===n&&(n={}),I.fromFormat(e,t,n)},I.fromSQL=function(e,t){void 0===t&&(t={});var n=dt(e,[Jt,Gt],[Yt,$t]);return Qn(n[0],n[1],t,"SQL",e)},I.invalid=function(e,t){if(void 0===t&&(t=null),!e)throw new m("need to specify a reason the DateTime is invalid");var n=e instanceof Ce?e:new Ce(e,t);if(Ke.throwOnInvalid)throw new l(n);return new I({invalid:n})},I.isDateTime=function(e){return e&&e.isLuxonDateTime||!1};var e=I.prototype;return e.get=function(e){return this[e]},e.resolvedLocaleOpts=function(e){void 0===e&&(e={});var t=xe.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:t.locale,numberingSystem:t.numberingSystem,outputCalendar:t.calendar}},e.toUTC=function(e,t){return void 0===e&&(e=0),void 0===t&&(t={}),this.setZone(Re.instance(e),t)},e.toLocal=function(){return this.setZone(Ke.defaultZone)},e.setZone=function(e,t){var n=void 0===t?{}:t,r=n.keepLocalTime,i=void 0!==r&&r,a=n.keepCalendarTime,o=void 0!==a&&a;if((e=Pe(e,Ke.defaultZone)).equals(this.zone))return this;if(e.isValid){var u=this.ts;if(i||o){var s=e.offset(this.ts);u=$n(this.toObject(),s,e)[0]}return Jn(this,{ts:u,zone:e})}return I.invalid(Wn(e))},e.reconfigure=function(e){var t=void 0===e?{}:e,n=t.locale,r=t.numberingSystem,i=t.outputCalendar,a=this.loc.clone({locale:n,numberingSystem:r,outputCalendar:i});return Jn(this,{loc:a})},e.setLocale=function(e){return this.reconfigure({locale:e})},e.set=function(e){if(!this.isValid)return this;var t,n=de(e,or,[]);!W(n.weekYear)||!W(n.weekNumber)||!W(n.weekday)?t=zn(Object.assign(An(this.c),n)):W(n.ordinal)?(t=Object.assign(this.toObject(),n),W(n.day)&&(t.day=Math.min(ae(t.year,t.month),t.day))):t=qn(Object.assign(_n(this.c),n));var r=$n(t,this.o,this.zone);return Jn(this,{ts:r[0],o:r[1]})},e.plus=function(e){return this.isValid?Jn(this,Bn(this,un(e))):this},e.minus=function(e){return this.isValid?Jn(this,Bn(this,un(e).negate())):this},e.startOf=function(e){if(!this.isValid)return this;var t={},n=on.normalizeUnit(e);switch(n){case"years":t.month=1;case"quarters":case"months":t.day=1;case"weeks":case"days":t.hour=0;case"hours":t.minute=0;case"minutes":t.second=0;case"seconds":t.millisecond=0}if("weeks"===n&&(t.weekday=1),"quarters"===n){var r=Math.ceil(this.month/3);t.month=3*(r-1)+1}return this.set(t)},e.endOf=function(e){var t;return this.isValid?this.plus(((t={})[e]=1,t)).startOf(e).minus(1):this},e.toFormat=function(e,t){return void 0===t&&(t={}),this.isValid?xe.create(this.loc.redefaultToEN(t)).formatDateTimeFromString(this,e):Rn},e.toLocaleString=function(e){return void 0===e&&(e=w),this.isValid?xe.create(this.loc.clone(e),e).formatDateTime(this):Rn},e.toLocaleParts=function(e){return void 0===e&&(e={}),this.isValid?xe.create(this.loc.clone(e),e).formatDateTimeParts(this):[]},e.toISO=function(e){return void 0===e&&(e={}),this.isValid?this.toISODate(e)+"T"+this.toISOTime(e):null},e.toISODate=function(e){var t=(void 0===e?{}:e).format,n="basic"===(void 0===t?"extended":t)?"yyyyMMdd":"yyyy-MM-dd";return 9999<this.year&&(n="+"+n),Kn(this,n)},e.toISOWeekDate=function(){return Kn(this,"kkkk-'W'WW-c")},e.toISOTime=function(e){var t=void 0===e?{}:e,n=t.suppressMilliseconds,r=void 0!==n&&n,i=t.suppressSeconds,a=void 0!==i&&i,o=t.includeOffset,u=void 0===o||o,s=t.format;return Xn(this,{suppressSeconds:a,suppressMilliseconds:r,includeOffset:u,format:void 0===s?"extended":s})},e.toRFC2822=function(){return Kn(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)},e.toHTTP=function(){return Kn(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")},e.toSQLDate=function(){return Kn(this,"yyyy-MM-dd")},e.toSQLTime=function(e){var t=void 0===e?{}:e,n=t.includeOffset,r=void 0===n||n,i=t.includeZone;return Xn(this,{includeOffset:r,includeZone:void 0!==i&&i,spaceZone:!0})},e.toSQL=function(e){return void 0===e&&(e={}),this.isValid?this.toSQLDate()+" "+this.toSQLTime(e):null},e.toString=function(){return this.isValid?this.toISO():Rn},e.valueOf=function(){return this.toMillis()},e.toMillis=function(){return this.isValid?this.ts:NaN},e.toSeconds=function(){return this.isValid?this.ts/1e3:NaN},e.toJSON=function(){return this.toISO()},e.toBSON=function(){return this.toJSDate()},e.toObject=function(e){if(void 0===e&&(e={}),!this.isValid)return{};var t=Object.assign({},this.c);return e.includeConfig&&(t.outputCalendar=this.outputCalendar,t.numberingSystem=this.loc.numberingSystem,t.locale=this.loc.locale),t},e.toJSDate=function(){return new Date(this.isValid?this.ts:NaN)},e.diff=function(e,t,n){if(void 0===t&&(t="milliseconds"),void 0===n&&(n={}),!this.isValid||!e.isValid)return on.invalid(this.invalid||e.invalid,"created by diffing an invalid DateTime");var r,i=Object.assign({locale:this.locale,numberingSystem:this.numberingSystem},n),a=(r=t,(Array.isArray(r)?r:[r]).map(on.normalizeUnit)),o=e.valueOf()>this.valueOf(),u=dn(o?this:e,o?e:this,a,i);return o?u.negate():u},e.diffNow=function(e,t){return void 0===e&&(e="milliseconds"),void 0===t&&(t={}),this.diff(I.local(),e,t)},e.until=function(e){return this.isValid?cn.fromDateTimes(this,e):this},e.hasSame=function(e,t){if(!this.isValid)return!1;if("millisecond"===t)return this.valueOf()===e.valueOf();var n=e.valueOf();return this.startOf(t)<=n&&n<=this.endOf(t)},e.equals=function(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)},e.toRelative=function(e){if(void 0===e&&(e={}),!this.isValid)return null;var t=e.base||I.fromObject({zone:this.zone}),n=e.padding?this<t?-e.padding:e.padding:0;return sr(t,this.plus(n),Object.assign(e,{numeric:"always",units:["years","months","days","hours","minutes","seconds"]}))},e.toRelativeCalendar=function(e){return void 0===e&&(e={}),this.isValid?sr(e.base||I.fromObject({zone:this.zone}),this,Object.assign(e,{numeric:"auto",units:["years","months","days"],calendary:!0})):null},I.min=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if(!t.every(I.isDateTime))throw new m("min requires all arguments be DateTimes");return $(t,function(e){return e.valueOf()},Math.min)},I.max=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if(!t.every(I.isDateTime))throw new m("max requires all arguments be DateTimes");return $(t,function(e){return e.valueOf()},Math.max)},I.fromFormatExplain=function(e,t,n){void 0===n&&(n={});var r=n.locale,i=void 0===r?null:r,a=n.numberingSystem,o=void 0===a?null:a;return Vn(ct.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0}),e,t)},I.fromStringExplain=function(e,t,n){return void 0===n&&(n={}),I.fromFormatExplain(e,t,n)},i(I,[{key:"isValid",get:function(){return null===this.invalid}},{key:"invalidReason",get:function(){return this.invalid?this.invalid.reason:null}},{key:"invalidExplanation",get:function(){return this.invalid?this.invalid.explanation:null}},{key:"locale",get:function(){return this.isValid?this.loc.locale:null}},{key:"numberingSystem",get:function(){return this.isValid?this.loc.numberingSystem:null}},{key:"outputCalendar",get:function(){return this.isValid?this.loc.outputCalendar:null}},{key:"zone",get:function(){return this._zone}},{key:"zoneName",get:function(){return this.isValid?this.zone.name:null}},{key:"year",get:function(){return this.isValid?this.c.year:NaN}},{key:"quarter",get:function(){return this.isValid?Math.ceil(this.c.month/3):NaN}},{key:"month",get:function(){return this.isValid?this.c.month:NaN}},{key:"day",get:function(){return this.isValid?this.c.day:NaN}},{key:"hour",get:function(){return this.isValid?this.c.hour:NaN}},{key:"minute",get:function(){return this.isValid?this.c.minute:NaN}},{key:"second",get:function(){return this.isValid?this.c.second:NaN}},{key:"millisecond",get:function(){return this.isValid?this.c.millisecond:NaN}},{key:"weekYear",get:function(){return this.isValid?Pn(this).weekYear:NaN}},{key:"weekNumber",get:function(){return this.isValid?Pn(this).weekNumber:NaN}},{key:"weekday",get:function(){return this.isValid?Pn(this).weekday:NaN}},{key:"ordinal",get:function(){return this.isValid?_n(this.c).ordinal:NaN}},{key:"monthShort",get:function(){return this.isValid?ln.months("short",{locale:this.locale})[this.month-1]:null}},{key:"monthLong",get:function(){return this.isValid?ln.months("long",{locale:this.locale})[this.month-1]:null}},{key:"weekdayShort",get:function(){return this.isValid?ln.weekdays("short",{locale:this.locale})[this.weekday-1]:null}},{key:"weekdayLong",get:function(){return this.isValid?ln.weekdays("long",{locale:this.locale})[this.weekday-1]:null}},{key:"offset",get:function(){return this.isValid?+this.o:NaN}},{key:"offsetNameShort",get:function(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}},{key:"offsetNameLong",get:function(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}},{key:"isOffsetFixed",get:function(){return this.isValid?this.zone.universal:null}},{key:"isInDST",get:function(){return!this.isOffsetFixed&&(this.offset>this.set({month:1}).offset||this.offset>this.set({month:5}).offset)}},{key:"isInLeapYear",get:function(){return re(this.year)}},{key:"daysInMonth",get:function(){return ae(this.year,this.month)}},{key:"daysInYear",get:function(){return this.isValid?ie(this.year):NaN}},{key:"weeksInWeekYear",get:function(){return this.isValid?ue(this.weekYear):NaN}}],[{key:"DATE_SHORT",get:function(){return w}},{key:"DATE_MED",get:function(){return k}},{key:"DATE_MED_WITH_WEEKDAY",get:function(){return b}},{key:"DATE_FULL",get:function(){return O}},{key:"DATE_HUGE",get:function(){return S}},{key:"TIME_SIMPLE",get:function(){return T}},{key:"TIME_WITH_SECONDS",get:function(){return M}},{key:"TIME_WITH_SHORT_OFFSET",get:function(){return N}},{key:"TIME_WITH_LONG_OFFSET",get:function(){return D}},{key:"TIME_24_SIMPLE",get:function(){return E}},{key:"TIME_24_WITH_SECONDS",get:function(){return x}},{key:"TIME_24_WITH_SHORT_OFFSET",get:function(){return C}},{key:"TIME_24_WITH_LONG_OFFSET",get:function(){return F}},{key:"DATETIME_SHORT",get:function(){return Z}},{key:"DATETIME_SHORT_WITH_SECONDS",get:function(){return j}},{key:"DATETIME_MED",get:function(){return A}},{key:"DATETIME_MED_WITH_SECONDS",get:function(){return z}},{key:"DATETIME_MED_WITH_WEEKDAY",get:function(){return _}},{key:"DATETIME_FULL",get:function(){return q}},{key:"DATETIME_FULL_WITH_SECONDS",get:function(){return H}},{key:"DATETIME_HUGE",get:function(){return U}},{key:"DATETIME_HUGE_WITH_SECONDS",get:function(){return R}}]),I}();function lr(e){if(cr.isDateTime(e))return e;if(e&&e.valueOf&&P(e.valueOf()))return cr.fromJSDate(e);if(e&&"object"==typeof e)return cr.fromObject(e);throw new m("Unknown datetime argument: "+e+", of type "+typeof e)}return e.DateTime=cr,e.Duration=on,e.FixedOffsetZone=Re,e.IANAZone=He,e.Info=ln,e.Interval=cn,e.InvalidZone=We,e.LocalZone=je,e.Settings=Ke,e.Zone=Fe,e}({});
...
 
\ No newline at end of file
static/src/js/schedule.js
Show inline comments
 
new file 100644
 
$(function() {
 
    /* Schedule display localisation */
 
    var showCurrentTab = function() {
 
        var fragment = window.location.hash.toLowerCase().substring(1);
 

	
 
        var dayTabs = $('#schedule-tabs .schedule-day');
 
        if (dayTabs.length === 0) return;
 

	
 
        if (fragment) {
 
            var fragmentId = "#schedule_day_" + fragment + "-tab";
 
            $(fragmentId).tab('show');
 
        } else {
 
            // Show tab based on current time.
 
            var now = luxon.DateTime.local();
 
            for (var i = 0; i < dayTabs.length; ++i) {
 
                var dayTab = $(dayTabs[i]);
 
                var tabDate = dayTab.data('date');
 

	
 
                var scheduleDate = luxon.DateTime.fromISO(tabDate, { zone: CONF_TZ });
 
                var startOfDay = scheduleDate.startOf('day');
 
                var endOfDay = scheduleDate.endOf('day');
 
                if (now >= startOfDay && now < endOfDay) {
 
                    tabShown = true;
 
                    dayTab.tab('show');
 
                    break;
 
                }
 
            }
 
        }
 
    }
 

	
 
    var updateScheduleGrid = function() {
 
        var rowHeaders = $('.calendar-row th.time');
 
        for (var i = 0; i < rowHeaders.length; ++i) {
 
            var rowHeader = $(rowHeaders[i]);
 
            var rowTime = rowHeader.data('time');
 
            var scheduleDate = luxon.DateTime.fromISO(rowTime, { zone: CONF_TZ });
 
            var localDate = scheduleDate.toLocal();
 

	
 
            // If the schedule date is already in the user's TZ, skip it.
 
            if (scheduleDate.offset === localDate.offset) break;
 

	
 
            var confFormatted = scheduleDate.toLocaleString({
 
                weekday: scheduleDate.weekday === localDate.weekday ? undefined : 'short',
 
                hour: 'numeric',
 
                minute: 'numeric',
 
                timeZoneName: 'short',
 
            });
 
            var localFormatted = localDate.toLocaleString({
 
                weekday: scheduleDate.weekday === localDate.weekday ? undefined : 'short',
 
                hour: 'numeric',
 
                minute: 'numeric',
 
                timeZoneName: 'short',
 
            });
 
            var timeText = rowHeader.find('p').text();
 
            rowHeader.find('p').html(confFormatted + '<br><em>(' + localFormatted + ')</em>');
 
        }
 
    }
 

	
 
    var updatePresentationTimes = function() {
 
        var presentationTimes = $('span.presentation-time');
 
        for (var i = 0; i < presentationTimes.length; ++i) {
 
            var presentationTime = $(presentationTimes[i]);
 
            var startTime = presentationTime.data('starttime');
 
            var endTime = presentationTime.data('endtime');
 
            var confStartTime = luxon.DateTime.fromISO(startTime, { zone: CONF_TZ });
 
            var confEndTime = luxon.DateTime.fromISO(endTime, { zone: CONF_TZ });
 

	
 
            var localStartTime = confStartTime.toLocal();
 
            var localEndTime = confEndTime.toLocal();
 

	
 
            // If the conf date is already in the user's TZ, skip it.
 
            if (confStartTime.offset === localStartTime.offset) break;
 

	
 
            var confStartTimeFormatted = confStartTime.toLocaleString({
 
                weekday: 'short',
 
                month: 'short',
 
                day: '2-digit',
 
                hour: 'numeric',
 
                minute: 'numeric',
 
            });
 
            var confEndTimeFormatted = confEndTime.toLocaleString({
 
                hour: 'numeric',
 
                minute: 'numeric',
 
                timeZoneName: 'short',
 
            });
 
            var localStartTimeFormatted = localStartTime.toLocaleString({
 
                weekday: confStartTime.weekday === localStartTime.weekday ? undefined : 'short',
 
                month: confStartTime.weekday === localStartTime.weekday ? undefined : 'short',
 
                day: confStartTime.weekday === localStartTime.weekday ? undefined : '2-digit',
 
                hour: 'numeric',
 
                minute: 'numeric',
 
            });
 
            var localEndTimeFormatted = localEndTime.toLocaleString({
 
                weekday: localStartTime.weekday === localEndTime.weekday ? undefined : 'short',
 
                month: localStartTime.weekday === localEndTime.weekday ? undefined : 'short',
 
                day: localStartTime.weekday === localEndTime.weekday ? undefined : '2-digit',
 
                hour: 'numeric',
 
                minute: 'numeric',
 
                timeZoneName: 'short',
 
            });
 

	
 
            presentationTime.html(confStartTimeFormatted + ' - ' + confEndTimeFormatted + ' <em>(' + localStartTimeFormatted + ' - ' + localEndTimeFormatted + ')</em>');
 
        }
 
    }
 

	
 
    /* Schedule Editing */
 
    $("a.edit-slot").click(function(e) {
 
        $("#slotEditModal").load($(this).data("action"), function() {
 
            $("#slotEditModal").modal("show");
 
        });
 
        e.preventDefault();
 
    });
 

	
 
    $("form#schedule-builder :submit").click(function(e) {
 
        var name = this.name;
 
        if(name == 'delete') {
 
            if (!confirm("Are you sure you want to delete the schedule?"))
 
                {
 
                    e.preventDefault();
 
                    return;
 
                }
 
        }
 
    });
 

	
 
    /* Update schedule display */
 
    showCurrentTab();
 
    updateScheduleGrid();
 
    updatePresentationTimes();
 
});
0 comments (0 inline, 0 general)